1、JDK相关面试问题
什么是java虚拟机?java为什么被称作与平台无关的语言?
java虚拟机是可以执行关于java字节码的虚拟机。
因为java文件运行时是运行在java编译器上的,而与平台无关,程序员不用在不同的平台上开发单独的开发或编译程序。
2、JDK和JRE的区别
JDK: 是java开发者工具包。
JRE:是java运行时环境。
3、一个java源文件是否可以包含多个类(不是内不类)?有什么限制?
可以包含多个类,但是只能有一个public类,而且类名必须跟文件名相同。
4、java有没有goto?
有,是保留关键字。
5、&和&&的区别?
&和&&和都可以用作逻辑与的运算符,表示逻辑与(and)。当运算符两边表达式结果都为true时,整个运算才为true,否则只要有有一方为false,则整个运算为false。
&&还具有短路的功能,即如果第一个位false时,则不再继续计算第二个表达式。
&还可以用作位运算符,当&操作符两边的表达式部位boolean类型的时候,&表示按位与操作。我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
6、switch能否作用在byte、long、string上?
可以作用在byte和string上,不可以作用在long上。
(原因:在switch(expr1)中。expr1只能是一个整数的表达式或者枚举常量(更大字体),整数表达式只能用int基本数据类型或者intger包装类型,由于byte、short、char都可以转换成int数据类型,string是在jdk7之后可以作用在switch上的)
7、char型变量是否可以存储一个中文汉字?
可以,因为char是用来存储Unicode编码的字符,Unicode编码字符包含了中文字符,其中一个中文汉字占用两个字节。