JDK的安装
1、 下载、安装
2、 配置环境变量
a) Path:.;%JAVA_HOME%\bin;
b) JAVA_HOME:JDK的安装目录
c) Classpath:5.0以后不需要安装
JDK和JRE和JVM
JAVA程序的运行过程:
1、 编译javac:吧java文件编译成class字节码文件
2、 运行java:运行class文件
标识符(给类、方法、变量起名)
1、 以字母(采用unicode字符集)、下划线、$开头
2、 其余部分可以是:字母(采用unicode字符集)、下划线、$开头、数字
3、 不能为关键字
变量
1、 局部变量
a) 定义在方法内或者是语句块内。从属于方法和语句块。使用前手动初始化。
2、 成员变量(实例变量field)
a) 定义在类里面,方法外面。从属于对象!
b) 如果没有手动初始化系统会自动初始化。初始化的规则如下:
i. 数字:0.00
ii. 布尔:false
iii. Char:\u0000
iv. String:null
3、 静态变量
a) 定义在方法里面类外面使用static修饰。从属于类。
b) 如果没有手动初始化系统会自动初始化。初始化的规则如下:
i. 数字:0.00
ii. 布尔:false
iii. Char:\u0000
iv. String:null
数据类型:
1、 基本数据类型:
a) 数字:
i. 整数:byte(1个字节) short(两个字节) int(4个字节,整型常量默认该类型) long(8个字节)
ii. 浮点数:float(4个字节) double(8个字节,浮点数常量默认该类型)
b) 字符char(2个细节)
c) 布尔boolean(1位)
2、 引用类型:(4个字节)
a) 数组
b) 对象
c) 接口
表达式
1、 类型的自动提升
a) 如果有long,结果是long
b) 如果有double,结果是double
2、 强制转型
运算符
1、 算术运算符
2、 关系运算算符
a) 常见错误写法:1<a<3
3、 逻辑运算符:
a) &&
b) ||
c) !
4、 位运算符
&,|,<<(左移一位相当于乘2),>>(右移一位相当于乘2)
5、 扩展运算符
+=,-=,*=、/=
6、 三目运算符
(布尔表达式)?A:B
7、 赋值运算符(=):
If(b=true)不对if(b)正确
If(c=3)不对if(3==c)正确格式好
控制语句
1、 顺序结构
2、 选择结构
a) If
b) If else
c) If elseif….else
d) Switch 多值选择 表达式:int 或char/short/byte,枚举
break;问题
3、 循环结构
a) While 先判断后执行
b) For
c) Do while 先执行后判断
Break;强制终止整个循环
Continue:结束本次循环,继续下一次!
面向对象基础:
1、 对象的进化史
a) 基本数据类型阶段 数据少 无数据管理时代
b) 数组 数据多了,将同类型的数据放在一起 弱管理
c) 结构体 数据多了复杂了,将不同类型的数据放在一起 强管理
d) 数据多了、类型复杂了、行为复杂了。讲不通的类型的数据放在一起 超强管理时代
对象和类
对象是具体的,类是抽象的。类也是一个模板,通过模板可以new对象
定义类
(public)Class 类名 {
//属性
Private 数据类型 属性名;//建议增加相应的getter,setter方法
//方法
//构造方法
}
Public 类 类名和文件名必须一致
构造方法
1、 方法名和类名要保持一致
2、 无返回类型
3、 通过new来调用
4、 无参构造器
a) 如果没有手动定义构造器,系统会自动添加一个无参数的构造器
b) 如果已经定义了构造器,系统就不会为我们添加无参构造器
5、 构造方法的第一句总是Super,调用直接父类的构造方法
a) 有继承关系的构造方法的调用顺序
方法的重载(overload)
两同(同一个类,同一个方法)三不同(参数列表不同:类型、个数、顺序)
返回值不同,不构成重载
形参名称不同,不构成重载
This
1、 普通方法中:调用方法的对象
2、 构造方法中:正要初始化的对象
3、 用来调用其他的构造器
Super
1、直接父类的引用
Static
1、用它修饰的变量或方法变为静态的,从属于类,通过类名进行调用。实际存储于方法区中
Package
1、 package必须用于非注释行第一句,
2、 包名,域名到这写
Import
1、 引入外部的类
2、 Import static 导入静态的属性
Final
1、 修饰变量:常量(全部大写、下划线)
2、 修饰方法:不能重写
3、 修饰类:不能被继承
面向对象的三大特征:
封装:
1、 通过private 、default、protect、public实现属性或方法的分装
2、 高内聚,低耦合
继承:
1、 通过extends。两个好处:
a) 代码重组
b) 通过继承对现实实现更加准确的建模
Object类:
1、 是所有类的根基类
2、 ToString
3、 Equals、hashcode
4、 Wait、notify、notifyAll
方法的重写(overwrite)
=:方法名保持一致
>=:子类的修饰符可以大于等于父类的
<=,<=:子类的返回值类型小于等于父类的返回值类型
子类的声明异常类型不能超过父类的类型
多态:(三个必要条件:继承、方法的重写、父类的引用指向子类对象)polymorphism
动态绑定、静态绑定
抽象类:abstract
1、 包含抽象方法(必须背子类重写)的类,一定是抽象类
2、 抽象类不能被new
3、 抽象类可以包含普通方法、成员变量、构造方法
接口:
1、 interface
2、 类实现接口:implements 可以实现多个接口
3、 接口之间可以多继承,类只单继承
4、 接口定义的一组规范!实现现实事件中这样的逻辑:如果你是则必须。。。
内存机制
栈:
1、 存放局部变量
2、 不可以被多个线程共享
3、 空间连续,速度快
堆:
1、 存放new出的对象
2、 可以被多个线程共享
3、 空间不连续,速度慢,但是灵活
方法区:
1、 存放的信息:代码、静态变量、字符串常量等
2、 可以被多个线程共享
3、 空间不连续,速度慢,但是灵活
垃圾回收机制(GC Garbage Collection)
1、 程序员不能调用垃圾回收机制,但是可以用System.gc()建议回收
2、 Finallize:一般也不要去调用
递归算法:
1、 递归头:什么时候不调用自己
2、 递归体:什么时候调用自己