1.Java 语言的特点
简略性、高性能、编译性、解释性、面向对象、分布式解决、健壮性、安全性、开源、可跨平台等等。
2. 什么是 JDK、JRE、JVM?
JVM:英文名称(Java Virtual Machine),就是咱们耳熟能详的 Java 虚拟机。它只意识 xxx.class 这种类型的文件,它可能将 class 文件中的字节码指令进行辨认并调用操作系统向上的 API 实现动作。所以说,jvm 是 Java 可能跨平台的外围,具体的下文会具体阐明。
JRE:英文名称(Java Runtime Environment),咱们叫它:Java 运行时环境。它次要蕴含两个局部,jvm 的规范实现和 Java 的一些根本类库。它绝对于 jvm 来说,多进去的是一部分的 Java 类库。
JDK:英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的外围,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。
显然,这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。
3. 数据类型
(1)根本数据类型(8 种)
位 bit 字节 byte 1byte=8bit
(2)援用类型(3 种)
类(class)、接口类型(interface)、数组类型(array)
援用类型是一个对象类型,值是什么呢?它的值是指向内存空间的援用,就是地址,所指向的内存中保留着变量所示意的一个值或一组值。
(3)区别
根本数据类型在被创立时,在栈上给其划分一块内存,将数值间接存储在栈上。
援用数据类型在被创立时,首先要在栈上给其援用(句柄)调配一块内存,而对象的具体信息都存储在堆内存上,而后由栈下面的援用指向堆中对象的地址。
4. 根本数据类型局部概念
(1)整数字面值是 int 类型,浮点数字面值是 double 类型。
(2)byte,short,char 三种比 int 小的整数能够用范畴内的值间接赋值。
(3)字面值后缀 l f d
L –long 如:long a = 99999999999;// 错,超出范围,解决方案加 L
F –float 如:float a = 3.14;// 错,右面是 double 类型,解决方案加 F
D –double 如:double a=3;// 错,右面是 int,解决方案加 D 或者改成 3.0
(4)进制前缀
0x – 16 进制
0 - 8 进制
u -char 类型,16 进制
(5)根本数据类型的类型转换
小到大(隐式转换)
大到小(显式转换)int x = 356;
byte y=(byte) x;
(6)根本数据类型运算规定
- 计算结果的数据类型,与最大类型统一
3/2 得 1,而不是 1.5,后果是 int 类型
3d/2 得 1.5,相当于 double/int,后果是 double 类型
- byte,short,char 三种比 int 小的整数,运算时会先主动转换成 int
- 整数运算溢出(BigInteger:罕用来解决超大的整数运算。)
- 浮点数运算不准确(BigDecimal:罕用来解决准确的浮点数运算。)
- 浮点数的非凡值
5.& 和 && 的区别
当一个 & 表达式在求值的时候,两个操作数都会被求值,&& 更像 是一个操作符的快捷方式。当一个 && 表达式求值的时候,先计算第一个操作数,如果它返回 true 才会计算第二个操作数。如果第一个操作数 取值为 fale, 第二个操作数就不会被求值。
6.break 和 continue 的区别
break: 中断以后循环,简略粗犷
for(){
代码 1
if(条件){
代码 3…break;// 如果成立,间接跳出这个 for 循环
}
代码 2…
}
continue:跳出本次循环,进入下一轮
for(){
代码 1
if(条件){
代码 3… continue;// 如果成立,跳出本次 for 循环,进入下一轮
}
代码 2…
}
7. 局部变量和成员变量的区别
局部变量:定义在办法里,或者部分代码块中。
留神:必须手动初始化,来分配内存。如:int i=5;
作用域也就是办法里或者部分代码块里,办法运行完内存就开释了。
成员变量:定义在类里。
留神:不必初始化,也会主动被初始化成默认值。
作用域是整个类中,类隐没了,变量才开释。
8. 办法重载和办法重写的区别
重载:产生在同一个类中,办法名必须雷同,参数类型不同、个数不同、程序不同,办法返回值和拜访修饰符能够不同,产生在编译时。
重写:产生在父子类中,办法名、参数列表必须雷同,返回值范畴小于等于父类,抛出的异样范畴小于等于父类,拜访修饰符范畴大于等于父类;如果父类办法拜访修饰符为 private 则子类就不能重写该办法。