JavaSE复习笔记
配置阶段
java.exe 执行工具
javac.exe 编译工具(编译为class)
JDK JVM JRE
- JVM + 核心类库 = JRE
- JRE + 开发工具Java Javac = JDK
- class字节码文件进入JVM
![image]()
编写代码
- 文件名首字母大写
- 文件名必须与代码的类名一致
Java跨平台
- 一次编译处处可用
- 只需开发一次就可以在任何安装了JVM的系统里运行
![image]()
基础语法
注释

字面量

\n换行 \t一个tab
变量
double money = 6.0
- 声明后不允许存储其他类型
- 变量不能在一个范围内({})定义同名变量
- 定义时可以没有初始值,但是使用必须有
二进制(0B/0b开头)
int i1 = 0B01100001;
(sout): 97
八进制(0开头)
int i2 = 0141;
(sout): 97
十六进制(0x开头)
int i3 = 0x61;
(sout): 97

数据类型

整数

浮点型

字符和布尔

引用数据类型
String name = "西门吹雪";
关键字
public class byte short int long double 等
不能作为类名和变量名
标识符
给类、方法、变量等起名字的规矩


进阶语法
类型转换
自动类型转换
自动类型转换:范围小的变量直接赋值给范围大的变量,也就是在前面补0



!!!!切记上面,因为JVM的加法是int类型的
强转
都可以转,但是超范围会溢出
浮点型强转成整形,丢掉小数部分,直接保留整数部分
运算符

注意除法

加号连接
自增自减

赋值运算符

注意:扩展的赋值运算符隐含了强制类型转换
关系运算符

逻辑运算符


短路逻辑运算符性能更好
三元运算符

运算符优先级

流程控制语句
分支结构
if else
switch case default

switch不用一个一个判断,直接定位所以性能更好

循环结构
for while
知道循环几次用for
不知道用while
do while


数组
定义



动态初始化


遍历
for
方法
定义
参数传递
重载
方法名称相同,形参不同
面向对象
类
注意:一个Java文件可以定义多个class类,但只能有一个类是public,而且public的类必须是代码文件名
构造器

this关键字
可以用于指定访问当前对象的成员变量、成员方法

封装(面向对象三大特征之一)

JavaBean
也就是实体类

String & ArrayList
String


创建字符串对象



String常见面试题
- 内存机制
- 编译优化机制
常用API
equlas

ArrayList集合
ArrayList list = new ArrayList();
泛型
ArrayList<String> list = new ArrayList();
常用api

遍历
从后面遍历
面向对象进阶内容
static

静态成员变量属于类,加载一次,可以被共享访问,用类名访问
访问注意事项

工具类
代码块

单例模式
饿汉单例

懒汉单例

继承

单继承,但是可以多层继承,所有类都是Object的子类
继承后成员的访问:就近原则(先子类)
重写



构造器特点


this和super


面向对象语法
包
packet
权限修饰符

final
修饰类,类不能被继承
修饰方法,方法不能被重写
修饰变量,变量有且仅能被赋值一次

常量

枚举

抽象类
抽象类


抽象方法

模板方法模式
接口


多态


多态侧重行为
优势
解耦合
拓展性与便利性
问题
不能使用子类独有功能
类型转换


instanceof

内部类

静态内部类


成员内部类


局部内部类

匿名内部类


API
Object
toString

所以要重写,返回我们需要的内容信息
equals
默认比较地址是否相同(和=一样)

Objects(>=JDK1.7)

更安全,更准确
StringBuilder



Math(工具类,全静态)

System

BigDecimal
public static BigDecimal valueOf(double val);

Date类

SimpleDateFormat

Calendar

JDK8新增日期API

包装类


正则表达式

Arrays

Lambda表达式





排序的化简写法


集合

Collection



迭代器

增强for循环

lambda表达式

List


ArrayList

LinkedList

push = addFirst
pop = removeFirst
offerLast = addLast
注意事项


Set

HashSet 底层原理/哈希表


LinkedHashSet

TreeSet





简化


总结

Map










泛型


泛型类


泛型方法

泛型接口


通配符


可变参数


Collections集合工具类


Stream

Stream流的获取

常用API


Stream流的收集

异常

运行时异常

编译时异常

异常的默认处理流程

处理异常


建议的异常处理


自定义异常

日志技术
规范
Commons Logging
Simple Logging Facade for Java(SLF4J)
常见框架
Log4J
Logback
File



IO













缓冲流


多线程
创建一



创建二



创建三

创建四




常用API







线程安全
同步代码块


同步方法




Lock锁

线程通信


线程池




线程池处理Runnable


线程池处理Callable

Executors工具类实现线程池




定时器



并发与并行



线程




网络编程
InetAddress

UDP

DatagramPacket数据包对象




TCP

线程池
单元测试



反射












注解



动态代理
XML






设计模式
工厂模式

装饰模式
内存
方法区
栈内存
堆内存


浙公网安备 33010602011771号