Java期末笔记超全精简总结

Java期末笔记超全精简总结

第一章 Java入门

1. 三大平台

◦ Java SE:标准版桌面程序

◦ Java EE:企业web项目

◦ Java ME:微型嵌入式设备

2. Java核心特点:简单、面向对象、平台无关、多线程、动态

3. 运行原理:源码.java→javac编译为字节码.class→JVM虚拟机解释执行,跨平台靠JVM

4. 源文件与类规则

1. 一个文件最多1个public类,文件名必须和public类名完全一致

2. 无public类时,文件名匹配任意类即可

3. 多个类编译生成多个.class文件

4. 程序入口:包含public static void main(String[] args)的类为主类

5. 程序执行顺序:从主类main方法开始;package包声明必须放在文件第一行

第二章 基本数据类型、数组、枚举

1. 标识符规范

只能由字母、下划线、$、数字组成;不能以数字开头;不能是关键字、true/false/null

2. 数据类型

• 布尔:boolean,取值true/false

• 整数(精度从小到大):byte(1B) < short(2B) < int(4B默认) < long(8B,后缀L)

• 浮点:float(后缀F)、double(默认)

• 精度提升规则:低于int的类型运算后结果自动为int;字符串+任意类型=字符串

3. 输入输出

• 输入:Scanner reader = new Scanner(System.in);,调用nextInt/nextDouble()等

• 输出:System.out.println()换行 / print()不换行

4. 数组

1. 三种声明:int arr[]; int[] arr; int[] arr = new int[长度];

2. 静态初始化:int[] arr = {1,2,3};

3. 下标从0开始;数组名.length获取元素个数,二维数组length是一维数组个数

5. 枚举

语法:enum 枚举名 {常量列表},固定有限常量集合

第三章 类与对象

1. 面向对象三大特性

封装、继承、多态

2. 变量分类

• 成员变量:类内、方法外定义,属于对象/类

• 局部变量:方法内定义,仅方法内生效;和成员变量重名时屏蔽成员变量

3. 方法

• 方法重载:方法名相同,参数个数/类型不同,与返回值无关

• 构造方法

1. 方法名和类名完全相同,无返回值,不能加void

2. 作用:对象初始化,可重载

3. 无自定义构造时,编译器提供默认无参构造;自定义构造后默认构造消失

4. 对象创建与访问

• 创建:类名 对象 = new 类名();

• .运算符:对象.变量、对象.方法(),实现封装访问

5. 参数传递

1. 基本数据类型:值传递,方法内修改不影响原值

2. 引用类型(数组、对象):地址传递,方法内修改会改变原数据

6. static关键字

1. 修饰变量=类变量;修饰方法=类方法;无static为实例变量/实例方法

2. 类变量:类加载时分配内存,可用类名.变量 / 对象访问

3. 实例变量:仅new对象后分配,只能对象访问

4. 类方法:可类名/对象调用,只能操作类变量、调用类方法,不能访问实例内容

5. 实例方法:仅对象调用,可操作全部变量、调用所有方法

7. this关键字

代表当前调用方法的对象;可调用成员变量、普通方法、构造方法;构造方法内this()必须放第一行

8. 包与导入

1. package包声明只能1条,文件首行

2. import导入类,import 包.*导入包下所有类,放在package和类中间

9. 四大访问权限(从宽到窄)

1. public:任意包任意类访问

2. protected:同包、子类可访问

3. 默认(无修饰):仅同包访问

4. private:仅本类内部访问

10. 包装类

基本类型对应封装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean
自动装箱:基本类型→包装类;自动拆箱:包装类→基本类型

第四章 继承、抽象类、接口

1. 继承规则

1. Java单继承:一个类只能直接extends一个父类,父类Object是所有类根类

2. 不可继承:父类private成员、不同包下默认权限成员

3. 子类构造方法默认第一行隐式super()调用父类无参构造;显式super()必须放首行

4. 成员隐藏:子类变量和父类同名,子类屏蔽父类变量;子类方法重写可覆盖父类方法

2. 方法重写

子类方法和父类方法方法名、参数列表完全一致;重写不能降低访问权限

3. final关键字

1. final类:不能被继承

2. final方法:不能被子类重写

3. final变量:常量,定义必须初始化,不可修改

4. 向上转型

父类引用指向子类对象:父类 引用 = new 子类();

• 优点:多态统一调用重写方法

• 限制:无法访问子类独有的变量/方法;静态方法不具备多态,只会调用父类静态方法

5. abstract抽象类&抽象方法

1. 抽象方法:abstract修饰,只有声明、无方法体;类含抽象方法则类必须abstract

2. 抽象类:不能new创建对象;可包含普通变量、普通方法、抽象方法

3. 普通子类继承抽象类,必须重写全部抽象方法;抽象子类可不用重写

4. abstract和final不能同时修饰方法

6. 接口 interface

1. 语法:interface 接口名{};类实现接口用implements,一个类可实现多个接口

2. 接口成员默认修饰:

◦ 变量:public static final常量,必须初始化

◦ 抽象方法:public abstract;Java8新增default默认方法(有方法体)

3. 接口特点:多实现、多继承;无普通变量、无静态方法;不能new实例

7. 抽象类 vs 接口

1. 变量:抽象类可普通变量/常量;接口只能常量

2. 方法:抽象类有普通+抽象;接口只有抽象+default方法

3. 构造:抽象类有构造;接口无构造

4. 继承:类只能单继承抽象类;类可多实现接口

第五章 内部类、匿名类、Lambda、异常

1. 内部类

类中定义的类,可访问外部类所有成员;支持四种访问修饰符、final/abstract修饰

2. 匿名内部类

无类名的子类,直接new父类/接口;不能有静态成员;常作为方法参数传递

3. Lambda表达式

函数式接口(仅一个抽象方法)的简化写法:(参数列表) -> {方法体},参数类型可省略

4. 异常处理

1. try-catch-finally:try放可能出错代码,catch捕获对应异常;finally无论是否异常都会执行,System.exit()会跳过finally

2. throw / throws区别

◦ throw:方法内部手动抛出单个异常对象

◦ throws:方法声明处,标识该方法可能抛出多种异常类

3. 自定义异常:继承Exception,通过throw抛出、throws声明

第六章 常用工具类

String

1. 不可变字符串,常量存常量池;不能被继承

2. 常用方法:length()长度、equals()内容相等、compareTo()字典比较、indexOf()查找下标、substring()截取

StringBuffer

可变字符序列,append()拼接字符串

日期类

LocalDate日期、LocalTime时间、LocalDateTime日期时间,.now()获取当前时间

正则表达式:匹配特殊字符组成的文本规则

第七章 Swing图形界面

1. 顶层容器JFrame窗口;常用方法setBounds()大小位置、setVisible(true)显示、setDefaultCloseOperation()关闭行为

2. 常用组件:JButton按钮、JLabel标签、JTextField单行输入、JTextArea多行文本、JCheckBox复选框、JComboBox下拉框

3. 布局管理器

◦ FlowLayout:流式从左到右

◦ BorderLayout(默认):东西南北中5块

◦ GridLayout:网格行列

◦ CardLayout:卡片层叠

◦ null:绝对布局

4. 事件监听

◦ 事件源(按钮/输入框)注册监听器addActionListener()

◦ ActionListener接口实现actionPerformed()处理点击事件

◦ 鼠标事件MouseListener

5. MVC架构:Model数据模型、View视图界面、Controller交互控制器

第八章 IO流

1. File类:文件/路径对象,仅代表路径,不操作读写

2. 字节流(处理所有文件)

• 输入FileInputStream、输出FileOutputStream;读写read()/write()

3. 字符流(仅文本文件)

• 输入FileReader、输出FileWriter

4. 缓冲流(包装底层流,提升效率)

BufferedReader、BufferedWriter,支持readLine()按行读取

5. 对象流(序列化存储对象)

ObjectInputStream读对象、ObjectOutputStream写对象

网络基础

TCP:面向连接可靠;UDP:无连接数据报,速度快不可靠

第九章 泛型与集合框架

1. 泛型

类/接口/方法声明<类型>,仅支持引用类型,不支持基本类型;?通配符代表任意类型

2. Collection单列集合

1. List(有序可重复)

◦ ArrayList:数组底层,查询快增删慢

◦ LinkedList:链表底层,增删快查询慢

◦ Stack栈:先进后出,push入栈、pop出栈、peek取栈顶

2. Set(无序不可重复)

◦ HashSet:哈希表

◦ TreeSet:有序二叉树

3. Map双列集合(键值对,key唯一)

HashMap、TreeMap;重复key会覆盖原有value

第十章 多线程

1. 多线程分时调度,主线程+子线程交替执行

2. 创建线程:继承Thread类,重写run()方法定义任务,调用start()启动

3. 线程同步:多线程并发修改同一变量时,用synchronized修饰方法保证安全