Java题目详解
来源:互联网 发布:oracle调用java http 编辑:程序博客网 时间:2024/05/22 00:46
1、求打印结果
int num = 0;for(int i=0;i<100;i++){ num=num++;}System.out.print(num);这一题考虑的是num++,num++ => num=num+1;其是它是一个有返回值的表达式,返回值为num自加前的值,java对其自加处理的流程为把num的值(非引用)拷贝到一个临时变量区,对num变量加1,接着返回临时变量区的值。对每个循环相当于这样处理int temp = num;num= num + 1;return num;这样就相当于每次都返回0;故结果为0;通过上面问题,我们可以通过哪些方式来保证并发安全的自增自减操作java默认的自增自检运算符是并发非安全的。1、使用synchronized代码块2、使用LOCK锁3、通过JDK提供的Atomiclnteger来直接保证。
2、经典的字符串比较
String s1 = "a1";String s2 = "a"+1;String s3 = "a"+"1";System.out.println(s1==s2); trueSystem.out.println(s1==s3); trueSystem.out.println(s1.equals(s2)); trueString s4 = "ab;String s5 = "b";String s6 = "a"+s5;System.out.println(s4 ==s6); false细看上一个也是字符串相加但是返回true,下面也是字符串相加,返回为false,这是为什么呢?我们知道 == 是比较两者是否相等,是否引用了同一个地址,equals却是比较两者值是否相同。前者都是true是因为:当两个字符串常量连接时(相加)得到的新字符串依然是字符串常量且保存在常量池中只有一份。后者不同因为:当字符串常量与 String 类型变量连接时得到的新字符串不再保存在常量池中,而是在堆中新建一个 String 对象来存放,很明显常量池中要求的存放的是常量,有 String 类型变量当然不能存在常量池中了。
3、两个链表组成一个递增的新的链表
这简单的写法就是使用java JDK Collections的使用: List<Integer> list1 = new LinkedList<>(); Collections.addAll(list1, 30, 41, 15, 12, 56, 80); System.out.print("list1:"); for (Integer integer : list1) { System.out.print(integer + " "); } System.out.println(); List<Integer> list2 = new LinkedList<>(); Collections.addAll(list2, 23, 56, 78, 23, 12, 33, 79, 90, 55); System.out.print("list2:"); for (Integer integer : list2) { System.out.print(integer + " "); } System.out.println(); list1.removeAll(list2); System.out.print("移除重复list1:"); for (Integer integer : list1) { System.out.print(integer + " "); } System.out.println(); System.out.print("新的顺序"); list1.addAll(list2); Collections.sort(list1); for (Integer integer : list1) { System.out.print(integer + " "); }
阅读全文
0 0
- Java题目详解
- Java题目面试题目.
- java题目
- java题目
- JAVA题目
- java 题目
- java题目
- Java题目
- java题目
- java题目
- java题目
- hibernate题目详解
- “22221111”题目详解
- c编程题目详解
- 面试题目详解
- [第八届蓝桥杯]-题目详解
- 取石子题目详解
- Java常见笔试面试题目深度剖析系列之:Java方法参数传递详解
- ORA-12560: TNS: 协议适配器错误
- 江苏淳客网络在第五届“创响江苏 赢在南京”创业大赛中获得一等奖!
- 生产者和消费者问题c++(操作系统)
- 收集一些工作中常用的经典SQL语句
- 使用Echarts过程中问题小结
- Java题目详解
- IOS开发中利用AudioToolbox播放系统声音
- playframework在intelij idea中的debug调试方法
- 如何通过adb 获取应用的版本号
- 22、Selenium + Python 实现 UI 自动化测试-操作日期时间控件
- 解决arcgis desktop 添加 arcgis server 提示无法连接问题
- WebAPI HelpPage出现Failed to generate the sample for media type 'application/x-www-form-urlencoded'. 错
- github上实用、常用的插件和库
- 虚拟机Linux(Centos)上用户密码忘记了怎么办?