JDK的安装:
配置环境变量:
a)path:,;%JAVA_HOME%\bin;
b)JAVA_HOME:JDK的安装目录
c)classpath
JDK和JRE和JVM:
JAVA程序的运行过程:
1.编译javac:把java源文件编译成class字节码文件
2.运行java:运行class文件
标识符(给类,方法,变量起名):
1.以字母(采用Unicode字符集),下划线,$开头
2.其余部分可以是:字母(采用Unicode字符集),下划线,$,数字
3.不能为关键字
变量:
1.局部变量
定义在方法内或语句块内,从属于方法或语句块
在使用之前,必须要手动初始化
2.成员变量(实例变量 field)
定义在类里面,方法的外面。从属于对象!
如果我们没有手动初始化成员变量,系统自动初始化,初始化规则如下:
数字:0 ,0.0 布尔 :false char:\u0000 引用类型:null
3.静态成员变量(类变量)
定义在类型里面,方法外面,使用static修饰,从属于类!
如果我们没有手动初始化静态变量,系统会自动初始化,初始化规则同成员变量
数据类型:
1.基本数据类型:
a) 数字
i. 整数:byte(1个字节) short(2个字节) int(4个字节) long(8个字节)
ii. 浮点数:float(4个字节) double(8个字节)
b) 字符char(2个字节)
c) 布尔 boolean(1位)
2.引用类型(4个字节)
a)数组
b)对象
c)接口
表达式:
1.类型的自动提升
如果有long,结果就是long
如果是double,结果就是double
2.强制转型
运算符:
1.算数运算符
2.关系运算符
常见错误写法:1<a<3
3.逻辑运算符
&&,||,!
&,| 3&4
4.位运算符
&,|,<<(左移一位相当于乘以2),>>(右移一位相当于除以2)
3 * 4
5.扩展运算符
6.三目运算符
(布尔表达式)?A:B
7.赋值运算符(=)
If(b=true) if(c==3)
控制语句:
1.顺序结构
2.选择结构
a)If
b)If else
c)If else if else
d)Switch 多值选择,表达式 ,int或char/short/byte,枚举
break:问题
3.循环结构
a)While
b)For
c)do while
break:强制终止整个循环
continue:结束本次循环,继续下一次
面向对象基础:
1.对象的进化史
a)基本数据类型阶段 数据少 无管理时代
b)数组 数据多,将同类型的数据放在一起 弱管理
c)结构体 数据多了复杂了,将不同类型的数据放在一起 强管理
d)对象 数据多了复杂的,行为也复杂了,将不同类型的数据放在一起
对象和类:
对象是具体的,类是抽象的。类也是一个模板,通过类这个模板也可以new对象
定义类:
class (类名) {
//属性
Private 数据类型 属性名: //建议增加相应的getter,setter方法
//方法
//构造方法
}
构造方法:
1.方法名必须与类名保持一致
2.无返回类型
3.通过new来调用
4.无参构造器问题
A)如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器
B)如果我们自己定义构造器,系统不会为我们添加无参构造器
5.构造方法的第一句是super,即直接调用父类的构造方法
A)有继承关系的构造方法调用的顺序
方法的重载(overload):
两同(同一个类,同一个方法名)三不同(参数列表不同,类型,个数,顺序)
返回值不同,构成重载么?No
形参名称不同,构成重载么? No
this:
普通方法中,调用本方法对象
构造方法中:正要初始化对象
还可以用来调用其他构造方法
Super():
Static:
用来修饰的变量和方法,就变成了静态变量和静态方法,从属于类,通过类名即可调用。
实际存储于方法中
Package:
Package必须位于非注释行第一句。
包名:域名倒着写
Import static:导入类的静态属性
Final:
修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)
修饰方法:不能被重写
修饰类:不能被继承
面向对象的三大特征:
封装:
通过private ,default,protected ,public关键字实现属性或方法的封装
“高内聚,低偶聚”
继承:
通过extends 好处:
1.代码重用
2.通过继承实现显示世界更加准确建模
3.类只有单继承
方法的重写:
=:方法名保持一致
>=,:子类的权限修饰符可以大一等于父类的
<=:子类的返回类型小于等于父类的类型。子类声明异常不能超过父类的类型
Object类:
1..是我们所有类的根基类
多态:
三个必要条件:继承,方法的重写,父类引用指向子类对象
动态绑定,静态绑定:
抽象类:
1.包含抽象方法的类,一定是抽象类
2.抽象类不能被new
3.抽象类可以包含:普通方法,成员变量,构造方法。
接口:
1.Interface
2.类实现接口:implements 可以实现多个接口
3.接口可以多继承
4.接口定义的一组规范!实现现实世界中这样的逻辑:如果你是。。。。则必须。。。
内存机制:
栈
1.存放局部变量
2.不可以被多个线程共享
3.空间连续 速度快
堆
1.存放对象
2.可以被多个线程共享
3.方法区:空闲不连续,速度慢 但是灵活
1.存放类的信息,代码,静态变量,字符串常量等。
2.可以被多个线程共享
3.空闲不连续,速度慢 但是灵活
垃圾回收器(GC)
1.程序员不能调用垃圾回收器,但是可以通过System。Gc建议回收
2.finalize:一般不调用
递归算法:
1.递归头:什么时候不调用自己
2.递归法:什么时候调用自己