java基础
Q1:java的特性?
A:跨平台.
Q2:JDK,JRE,JVM?
A:JDK:Java development kit ,java的开发工具包,包含jre,jvm,lib类库 JRE:java runtime environment ,java的运行环境 JVM: java virtual machine, java虚拟机,虚构的机器,通过软件模拟计算机的功能
Q3:&和&&
A: &:按位与,如a&b,两者都返回true时,才为true,而且不管a是否结果如何,都会进行剩下的b的运算,即没有短路效应
&&:逻辑运算,逻辑与,两者都为true时才为true,但逻辑与有短路效应,即当前者返回值为false时,它是不会计算后者结果,直接返回false
Q4:|和||
A: |表示按位或,只要有一个为true,结果就为true,两个都为false时结果为false,不具有短路效应,前者不管结果如何,都会进行运算
||表示逻辑或,只要有一个为true,结果就为true,两个都为false时结果为false,具有短路效应,前者为true时不会计算后者,结果直接为true.
A: ==是运算符,比较变量是否相等,如果基本类型使用==比较,比较的是他们的值,对象使用==比较时,比较的时它们的内存地址,如果需要比较对象内容,需要重写equals()方法
Object类中的equals()方法比较的是两个对象的的地址
Q:java的基本数据类型(8个)
A:数值类型:①整数型:byte short int long ②浮点型:float double 非数值类型:布尔类型boolean 字节类型char
数据类型由低类型转高类型称为自动转换(byte-->short-->int-->long-->float-->double-->long),高类型转低类型称为强制转换
基本类型 | 字节byte | 位数bit | 最小值 | 最大值 | 默认值 | 包装类型 |
byte | 1 | 8 | -2^7 | 2^7 -1 | (byte) 0 | Byte |
short | 2 | 16 | -2^15 | 2^15 -1 | (short) 0 | Short |
int | 4 | 32 | -2^31 | 2^31 -1 | 0 | Integer |
float | 4 | 32 | IEEE754 | IEEE754 |
0.0f |
Float |
double | 8 | 64 | IEEE754 | IEEE754 | 0.0d | Double |
long | 8 | 64 | -2^63 | 2^63 -1 | 0L | Long |
char | 2 | Unicode 0 | Unicode 2^15 -1 | 0 | '\u0000'或null | Character |
boolean | -- | -- | --- | -- | false | Boolean |
Q6:①short s1 = 1; s1 = s1 + 1;(有错) ②short s1 = 1; s1+=1;(正确)
A:进行=号赋值时,右侧数据类型要向左侧数据类型看齐 ,
① short s1 =1; 正确,
虽然1为int类型,但在short类型的数值范围内(-2^15~2^15 -1),
s1 = s1 + 1; 1为int类型,s1为short类型,s1会自动转型为int类型1,所以(s1+1)相加后是int类型2
向左侧的类型看齐,需要强制转换类型
正确的写法是:short s1=1;s1=(short)(s1+1); 或者 short s1=1;s1+=1;
②执行s1+=1; =+ 操作符会进行隐式自动类型转换成持有结果类型,其实执行的是s1 = (short) (s1 + 1);