Java那些必须知道的常识


1、

被static声明的静态方法可以直接引用而不用实例化。

2、


在使用servlet的使用我们经常是继承HttpServlet,但是HttpServlet并不是最顶层,HttpServlet是继承GenericServlet
3、

被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了
而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。
Java中的byte,short,char进行计算时都会提升为int类型。

4、


从此图可以看出,除了G1收集器,其他Serial,CMS,ParNew垃圾收集器都是在1.6或之前就已经有了。
G1实际上是jdk1.7才引入的。

5、


6、

A 基本数据类型包括byte,short,int,long,float,double,char,boolean,所以A错。
B,C语言当中是这样,java不是, String内部是用char[]数组实现的,不过结尾不用\0。
C 对,字符串内容比较用equals方法。
D char存储的unicode码,不进可以存储ascII码,汉字也可以。

7、

代码优化也可分为局部优化、 循环优化和全局优化:
局部优化指的是在只有一个入口、 一个出口的基本程序块上进行的优化。
循环优化是对循环中的代码进行的优化,在一个程序运行时,相当多的一部分时间会花在循环上,因此,基于循环的优化非常重要。
全局优化
是在整个程序范围内进行的优化。

删除多余运算
使生成的目标代码减少而执行速度较快
也叫删除公共子表达式

循环优化
对循环中的代码段,可以进行代码外提、强度削弱和删除归纳变量等优化。
删除多余运算应该不是专门针对循环优化的。

8、

B是A的子类
private是私有的,只有类本身的调用,其他类(包括字类)是无法调用的。
DE 数据成员和函数成员默认是default访问权限,同一个包下的所有类都可以访问
类B不一定和类A同包,所以DE才错

9、

Java 标识符有如下命名规则:
由26个英文字母大小写,数字:0-9 符号:_ $ 组成
标识符应以字母、_ 、$开头。
标识符不能是关键字。
Java中严格区分大小写

10、

一个类可以有多个构造方法,多个构造方法通过不同参数列表进行重载