总结001&面试

 

第一章Java基础

1.1  Java的核心? 跨平台没有之一

1.2  Jdk、Jre、Jvm 三者的关系?Jdk包括jre,jre包括jvm

1.3  多行注释不能嵌套,多行注释可注释某行中某些单词 /*allen*/args

1.4  标识符规则?标识符是否支持中文?以及其作用?

  1. 由字母、下划线、美元符号($)、数字组成,但不能以数字开发。
  2. 特别注意此处的字母说的是unicode字符集,所以标识符支持中文哦?
  3. 其作用就是给变量、方法、类、接口、枚举、注解类命名

1.5  数字注意点

  1. 整型数字默认是int,浮点型默认是double,注意计算表达式中类型自动提升
  2. 整型想用long,用L或l结尾。浮点型想用float用F/f结尾。

1.6  单引号、双引号、\在java的世界里都有特殊意义,分别表示字符、字符串、转义

  1. char c=’\’’;才表示单引号
  2. String s = “\””;才表示双引号

1.7  基本类型注意点

  1. Byte、short、char自动提升到int并且可以把整数直接赋值给他们,别超过其范围,否则会报错。byte是-127至128,char是0至65535

char c = 'c' +1;

System.out.println(c); //d

char d = 100;  //直接把整数赋值给char变量

System.out.println(d);//d

  1. 整型默认是int,要表示long,需整型后面加L或l,浮点数默认是double,要表示float,得在浮点数后面加F/f

long ds = 70L * 60 *24 * 365 * 24;涉及类型提升一定要先提升(70L),否则可能报溢出错。long total = (long)money * years;而不是long total = (long)(money * years);

  1. 浮点数存在舍入,最好不要进行数值比较(尤其是等号)。

要精准浮点数用BigDecial。要比long大整数用BigInteger

  1. char的范围0-65535,数值运算时直接当作整数运算,可把0-65535范围的数直接赋值给char变量。
  2. 总结001&面试

 

  1. 强转可能超出其范围,超出就存在截取。
  2. 负数的二进制转十进制,符号不变,按位取反 + 1

总结001&面试

 

  1.  boolean类型只有1个位,2个值为true或false,而不是1个字节

 

1.8  局部变量与全局变量的区别?

从5点讲述

  1. 范围不同即作用域不同
  2. 有没有默认值,全局有,局部无
  3. 加final关键字后的差异,全局必须在声明处赋值;局部在使用时必须赋值
  4. 实参(掉用函数时参入的参数)、形参(定义函数时声明的参数);java只有值传递,基本类型、String等不可变类,不会改变原值;其他引用变量会改变对象的值(因为传递的值不变,是指引用的值即对象的地址不变,但会导致对象的内容/值发生改变。
  5. 局部变量不能使用static修饰,而且静态方法或静态块中不能出现static关键字即不能在静态方法或静态块中声明静态变量,因为java自动隐式添加static

总结001&面试

 

Integer、String都是不可变类哦

1.9 运算符分类及优先顺序

1.9.1> 1. 括号() 2、正负号+、- 3、一元运算符:++、--、!即自增、自减、取反

1.9.2> 算术运算符:4、乘除求余:*、/、% 5、加减:+、- 6、移位运算符:>>、>>>、<<右移、无符号右移,左移(没有无符号左移哦)

1.9.3> 比较运算符:7、比较大小:<、>、>=、<= 8、比较相等:== 、!=

1.9.4> 位与、异或、或:9、&  10、^  11、|

1.9.5> 逻辑与或:12、逻辑与:&& 13、逻辑或:||

           逻辑运算符有短路功能,操作的数据都是boolean值或布尔表达式

1.9.6> 14、三元运算符:  ? :

1.9.7> 15、赋值运算符: =、+=、-=

  1. 左移1位相当于乘以2,右移1位相当于除以2
  2. 面试题:3乘以2,怎么算最快? 3 << 1  即3左移1位
  3. + 号和字符串在一起,就没有运算作用,变成了字符串连接syso(4+”5”)—>45

1.10  if小技巧

  1. If(表达式中的变量的范围越来越大即先i>5;接着i>3;然后i>1)

If(i > 5){

}else if(i >3){

}else if(i >1){

}else{

}

  1. 一般不用这样写if(c==3),而是这样写if(3==c)即把确定值的放前面