三题基础题,来测测基础吧
来源:互联网 发布:崖山之后无中国 知乎 编辑:程序博客网 时间:2024/05/17 21:51
今天给大家带来的是一些基础题目,来测测你基础吧,该题在论坛,贴吧,面试等等都有着不菲的出场率。
第一题:
String a = "abc";
String b ="abc";
String c = new String("abc");
String d = b;
System.out.println(a==b);
System.out.println(a==d);
System.out.println(a==c);
如果你的答案是 true ,true, false ,那么恭喜你,你的答案是对的.这道题主要考的是对==符号的理解和有没有new 的理解,分析:第一个true是a和b都是abc,在内存中a一开始创建了abc,当b开始创建的时候会在字符串常量次中,先查找有没有相同abc这个字符串,如果有就指向,所以a和b的内存地址值是一样的,因此是true,第二关true,d的值是赋值成b,b把自己的内存地址给了d,而b的内存地址指向的是a,所以d也是true,最后一个false,c在创建的时候不会像b去字符串常量池中寻找abc这个字符串,因为是“new ”新建!也就是在内存中开辟一个空间装这个字符串,因此内存地址是不动的
第二题:
Integer a = 1000;
Integer b = 1000;
int c = 100;
int d = 100;
System.out.println(a==b);
System.out.println(c==d);
如果你的答案是:flase,true,那么你又答对了,说明你对内存这块引进有着不错的分析能力,分析:第一个false,在Integer类中有一个方法Integer.valueOf该方法的取值的-128~128,在赋值的时候如果超这出这个数据就会返回一个新建的对象所以内存地址不一样.有兴趣的朋友可以去看看我写自动装箱拆箱机制,了解原理才是大牛该有的技能,true:由于时间关系,这个就不解释了,如果有兴趣可以去看看我写的内存中有讲。
第三题:
public void show(String name){
new Thread() {
public void run() {
try
{
Thread.sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println(name);
}
}.start();
}
}
这题主题靠的是对内部类的声明周期和final的使用,当内部类访问局部变量的时候,需要在局部变量前加final修饰符,不然编译器就会报错。通常我们也是这么干的。好的,第二个问题来了,为什么要加final修饰符?
分析:为什么要加final关键字。首先内部类的生命周期是成员级别的,而局部变量的生命周期在主函类。也就是说会出现这样一种情况,当show方法执行,new 的线程运行,新线程里面会睡一秒。主线程会继续执行,show执行完毕,name属性生命周期结束。1秒之后,Syetem.out.printh(name)执行。然而此时name引进被释放了,不在内存中了。为了避免这种错误,必须使用final关键字修饰。当被修饰的时候声明周期就会非常长。
小伙伴们,如果你全部答对说明你的基础还是可以的,没有答对的小伙伴们再接再厉~~由于时间关系就不和大家谈了。
- 三题基础题,来测测基础吧
- 分享一道java基础题,测测你是不是基础扎实
- 经典算法51(来测测你的编程基础)
- 经典算法51(来测测你的编程基础)
- 经典算法51(来测测你的编程基础)
- 经典算法51(来测测你的编程基础)
- ACM基础题(三)
- 练习基础题《三》
- 计算机基础精选题(三)
- 4个小题测测你的java基础如何
- 快来测测你JavaScript的功力吧
- c++基础五个题(三)
- 二叉树基础题(三)
- 编程基础刷题(三)
- 基础三
- 跟老紫竹学Java - JAVA自测题栏目正式上线,来测测你的Java功力到底如何!
- 跟老紫竹学Java - JAVA自测题栏目正式上线,来测测你的Java功力到底如何!
- C# 基础从头来
- 如何将数据库引擎配置为侦听多个 TCP 端口
- Jimoshi_Struts2 框架学习(三)--valueStack和ognl、struts2验证、struts2文件上传和下载
- Docker
- 新手的MFC对话框背景图添加与自适应缩放
- 虚拟机配置及问题的解决
- 三题基础题,来测测基础吧
- bzoj4552【TJOI2016&HEOI2016】排序
- 为数据库引擎访问配置 Windows 防火墙
- CGLib之Enhancer
- 【WebService框架-CXF】——CXF对Map等无法自动转化的类型的处理
- Android学习网站
- iOS---Objective-C中@class与#import的区别
- uva1625 color length
- 关于iframe自适应高度的方法总结