java复习
目录
1. java技术体系
技术体系 | 说明 |
---|---|
javaSE:标准版 | java技术的核心和基础 |
javaEE:企业版 | 企业级应用开发的一套解决方案 |
javaME:小型版 | 针对移动设备应用的解决方案 |
1.1 JRE和JDK(记忆)
缩写 | 说明 |
---|---|
JVM(virtual box) | java 虚拟机 |
JRE(Runtime Environment) | java运行环境 |
JDK(Development Kit) | 包含JRE和开发工具 |
2.idea 快捷键
快捷键 | 功能效果 |
---|---|
main/psvm,sout | 快速输入相关代码 |
ctrl+alt+L | 格式化代码 |
alt+shift+↑ | 上移当前代码 |
alt+shift+↓ | 下移当前代码 |
alt+insert | 在类中快速生成构造方法,get,set方法 |
ctrl+alt+v | 补全左边的返回值 |
shift+enter | 切换下一行 |
3. 变量
- 变量定义时可以没有初始化值,但在使用时必须有初始值
4. 数据类型
- 整数
- byte:1字节
- short:2字节
- int(默认):4字节
- long,后面加L/l代表long类型:8字节
- 浮点数
- float,后面加f/F:4 字节
- double(默认):8字节
- 字符
- char:2字节
- 布尔
- boolean:1字节
4.1 数据类型的自动转换
注意点
- boolean不参与自动类型转换
5.类名命名规范
- 首字母都大写
6. java中的内存分配(红色-栈,蓝色-堆)
- 栈和堆
- 简单数据类型在栈
- 复杂(引用数据类型)在堆
6.1 堆内存new出来的实体默认值
数据类型 | 默认值 |
---|---|
整数 | 0 |
浮点数 | 0.0 |
布尔 | false |
字符 | 空字符 |
引用数据类型 | null |
7.方法重载和方法重写
8.类和对象
8.1 类
- 定义:类是对现实生活中的一类具有共同属性和行为的事物的抽象
- 组成:属性和行为(对应成员变量和成员方法)
8.2 对象
- 具体存在的事物
8.3 对象内存图
- 单个对象内存图
- 多个对象内存图
8.4 成员变量和局部变量
- 成员变量:类中方法外
- 局部变量:类中方法中或者形参
8.5 private 关键字
8.6 this 关键字
- this代表当前调用方法的引用,哪个对象调用方法,this指向哪个对象
- 图解
9.数组
- 存放数据长度固定的容器,存放的数据类型一致
9.1 数组的创建
- 字面量
int []arr;
- new 数据类型[数组长度]
int []arr=new int[3];
- new 数据类型[数组长度] 完整版
int []arr=new int[]{1,2,3};
10.方法
- 具有独立功能的一段代码的整体
- 可以认为是函数
- 在类中称为成员方法
10.1 方法的创建(一个类的外面)
public static 返回值类型 方法名(){}
- 调用
方法名();
方法调用的内存图
注意点
- 方法不能嵌套(一个方法里面里面在定义另一个方法)
public static void method1(){
public static void method2{
//这里编译错误
}
}
基本数据类型传参,不影响原来的参数
####复杂(引用数据类型传参,影响原来的参数)
11. ArrayList 类
- 查jdk文档
12. String
12.1 String对象的特点
- 长度不可变
- new 出来的字符串地址引用不同
- 以""创建的字符串如果内容相同,则引用(地址)相同
12.2 String 内存图
12.3 字符串拼接的后果
- 图解
12.4 StringBuilder 类
-
解决字符串拼接造成的资源浪费
-
使用方法:查阅jdk文档
13. 继承
13.1 作用域链
- 查找一个变量,就近原则
- 就近原则:子类局部范围->子类成员范围->父类成员范围->报错
13.2 super关键字
- 父类对象引用
- this对象的父类(基类为object)
super 内存图
13.3 继承中子类构造方法的特点
-
子类中所有的构造方法默认访问父类的无参构造
-
子类的构造方法中第一句默认为super(),我们不可见,但它存在
-
父类尽量都有无参构造方法,否则出错
13.4 方法重写
- 产生于继承中
- 子类有父类的方法(结构完全一致)
- 子类要重写父类方法
- 父类的private 修饰的方法不能被重写
- 使用Override 注解检测 重写方法
重写父类(Comparable接口)的排序方法
@Override
public int compareTo(Student o) {
return this.age-o.age;
}
14. final 关键字
- 可修饰的东西
- 成员变量
- 成员方法
- 类
- 局部变量
注意点
- 被final修饰的类不可被继承(没有儿子,但可以有父亲)
- final修饰的成员变量为常量,不可被多次赋值
- final修饰的成员方法,不可被重写
final 修饰局部变量
- 修饰基本数据类型:值不可变
- 修饰引用数据类型:地址(引用不可变),堆内存的内容可以改变
15. static 关键字
- 修饰成员变量,成员方法
- 静态方法只可以访问静态变量
- 被static修饰的方法,可以通过类名.方法调用(不需要实例化)