Java基础面试题解析(中)

9. String s = new String("xyz");创建了几个对象?【重点】

考核点:String类型的内存原理。

答:

如果String常量池中,已经创建"xyz",则不会继续创建,此时只创建了一个对象new String("xyz"),此时为一个对象;

如果String常量池中,没有创建"xyz",则会创建两个对象,一个对象的值是"xyz",一个对象new String("xyz"),此时为二个对象。

10. String a = "abc";创建了几个对象?【重点】

考核点:String类型的内存原理。

答:

0或1个,如果字符串常量池有"abc",创建0个,如果没有就创建1个。

11. char型变量中能不能存贮一个中文汉字?为什么?【重点】

考核点:基本类型的占用范围。

答:

char型变量中能存储一个中文汉字。原因如下:

在Java中,char类型采用的是Unicode编码,每个Unicode编码是16位,每个字节占8位,所以char占两个字节,而汉字占用两个字节;

Unicode编码字符集中包含了汉字;

如果某个汉字没有包含在Unicode字符集中,那么是不能被char型变量存储的。

12. 在Java中,如何跳出当前的多重嵌套循环?【了解】

考核点:break特殊用法。

答:

public void test {  

    A:for (int j = 0; j < 10; j++) {  

        for (int i = 1; i < 10; i++) {  

            if (i == 5) break A;  

        }  

    }

}

13. &&和&,||和|的区别?【重点】

考核点:短路机制、按位比较。

答:

&&前的判断条件为false,就不进行判断&&之后的语句,结果直接为false;

&如果比较的是两个二进制的值,按照按位比较。

||前的判断条件为true,就不进行判断||之后的语句,结果直接为true;

|如果比较的是两个二进制的值,按照按位比较。

14. Math.round(11.5)的结果?Math.round(-11.5)的结果?【了解】

考核点:数学类常用方法。

答:

Math.round(11.5) = 12;

Math.round(-11.5) = -11;

Math.round()方法:四舍五入。

15. final关键字的作用?【重点】

考核点:final关键字。

答:

被final修饰的类不可以被继承;

被final修饰的方法不可以被重写;

被final修饰的变量不可以被改变;

如果修饰引用,那么表示引用不可变,引用指向的内容可变;

被final修饰的方法,JVM会尝试将其内联,以提高运行效率;

被final修饰的常量,在编译阶段会存入常量池中。

16. 内存泄漏和内存溢出?【掌握】

考核点:内存原理。

答:

内存泄漏(Memory Leak):是指应用程序在申请内存后,无法释放已经申请的内存空间,一次内存泄漏危害可以忽略,但如果任其发展最终会导致内存溢出,如读取文件后流要进行及时的关闭以及对数据库连接的释放。

​内存溢出(Out Of Memory):是指应用程序在申请内存时,没有足够的内存空间供其使用。如我们在项目中对于大批量数据的导入,容易产生内存溢出,一般采用分批量提交的方式。

你可能感兴趣的:(Java,java,开发语言,面试)