2018大厂校招Java面试精华:高频题与内存优化详解

需积分: 9 2 下载量 26 浏览量 更新于2024-07-18 收藏 181KB DOC 举报
在Java面试中,常会被考察到一些基础且重要的知识点。本节内容涵盖了以下几个关键点: 1. **数组与String的长度获取**: - Java中的数组并没有`length()`方法,而是通过`length`属性来获取数组的长度。例如,`int[] arr = new int[5];`,`arr.length`将返回5。 - 对于String对象,Java提供了`length()`方法,用于获取字符串中字符的数量。例如,`String str = "Hello";`,`str.length()`将返回5,因为有5个字符。 2. **String连接优化**: - 在Java中,连续的字符串连接操作(如`"a"+"b"+"c"+"d"`)在编译阶段会被优化,避免在运行时多次创建临时对象。实际上,这会被编译成一个单独的对象,如`"abcd"`,因此整个过程只会创建一个String对象。理解这种优化有助于你更好地分析代码性能。 3. **finally块的执行顺序**: - 当在`try`块内使用`return`语句时,通常认为`finally`块会先执行,因为`return`会导致方法立即终止。然而,这里提供了一个示例,`public static int test()`的方法: ```java static int test() { int x = 1; try { return x; } finally { ++x; } } ``` 当调用`test()`并打印结果时,输出为1。这表明在`return`语句执行后,`finally`块中的`++x`操作并未执行,因为`return`已经使方法结束,而`finally`块只在方法结束前(无论正常还是异常退出)执行。这是Java的特性,确保了finally块在特定情况下会被执行,即使有`return`语句。 这些知识点涵盖了Java语言的基本语法、字符串操作优化以及异常处理中的`finally`块执行规则,这些都是面试中常见的问题点。理解并掌握这些细节将有助于你在实际面试中表现出扎实的基础和对语言机制的深入理解。