java se知识点初步总结---附件附思维导图,se知识点
java se知识点初步总结---附件附思维导图,se知识点
JavaSE
基础语法
基本数据类型
整数型
字节型byte8位一个字节
byte最大:127
byte最小:-128
短整型short16位
Short最大:32767
Short最小:-32768
整数型int32位
int最大:2147483647
int最小:-2147483648
长整型long64位
long最大:9223372036854775807
long最小:-9223372036854775808
浮点型
单精度浮点型float32位
float最大:3.4028235E38
float最小:1.4E-45
双精度浮点型double64位
double最大:1.7976931348623157E308
double最小:4.9E-324
字符型
字符型char16位Unicode字符,在Java底层是以整数型进行运算;
最大值:char d = ‘\uffff’;
最小值:char c = ‘\u0000’;
布尔型
布尔型boolean一个字节表示逻辑运算的结果,值为true或false
自动类型转换,强制类型转换
类型转换优先级byte 、short、int、long、float、double、char
符合低优先级转高优先级的可以隐式的转换类型,即自动类型转换。否则需要强制转换类型,即手动确认要转换的类型,原因会有精度损失。char类型在运算时会优先转换为int型再参与运算。
运算符
算术运算符
+相加运算符两侧的纸
关系运算符
赋值运算符
逻辑运算符
位运算符
条件运算符
修饰符
访问修饰符
非访问修饰符
流程控制
分支语句
if-else
if(条件){
当条件为true时,执行大括号内的代码
}else if(条件){
}
switch-case
switch 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。当程序执行到break关键字时,跳出当前的switch语句;
循环语句
for
for(int i = 0 ; i < 10 ; i++){
}
while
while(条件){
当条件为true时,执行循环体内的代码;
}
备注:
满足循环的三个条件:初始化变量、关系运算、迭代
do-while
do{
}while(条件);
备注:与while循环的区别是,当条件为false时,也会被执行一次。
break 标签名 : 跳出该标签名后面的循环;
continue 标签名: 跳过该标签名的本次循环,继续进行下次迭代;
数组
数组的声明
Object[] arr = new Object[长度];
Object[] arr = new Object[]{o1,o2,o3};
Object[] arr = {o1,o2,o3};
数组的遍历
普通for循环
增强for循环:
语法:
for(数组类型 变量名 : 数组名){
System.out.println(变量名);
}
数组的排序
冒泡排序 从后往前依次确定元素,相邻的两个元素比较,互换位置;
选择排序 从前往后确定元素,让未确定的第一个数依次和后面的比较,互换位置;
快速排序
使用Arrays类的方法实现升序和降序排列
函数的声明和调用
返回值
当方法没有任何返回值时,方法声明语句中使用void关键字;
当方法有返回值时,返回值是什么数据类型,就声明为什么类型
参数列表,传参
在方法名后面的括号中声明;
参数的个数为大于等于0;
写法:方法名(类型 变量名,类型 变量名,……){}
参数是当前方法的局部变量,是一种特殊的局部变量;
参数的赋值过程,是在调用该方法时完成的;
当有多个参数,调用该方法时,依次按照括号中的顺序为参数赋值;
参数的类型可以为Java的任何数据类型;
抛出异常
方法的重载
概念:重载(overloading) 是在一个类里面,方法名字相同,而参数不同。与返回值类型、访问修饰符无关。
规则:
(1)参数的类型不同;
(2)参数个数不同;
(3)参数的顺序不同;
变量
实例变量
声明在所有方法体和代码块之外,并且没有使用static修饰的变量,叫做实例变量;
可以使用访问修饰符和final修饰;
使用final修饰时,一定要赋值;
实例变量是在对象被创建时创建,对象被销毁时销毁;
作用域范围在整个类中;
局部变量
声明在构造方法、静态方法、实例方法、代码块中的变量,都是局部变量;
不能使用static和访问修饰符修饰;
可以使用final修饰,即为常量,不必在声明语句中赋值;
当执行局部变量所在的方法或代码块时,才有机会被创建,在方法或代码块执行结束后被自动销毁;
局部变量在内存的栈区分配;
局部变量在使用之前必须要先赋值;
静态变量
声明在所有方法体和代码块之外,并且使用static修饰的变量;
可以使用访问修饰符修饰;
一般配合final使用,即public static fianl,标识符使用大写;
类变量被分配在静态存储区,是被所有该类的对象共享数据;
类变量是在程序开始时被创建,程序结束时销毁
面向对象
封装
私有的属性,公共的方法
继承
java是单继承,多层继承
多态
实现多态条件:
1、继承
2、方法重写
3、父类引用指向子类对象
抽象类
只要包含抽象方法的类都是抽象类
接口
是一个完全抽象的抽象类,用于制定标准
内部类
成员内部类 声明在类中,方法体、代码块之外。和成员变量、成员方法在同一级别。
//先实例化外部类
Out o = new Out();
//使用外部类对象,再实例化内部
Out.Inner inner = o.new Inner();
静态内部类 声明在类中,方法体、代码块之外。和成员变量、成员方法在同一级别。
实例化静态内部的对象:
Out.Inner inner = new Out.Inner();
局部内部类 声明在方法体或代码块内,作用域范围在方法体或代码块内。
//实例化局部内部类
Inner inner = new Inner();
inner.print();
匿名内部类
声明位置同局部内部类一样,前提条件:必须继承一个类或实现一个接口,匿名内部类的声明和实例化对象是同时进行的;
一般使用于获得抽象类或接口对象;
语法:
父类名/接口名 对象名 = new 父类名/接口名(){
//匿名内部类成员
};
常用工具类
字符串
String
用于判断
contains(CharSequence c) 判断字符串中是否包含指定的字符序列;
startsWith(String s) 判断字符串是否以指定的前缀开始;
endsWith(String s) 判断字符串是否以指定的后缀结束;
indexOf(char c) 返回指定字符在字符串中第一次出现的索引;
lastIndexOf(char c) 返回指定字符在字符串中最后一次出现的索引;
isEmpty() 当且仅当字符串长度为0时,返回true;
截取字符串
split(String s) 根据指定的规则拆分字符串,返回字符串数组;
subString(int begin,int end) 按照指定的索引截取字符串,从begin(包含)开始,到end(不包含)结束;
字符串转换
replace(char old,char new) 把字符串中的old字符替换为new字符,然后返回一个新字符串
toLowerCase()把字符串的英文字母全部转为小写
toUpperCase()把字符串的英文字母全部转为大写
toCharArray()把字符串转为字符数组
valueOf()把指定类型的数据转为字符串类型
getBytes()
StringBuffer可变字符序列线程安全
StringBuilder可变字符序列线程不安全
数学运算
MathMath类是数学相关的操作工具类
Random获取伪随机数的类
时间日期
Date Date():创建日期对象;
Date(long t):根据时间戳创建日期对象
after(Date d):当前日期对象是否在指定日期之后;
before(Date d):当前日期对象是否在指定日期之前;
getTime():获得当前的时间戳;
setTime(long t):设置时间对象的具体时间为指定的时间戳;
Calendar
add(int field,int value):计算时间日期的偏移量;
getTime():获得Date类型的日期对象;
getTimeInMillis():获得时间戳;
get(int field):获得时间数据;
set(int field,int value):设置具体的时间;
set(year,month,day,hour,minute,second):通过参数直接设置具体时间;
setTime(Date d):把Date类型转为Calendar类型;
Calendar的子类GregorianCalendar,是格里高利日历,常用的方法:
isLeapYear(int year):判断指定年份是否为闰年,是闰年返回true;
SimpleDateFormat
格式化日期
解析日期
获取时间戳,使用时间戳转换日期类型
集合
Collection
List
实现类:ArrayList
添加方法
add(Object obj):添加元素;
add(int i,Object o):在指定位置处添加元素;
addAll(Collection c):把一个集合内的元素依次添加到当前集合;
addAll(int i,Collection c):把一个集合内的元素添加到当前集合的指定位置;
修改方法
set(int i,Object o):修改指定位置的元素,返回被修改的原对象;
删除方法
remove(int i):删除指定位置的元素,返回指定位置的元素;
remove(Object o):删除指定的对象,删除成功返回true;
removeAll(Collection c):从列表中移除指定集合中包含的其所有元素,删除成功返回true;
clear():清除集合中的所有元素;
遍历方法
contains(Object o):判断集合中是否包含指定的元素,包含返回true;
indexOf(Object o):返回指定元素在集合中第一次出现的下标;
lastIndexOf(Object o):返回指定元素在集合中最后一次出现的下标;
isEmpty():当且仅当集合长度为0时,返回true;
subList(int start,int end);截取集合,下标从start开始(包含),到end结束(不包含),返回一个新的集合
排序方法
Set
实现类:HashSet
添加方法
修改方法
删除方法
遍历方法
Map
实现类:HashMap
添加方法
修改方法
删除方法
遍历方法
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设计模式
相关文章
- 暂无相关文章
用户点评