java面试基础题
java面试基础题
今天在网上看到一个大佬整理的java面试题,给大家分享一下,出处:https://www.cnblogs.com/peke/p/7894685.html
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
答:可以包括很多类,但是public修饰的类只能有一个且必须和java源文件名相同
Java有没有goto?
答:没有,在我知道的只有C语言中有
说说&和&&的区别。
答:逻辑与(&)和短路与(&&)都可以判断语句的逻辑关系,但是&&在确定表达式左边的式子已经能够决定
整个语句的最终结果后,就不会执行右边的式子,效率更佳;而&不可以
在JAVA中如何跳出当前的多重嵌套循环?
答:定义一个标记,如图:
switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
答:可以作用在char、byte、short、int以及它们的包装类对象上,String(jdk7之后)也可以
short s= 1; s= s + 1;有什么错? short s = 1; s += 1;有什么错?
答:有错,s=1中的1是short类型,占2个字节,而后面的数字1是int类型,占4个字节,根据运算规则:当多个不同类型的数据混合运算时,先转换成容量最大的那种类型再做运算,所以 s + 1的数据类型是int,而s是short,故需要强转,即:s=(short) (s + 1)。后面那个没错,因为+=运算符会自动进行类型转换,但是会损失精度
char型变量中能不能存贮一个中文汉字?为什么?
答:可以,java使用的是unicode编码,2个字节表示一个字符,无论是汉字、数字还是字母都是两个字节,所以可以储存中文
用最有效率的方法算出2乘以8等於几?
答:位运算,8的二进制:00001000,乘法需要向左移位,即:00010000=16
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
答:引用不能变
静态变量和实例变量的区别?
答:在声明上,静态变量需要用static修饰,而实例变量不用;
在调用上,静态变量是通过类来访问,而实例变量只能通过对象来进行访问
在储存位置上,static修饰的静态变量保存在方法区内存中,随着类加载一起进行;而实例变量储存在堆内存中