一 JDK的安装
1.下载,安装
2.配置环境变量
a)path
b)JAVA_HOME:JDK的安装目录
c)classpath
注意:JDK,JRE,JVM的区别
3.Java程序运行过程
编译javac:把java源文件编译成class字节码文件
运行java:运行class文件
二 Java基本程序
1.基本数据类型
整型默认为int型,浮点型默认为double型
2.引用类型(4个字节)
数组
对象
接口
3.表达式
类型的自动提升:如果表达式中有long,结果就是long型;如果表达式中有double,结果就是double。
强制转型
4.运算符
(1)算术运算符
(2)赋值运算符 例如if(c==2)最好写成if(2==c)防止写掉一个=出现bug
(3)关系运算符 常见错误1<a<3
(4)逻辑运算符 &&和|| 和! 前两个是短路的
(5)位运算符 <<(左移相当于乘以2) >>(右移相当于除以2)
(6)扩展运算符 自增 自减 += -=
(7)三目运算符 (布尔表达式)?A:B
5.控制语句
(1)顺序结构
(2)选择结构
(3)循环结构
while(条件为true时执行) 先判断后执行
for 先判断后执行
do......while 先执行后判断
break 强制终止整个循环
continue 结束本次循环,继续下一次循环
三 类和对象
对象是具体的,类是抽象的,类也是一个模板,通过这个模板可以new对象
1.类的定义
public class 类名{ //类名需要跟文件名相同
private 数据类型 属性名; //建议增加相应的getter和setter
}
构造方法:
a.方法名必须与类名保持一致;
b.无返回类型;
c.通过new来调用;
d.无参构造器问题
如果没有手动定义构造器,系统会自动添加一个无参构造器;
如果有自己定义构造器,系统就不会添加无参构造器。
e.构造方法的第一句总是super,即调用直接父类的构造方法。
有继承关系构造方法调用的顺序。
2.方法的重载
两同:同一个类,同一个方法名
三不同:参数列表不同(类型,个数,顺序)
返回值不同,参数名称不同,都不构成重载
3.this关键字
在普通方法中,调用本方法的对象,
在构造方法中,正要初始化的对象,
还可以用来,调用其它的构造方法。
4.super关键字
5.static关键字
6.final关键字
修饰变量,即为常量(命名规范:全部大写,多个单词之间用下划线隔开);
修饰方法,不能被重写;
修饰类,不能被继承。
7.面向对象的三大特征
(1)封装
通过private,default,protected,public实现属性或方法的封装。
(2)继承(extends)
两个好处:代码重用,通过继承实现对现实世界更加准确的健模。
(3)多态
三个条件:继承,方法的重写,父类引用指向子类对象。
8.方法的重写
方法名保持一致;
子类权限修饰符可以大于等于父类的;
子类的返回值类型小于等于父类类型,子类声明异常类型不能超过父类类型。
9.抽象类(抽象方法必须被子类重写)
包含抽象方法的类,一定是抽象类;
抽象类不能被new;
抽象类可以包含:普通方法,成员变量,构造方法。
10.接口(interface)
类实现接口(implements),可以实现多个接口;
接口可以多继承;
接口定义的一组规范。
11.内存机制
栈:(1)存放局部变量;(2)不可以被多个线程共享;(3)空间连续,速度快。
堆:(1)存放对象;(2)可以被多个线程共享(加锁);(3)空间不连续,速度慢,但是灵活。
方法区:(1)存放类的信息(代码,静态变量,字符串常量);(2)可以被多个线程共享;(3)空间不连续,速度慢,但是灵活。
12.垃圾回收器(GC)
程序员不能调用垃圾回收器,但是可以通过System.gc()来建议回收,但系统不一定会马上执行回收,但一定会执行。
finallize:一般也不用调。