Java se 学习笔记
JDK 的安装
1. 下载、安装
2. 配置环境变量
a) path; ;%JAVA_HOME%bin;
b) JAVA_HOME; jdk的安装目录
c) Classpath:
JDK 和JRE 和JVM:
JDK 全称 java developmentkit---Java 开发工具包
JRE 全称 Java runtimeenvironment ----java 运行环境
JVM 全称java virtualmachine ---Java虚拟机
Java程序运行过程
1. 变异Javac,把Java源文件编译成.class 字节码文件
2. 运行Java:运行class文件
标识符(给类、方法、变量起名)
1. 以字母(Unicode字符集)、下划线、$开头
2. 其余部分可以是字母(Unicode字符集)、下划线、$、数字
3. 不能是关键字
变量:
1. 局部变量
定义在方法内或语句块内。属于方法或语句块。
2. 成员变量
定义在类里面,方法外面。属于类
如果没手动初始化成员变量,系统会自动初始化。规则如下:
数字:0,0.0 布尔:false char:\u000; 引用类型:null
3. 静态变量
定义在类里面,方法外面。使用static修饰。属于类
如果没手动初始化变量,系统会自动初始化。规则如下:
数字:0,0.0 布尔:false char:\u000; 引用类型:null
数据类型
1. 基本数据类型
a) 数字
1) 整数:byte(1个字节),short(2个字节),int(4个字节,整型常用默认类型)
Long(8个字节)
2) 浮点数:float (4个字节),double(8个字节,浮点数默认类型)
b) 字符:char(2个字节)
c) 布尔:boolean(1个字节)
2. 引用类型(4个字节)
a) 数组
b) 对象
c) 接口
表达式
1. 类型的自动提升
整型中,若有long就是long
若有double就是double
2. 强制转型
运算符
1. 赋值运算符
=
2. 算术运算符
3. 关系运算符
==
判断等于,常量放在等于号前面,变量放在等于号后面
常见错误写法:1<a<3
正确写法:1<a&&a<3
4. 逻辑运算符
&&(两边必须是布尔型)、||、!
&、|
5. 位运算符
&、|、<<(左移等于乘于2)、>>(右移等于除以2)
6. 扩展运算符
+=、-=、*=、/=、%=
7. 三目运算符
布尔表达式?A:B
控制语句
1. 顺序结构
2. 选择结构
a)If else
b)Switch(表达式)
case : break;
3. 循环结构
a) While 先判断后执行
b) do while 先执行一次后判断
c) for
break强行跳出循环
continue结束本次循环,继续下一次
面向对象基础:
1. 对象进化史:
a) 基本数据类型阶段:
b) 数组 多数据,同类型
c) 结构体 多数据,不同类型
d) 对象 多数据,不同类型,不同方法
对象和类:
对象是具体的,类是抽象的。类是一个模板,通过类这个模板可以new对象
定义类:
Public class 类名{
//属性
Private:数据类型 属性名:
//方法
//构造方法
}
构造方法:
1. 方法名必须跟类名保持一致
2. 无返回类型
3. 通过new来调用
4. 无参构造函数
a) 如果没有手动添加无参构造,系统会自动为我们添加无参构造器
b) 如果添加了,系统就不会为我们添加
5. 构造方法的第一句总是调用直接父类的构造方法:super
方法的重载(override)
两同(同一个类,同一个方法名)三不同(参数列表不同,类型、个数、顺序)
返回值不同,不构成重载
形参名称不同,不构成重载
This:
普通方法中:调用本方法的对象
构造方法中:正要初始化的对象
调用其他构造方法
Super
Static
用它修饰的变量和方法,就变成静态变量or 静态方法,通过类名即可调用
实际存储于方法区中
Package
Package必须位于非注释行的第一行
包名:域名倒着写
Imports
引入外部的类
Imports static 导入类的静态属性
Final
修饰变量:常量(命名规范:全部大写,多个单词之间用下划线隔开)
修饰方法:不能被重写
修饰类:不能被继承
面向对象三大特征
封装(Encapsulation)
通过private、default、protected、public关键字实现属性或方法的封装
高内聚,低耦合
继承(inheritance)
通过extends,优点
1. 代码重用
2. 通过继承实现对现实世界更准确的建模
3. 只能单继承
方法的重写
=方法名保持一致
>=子类权限修饰符可以大于等于弗雷德类型
<=
Object类
1. 所有类的根基类、
2. toString
3. equals hashcode
4. wait
多态(polymorphism)
三个必要条件,继承、方法的重写、父类引用指向子类对象
动态绑定、静态绑定
抽象类
1. 包含抽象方法的一定是抽象类。
2. 抽象类不能被new
3. 抽象类可以包含:普通方法、成员变量、构造方法
接口
1. Interface
2. 类实现接口;implements可以实现多个接口
3. 接口可以多继承
4. 接口定义的规范: 实现现实世界中这样的逻辑,如果你是——必须能——
内存机制:
栈:
1. 存放局部变量
2. 不可以多个线程共享
3. 空间连续,速度快,但不灵活
4.
堆
1. 存放对象
2. 可以被多个线程共享
3. 空间不连续,速度慢,但灵活
4.
方法区:
1. 存放类的信息,代码、静态变量。字符串变量
2. 可以被多个线程共享
3. 空间不连续,速度慢,但灵活
垃圾回收器(GC garbage collection )
1. 程序员不能调用垃圾回收器,但是可以通过system.gc建议
2. Finalize