2018-12-25 课堂笔记&面试题
面试题一、Java中,八大基本数据类型有哪些?
答:数值型:整型(byte、short、int、long)浮点型(float、double)
非数值型:布尔类型(boolean)字符型(char)。
注意:字符串String不属于八大数据类型。
面试题二、==和equals的区别
答:==通常做数值的关系比较,
equals通常做引用型数值类型的相等比较。
==比较的是变量的地址是否同一地址,
equals比较的是变量指向的值是否相同的。
注意:==比较的是地址,equals是比较值。
面试题三、如何已最快的方式求出2的3次方?
答:System.out.print(2<<2);
解析:将2往左移动两位。
面试题四、6&7=? 6|7=?
110 110
&111 |111
110 111
答:6二进制110 7二进制111
面试题五、&和&&的区别?
1、&表示逻辑且,无论第一个操作数是否位true,第二个操作都执行。
&&表示短路且,第一个操作数false,后面操作都不执行,结果返回false。
2、&还可以用作位运算符,&&只能做逻辑运算符。
赋值运算符 =
变量 变量类型 变量名 = 变量值;
常量 final 常量类型 常量名 = 常量值;
变量名规范: name 45asd aaa a_aa loginName
name2 _asda $asda admin asd
算术运算符 + - * / % ++ -- += -= *= /=
int a = 1;
int sum = (a++) + (++a) + (a--) + (++a) + (--a) + (a++) + (++a);
18 1 3 3 3 2 2 4
int a = 1;
int b = 2;
b += a; b = b+a;
int c = 2;
int d = 4;
D += c; D= D+c;
int a = 1;
double aa = a;
自动类型转换:1、类型可以兼容 2、目标类型大于源类型
double b = 2.1;
int bb = (int)b;
强制类型转换:1、类型可以兼容 2、目标类型小于源类型
关系运算符:==等于 !=不等于 >大于 < 小于 >=大于等于 <=小于等于
== !=可以比较所有类型 > < >= <= 只能比较数值
基本数据类型,在做关系运算时:直接将变量值进行比较运算。
引用型数据类型,在做关系运算时:比较的是地址。
逻辑运算符:&&-且 ||-或 !-非
或:|逻辑或 ||短路或
案例:(1>2)||(2>1)=true;或运算只要符合一个true,全为true。
且:&逻辑且 &&短路且
案例:(1>2)&&(2>1)=true;且运算只要一个false,全为false。
条件运算符:
做我女朋友好吗?“幸福”:“单身狗”;
2<3?true:false;
位运算符:
& 按位且
| 按位或
^ 按位且或
~ 按位非|取反
<< 左移 右侧空位补0
>> 右移
>>>无符号右移