摘要: 测试代码如下: 程序执行分析: 当程序执行到第20行时会产生数组下标越界异常,这时直接跳到catch语句块,此时x==10,并没有return。 最终执行finally语句块此时x==11,并返回x,最终输出结果为11。 阅读全文
posted @ 2018-07-27 11:34 Kingram 阅读(3654) 评论(0) 推荐(1) 编辑
摘要: 对于如下代码: 第一条语句打印的结果为false,第二条语句打印的结果为true, 说明javac编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期再去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。 题目中的代码被编译器在编译时优化后,相当于直接定义 阅读全文
posted @ 2018-07-27 10:48 Kingram 阅读(3538) 评论(7) 推荐(0) 编辑
摘要: 两个或一个都有可能 。 ”xyz”对应一个对象,这个对象放在字符串常量池,常量”xyz”不管出现多少遍,都是常量池中的那一个。 new String每写一遍,就创建一个新的对象,它使用常量”xyz”对象的内容来创建出一个新String对象。 如果常量池中已经存在’xyz’,那么这里就不会创建”xyz 阅读全文
posted @ 2018-07-27 10:39 Kingram 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 因为非static方法是对象级别的,必须创建一个对象后,才能调用此方法,而static方法调用时不需要创建对象,可以直接调用。 也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,因为没有任何实例对象,所以无法调用非static方法 阅读全文
posted @ 2018-07-27 10:05 Kingram 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 使用final关键字修饰一个引用类型变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。 测试代码如下: 阅读全文
posted @ 2018-07-27 09:28 Kingram 阅读(2858) 评论(0) 推荐(0) 编辑