JDK:
Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等。
JRE:
Java运⾏环境,⽤于解释执⾏Java的字节码⽂件。
JVM
Java虚拟机,是JRE的⼀部分。负责解释执⾏字节码⽂件,是可运⾏java字节码⽂件的虚拟计算机
区别联系:(问答题会考可能)
JDk包含JRE,JDK 和 JRE 中都包含 JVM。JDK出了包含jre还包含⼀些常⽤开发⼯具和基础类库
JDK ⽤于开发,JRE ⽤于运⾏java程序
JVM 是 java 编程语⾔的核⼼并且具有平台独⽴性
javac: 编译 java源⽂件->class字节码⽂件(0,1)
java: 解释
不能以数字开头。
不能是Java中的关键字。
按声明位置:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部、类的内部定义的变量
在类体内定义的变量称为成员变量,它的作⽤域是整个类
在⼀个⽅法或⽅法内代码块中定义的变量称为局部变量
注意:
类外面(与类对应的大括号外面)不能有变量的声明
方法体内部声明的变量(包括形参)称为局部变量:方法体内部是指与方法对应的大括号内部
在方法体外,类体内声明的变量称为成员变量
按所属类型:
基本数据类型变量(8种)
引用数据类型变量
基本类型转换:
boolean类型不可以转换为其他的数据类型
整型、字符型、浮点型的数据在混合运算中相互转换,转换规则:
容量小的类型自动转换为容量大的数据类型,数据类型按照容量大小排序为:
byte,short,char->int,->long->float->double
byte,short,char之间不会互相转换,三者在计算时首先转换为int型
容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出
有多种类型的数据混合运算时,系统首先自动将所有数据类型转换为容量最大的那一种数据类型,然后在进行计算
实数常量默认为double,整数常量默认为int
数组初始化
Java语言中声明数组时不能指定其长度
三⼤特征:封装、继承、多态
对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体
必须使用new关键字创建对象
使用对象(引用).成员变量或来引用对象的成员变量
使用对象(引用).方法(参数列表)来调用对象的方法
同一类的每个对象有不同的成员变量存储空间
同一类的每个对象共享该类的方法
使用new+构造方法创建一个新的对象
构造函数是定义在Java类中的一个用来初始化对象的函数
构造函数与类同名且没有返回值
方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。
调用时,系统会根据不同的参数表选择对应的方法
static 关键字
被static修饰的变量属于类变量,可以通过类名.变量名直接引⽤,⽽不需要new出⼀个类来
被static修饰的⽅法属于类⽅法,可以通过类名.⽅法名直接引⽤,⽽不需要new出⼀个类来
实现继承
方法重写
父类引用指向子类对象
线程和进程的区别
每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销
线程可以看成是轻量级的进程,同一类线程共享代码和数据空间,每个线程都有独立的运行栈和程序计数器(PC),线程切换开销小
多进程:在操作系统中能同时运行多个任务(程序)
多线程:在同一应用程序中有多个顺序流同时执行