导图社区 java快速入门
0基础小白快速入门,Java基础知识点一看就懂。
编辑于2020-12-30 17:52:18JavaSE
Java入门知识点
注释
单行注释(//)
多行注释(/**/)
命名规则
标识符:以字母、下划线、美元符($)开头,不能以数字开头
遵循驼峰命名法
所有的类名每个单词的首字母大写,其余字母小写
变量名、方法名第一个单词的首字母小写,后面的首字母大写,其余字母小写
基础语法
数据类型
基本数据类型
整数型
字节型:byte(一个字节占8位,范围:-128~128)
短整型:short(两个字节,占16位,范围:-2^15~2^15-1)
整型:int(4个字节,占32位,范围:-2^31~2^31-1)
长整型:long(8个字节,占64位,范围:-2^63~2^63-1)
浮点型
单精度浮点型:float(4个字节,占32位)
双精度浮点型:double(8个字节,占64位)
字符型:char(2个字节,16位)
布尔型:boolean(1个字节,只有false和true两种情况)
复核数据类型
类:class
数组
接口:interface
运算符
算术运算符:+、-、*、/、%、++、--
赋值运算符:=、+=、-=、*=、/=、%=
关系运算符:==、!=、<、>、<=、>=、instanceof(检查是否为对象)
逻辑运算符:&、|、^、!、&&、||
位运算符
三目运算符
修饰符
访问修饰符
非访问修饰符
流程控制
分支语句
if else
switch case
循环语句
for
while
do while
数组
数组的声明
动态初始化:Object[ ] arr = new Object[长度];
静态初始化:Object[ ] arr = new Object[ ](o1,o2,o3);
静态初始化简写:Object[ ] arr = {o1,o2,o3};
数组的遍历
普通for循环
增强for循环
数组的排序
冒泡排序
选择排序
快速排序
使用Array类的方法实现升序和降序的排列
变量
实例变量
局部变量
静态变量
面向对象
对象与类
类的创建:类是一种自定义的数据类型
对象的组成:属性(描述对象的静态特征)+方法(描述对象的动态特征);创建:new对象名;
类与对象的关系:类是对象的抽象或集合,类是抽象的,对象是类的实例,对象是具体的
属性与方法
实例变量
存在默认值
可以和局部变量命名冲突,局部变量优先使用
实例变量至少在本类范围中有效
方法的定义:修饰符 返回值类型 方法名 异常(方法体)
方法的重载
方式:名字相同、参数的个数、类型、次序不同
重载的意义:对方法的调用者屏蔽因方法参数不同所造的差异
构造方法
用来初始化对象的方法就是构造方法
构造方法的名字和类名完全相同,并且没有返回类型,不能加void
如果不定义,系统会默认不带参数的构造方法;如果自定义了构造方法,系统默认的就不存在了
构造方法不能手动调动,被自动调用
构造方法在对象创造是被自动调用一次,且只会被调用一次
对象与引用
this关键字
概念:this是一种特殊的引用,指向当前对象
this指向调用当前方法的那个对象
this有两个作用,指向当前对象和在构造方法中调用其他构造方法
string类
String属于引用数据类型
常用方法
charAt(int index) //返回指向下标的字符
compareTo(String s)//字符串比较
concat(String s)//字符串拼接
contains()//字符串包含
equals()//判断两个字符串内容是否相同
getBytes()//返回字节数组
indexOf()//查找子串下标
封装
类就是一个封装体,封装了属性和方法
继承
extends关键字,java中的是单继承
子类继承父类的方法个行为,使子类具有父类的各种属性和方法
好处:实现代码的可复用性
super关键字
每一个子类的构造方法在没有显示调用super()系统都会提供一个默认的super()
super()书写在第一行,this()也只能写在一行,所以二者一般无法共存
可以在子类构造方法中显示调用super(),完成对待特定父类构造方法的调用
多态
实现多态条件:继承、方法重写、父类引用指向子类对象
重写和重载的区别
相同点:都是种多态性的表现,方法重写属于一种动态的多态性。方法重载属于静态多态性
不同点:方法重写有继承,方法重载无继承
强制类型转换:没有真的转化了对象类型,只是欺骗了编译器
抽象类
只要包含抽象方法的类都是抽象类
接口
是一个包含抽象的抽象类,用于制定标准
内部类
成员内部类
静态内部类
局部内部类
匿名内部类
修饰符
static
静态属性:static可以修饰属性,不可以修饰局部变量,修饰的属性全类公有
静态方法
可以通过类名调用。静态方法只能访问静态属性和静态方法
静态方法中不能使用this关键字
父类的静态方法可以被继承,但不可以重写,没有多态,只有实例方法才能覆盖
静态代码块
在类加载时执行静态代码块的内容,且只被执行一次
final
final修饰变量:一旦赋值,其值不可改变
final修饰方法:该方法不能被重写
final修饰类:类不能被继承
final static一起修饰属性,只能在定义处初始化
abstract
抽象类
abstract修饰符修饰的类叫做抽象类,抽象类不能实例化
抽象方法
abstract修饰的方法叫做修饰方法
特点
有抽象方法的类一定是抽象类,抽象类不一定有抽象方法
抽象类可以用于声明,但不允许创建对象
抽象类可以被子类继承,从而创建子类对象
接口
特殊的抽象类,里面的属性都是public static final类型的,接口里面的方法都是public abstract类型的
interface与implements
定义接口用interface
继承接口用implemenst
接口继承接口使用extends关键字
接口的特点
接口不可以被实例化
实现类必须实现接口的所有方法
一个类可以实现多个窗口,但是只能继承一个类
里面的属性都是public static final类型的,接口里面的方法都是public abstract类型的,里面的变量都是静态变量
接口的好处
增加程序的通用性
声明引用时要使用接口类型
方法的参数要声明成接口类型
方法的返回值要声明成接口类型
Object类、包装类、内部类
Object类
java中所有类的直接父类或者间接父类
getClass()方法:返回一个对象的实例类型
equals()方法判断两个对象的内容是否相同==判断两个对象是否是同一个对象
toString():返回一个对象的字符串里的表现形式
包装类
包装类与基本类型的转换
StringBuffer:内容可变的字符串
append():追加字符串
reserve():翻转
replace(start,end,“xxx”);
int转换为Integer:Integer I = Interger.valueOf(i);
String转换为Integer:Integer I = Integer.valueOf(s);
Integer转换为String:Integer I =new Integer(23);String s=I.toString();
String转换为Int:String s =“20”int i=Integer.parseInt(s);
int转换为String;int i=20;StringS1 =String.valueOf(i);String s2=**+i;
基本类型和String类型转换
包装类和string类型转换
内部类
成员内部类
成员内部类中能访问外部类中所有静态成员,非静态成员,但不可以定义静态方法和静态成员变量
局部内部类
局部内部在访问局部变量是,局部变量必须声明称final
静态内部类
静态内部类中只能访问外部类的静态成员,可以定义静态方法
匿名内部类
形成条件
局部内部类需要实现外部接口,或者继承某些父类
要么是实现某个接口,要么是继承了某个抽象类
集合
Collection类
List 有顺序可重复
接口
ArrayList
数组实现,增删慢,查询快,速度快,线程不安全
LinkedList
链表实现,增删快,查询慢
Vector
数组实现,重量级,速度慢,线程安全
方 法
boolean add(E e);
boolean isEmpty();
boolean remove(Object o);
void clear();
Iterator iterator();
int indexOf(Object o);
list排序
void Collections.sort(List)
For-each遍历
List<student>list=new ArrayList<Student>0;for(student student:list){ System.out.println(student.getName());}
Set 无序不可重复
接口
HashSet
TreeSet
TreeSet过滤重复的依据是:调用compareTo()方法判断结果是否为0,并不是通过equeals()方法和hashCode()方法
对于TreeSet,如果compareTo()返回0,就认为是相同的元素,即使两个通过equals()比较为false的元素,也不能同时放入TreeSet,因为equals()方法根本不会被调用
方法
boolean add(E e);
boolean isEmpty();
boolean remove(Object o);
void clear();
int size();
Iterator iterator();
Map
接口
HashMap
TreeMap
方法
key不可以重复、value可以重复
put(K key.V value)
get(Object key)
remove(Object key)
clear()
isEmpty()
size()
异常
异常的分类
检查异常
非检查异常
throw关键字
异常的传递
异常的处理
throw声明处理异常
try...catch处理异常
try..catch...finally
Message属性与异常追踪
自定义异常
Java7.0新特性
常用的工具类
字符串
String
用于判断
contains(CharSequence c)
startsWith(String s)
endsWith(String s)
indexOf(char c)
lastIndexOf(char c)
isEmpty()
截取字符串
split(String s)
subString(int begin,int end)
字符串转换
replace(char old.char new)
toLowerCase()
toUpperCase()
toCharArray()
valueOf()
getBytes()
StringBuffer
StringBuilder
数学运算
Math
Random
时间日期
Date
Calendar
SimpleDateFormat
获取时间,使用时间转换日期类型
IO流
File
创建的方法
修改文件的方法
获取文件信息的方法
删除文件
判断文件
输入流
字节输入流:InputStream
FileInputStream
ObjectInputStream 反序列化
字符输入流:Reader
InputStreamReader(InputStream is)
FileReader(String fileName)
缓冲输入流
BufferedReader(Reader in)是Reader的子类
输出流
字节输出流:OutputStream
FileOutputStream
ObjectOutPutStream 序列化
字符输出流:Writer
OutputStreamWriter(OutputStream out)
Filewriter(String fileName)
缓冲输出流
BufferedWriter(Writer out)是Writer的子类
多线程
创建线程
继承Thread类
实现Runnable接口
使用Thread(Runnable target)创建线程对象
线程的生命周期
新建对象
就绪状态(调用start方法后)
运行状态(获取CPU调度之后)
阻塞状态
死亡状态
常用方法
获取线程信息
设置线程的方法
线程控制
问题
线程同步
解决:对象锁
死锁
解决;wait(),notify()
异常
Exception
自定义异常
java特性
Java反射机制
类的反射
方法的反射
属性的反射
泛型
泛型类
泛型方法
注解
操作配置文件
json
xml
properties
网络编程
URL类
TCP/IP
Socket
ServerSocket
UDP
设计模式
单例模式
工厂模式
适配器模式
代理模式
责任链模式
观察者模式
MVC设计模式
运算符优先级:单目乘除位关系,逻辑三目后赋值
优先级排序(由低到高):byte、short、char、int、long、float、double