牛客网错题集系列(三)
目录
1.关于Integer的一个问题
2.关于泛型的一道题
3.关于Integer类型超过128时的一道题
4.以下哪一个不是赋值符号?
5.关于try/catch/finally
6.关于for循环的执行顺序问题
7.下面代码的输出结果是什么?
8.多线程的run()和start()方法的区别
9.~的使用
10 关于Java内存分布的一道题
11不能用来修饰interface的有( )(仅限外部接口)
12.小的知识点,关于封装类和String的一个小细节
1.关于Integer的一个问题
设有下面两个赋值语句:
a = Integer.parseInt("1024");
b = Integer.valueOf("1024").intValue();
下述说法正确的是()
a是整数类型变量,b是整数类对象。
a是整数类对象,b是整数类型变量。
a和b都是整数类对象并且它们的值相等。
a和b都是整数类型变量并且它们的值相等。
parseInt是把一个String类型的变量转化为int的基础数据类型的,valueOf是把一个String类型的值转换成一个Integer类型的值,intValue将返回一个int的基础数据类型的值。
2.关于泛型的一道题
以下说法错误的是()
虚拟机中没有泛型,只有普通类和普通方法
所有泛型类的类型参数在编译时都会被擦除
创建泛型对象时请指明类型,让编译器尽早的做参数检查
泛型的类型擦除机制意味着不能在运行时动态获取List<T>中T的实际类型
错误原因 可以通过反射机制
3.关于Integer类型超过128时的一道题
以下代码执行的结果显示是多少( )?
true,false,true
false,true,false
true,true,false
false,false,true
如果Integer类型的值在-128到127之间,那么就会创建相应的缓存,而超出这个范围则新建一个对象。
如果Integer类型的值大于128,那么就会创建一个新的对象。
4.以下哪一个不是赋值符号?
+=
<<=
<<<=
>>>=
第四个是右移一位然后赋值
5.关于try/catch/finally
在try的括号里面有return一个值,那在哪里执行finally里的代码?
不执行finally代码
return前执行
return后执行
6.关于for循环的执行顺序问题
public class Test
{static boolean foo(char c){System.out.print(c);return true;}public static void main( String[] argv ){int i = 0;for ( foo('A'); foo('B') && (i < 2); foo('C')){i++ ;foo('D');}}
}
What is the result?
ABDCBDCB
ABCDABCD
Compilation fails.
An exception is thrown at runtime.
for(条件一;条件二;条件三){
执行语句
}
在这个for循环中的执行顺序将是 条件一 →条件二(检查是否满足条件二来判断是否继续执行下去)→ 执行语句 →条件三
7.下面代码的输出结果是什么?
public class ZeroTest {public static void main(String[] args) {try{int i = 100 / 0;System.out.print(i);}catch(Exception e){System.out.print(1);throw new RuntimeException();}finally{System.out.print(2);}System.out.print(3);}}
3
123
1
12
关于这道题,我之前也确实看了关于异常的一些知识点,可还是在这道题上出错了。
100/0时会抛出异常这个时候在try中的代码块就不在执行了。开始执行catch的代码块,但是在catch中又抛出了一个异常,那么程序就会在这个地方停止执行(除了执行finally中的代码以外)
8.多线程的run()和start()方法的区别
以下JAVA程序的输出是什么()
public class HelloSogou{public static synchronized void main(String[] a){Thread t=new Thread(){public void run(){Sogou();}};t.run();System.out.print("Hello");}static synchronized void Sogou(){System.out.print("Sogou");}
}
HelloSogou
SogouHello
Hello
结果不确定
就这道题而言,仅调用run()方法而没有调用start()方法时,run()方法只是一个普通的方法调用,并没有开启一个线程。
如果将run()方法改成start()的话,问题就会变复杂许多了。
方法Sougou()和main()持有的都是HelloSougou.class锁,所以方法是同步执行的。当在main()方法里面开启一个子线程进入就绪状态准备调用时,需要获取到HelloSougou.class锁,但是这个时候这个锁还有main()方法进行控制,只有等main()方法执行完毕后我们才可以让Sougou()方法获取到HelloSougou.class锁进行执行,这个时候输出的顺序就是HelloSougou。
9.~的使用
What results from the following code fragment?
1 2 3 |
|
~n = -n-1
具体原理就是
在计算机中,存储的都是数字的补码。对n求补码,然后将n的补码按位取反再减一求出来反码。然后再把反码按位取反求出来的就是~n的原码。
10 关于Java内存分布的一道题
下列Java代码中的变量a、b、c分别在内存的____存储区存放。
1 2 3 4 5 6 7 |
|
堆区、栈区、栈区
这道题后面两个都很好说b,c作为引用放在了栈区,但是"bb","cc"和"aa"都是在静态区的。
11不能用来修饰interface的有( )(仅限外部接口)
private
public
protected
static
接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的abstract可以省略),所以抽象类中的抽象方法不能用的访问修饰符这里也不能用。而且protected访问修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。
12.小的知识点,关于封装类和String的一个小细节
Integer a = 9;Integer b = 9;System.out.println(a==b);
Integer a = new Integer(9);Integer b = new Integer(9);System.out.println(a==b);
输出的结果一个是true,一个是false。原因是当我们使用new的时候,我们会在堆区创建一个新的对象。==比较的是两个对象的地址是否相同。所以会是false。但是上方的代码考虑到Integer的缓存机制,a和b指向的都是同一块内存区域,所以是true。
牛客网错题集系列(三)相关推荐
- 牛客网错题集(2021-08-31)
牛客错题集2 暑假回来的一次刷题,结果不是很理想. 1.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 2.给定代码: 3.第三行将输出什么? 4.关于下面的程序,说法正 ...
- 牛客网错题集---机器学习基础篇
题目一 支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification ...
- 牛客网错题整理--C++篇1
牛客网错题整理--C++篇1 1.下列程序的运行结果是PP 10003,请为横线处选择合适的程序(): #include<stdio.h>#include<string.h>s ...
- 牛客网错题集合之字符串(一)
[不定项选择题] 已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a.b.c.d.e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e ...
- 牛客网错题总结(2)
1.假设在n进制下,下面的等式成立,n值是()240*12=2880 A.19 B.18 C.17 D.16 E.15 F.以上都对 分析: 假设为n进值则 [2*(n^2 )+4*(n^1)+0] ...
- 牛客网错题——Day11
存入内存字节 Java采用的是Uincode编码,两个字节表示一个字符. 下列代码输出的是 public class ClassTest{String str = new String("h ...
- 牛客网错题总结(6)
我自己运营的一个公众号-----IT资源君 我每天都会分享java全套教程,python爬虫,python数据分析,各类IT资源等1000G资源,大家可以去免费无套路领取 1.Servlet的生命周期 ...
- 【牛客网刷题】中秋节前开启java专项练习错题总结第一天
[牛客网刷题]中秋节前开启java专项练习错题总结第一天 概述 写在前面 错题分析 值得记录的错题 总结 写在最后 概述 还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累.对于这样一个特殊 ...
- 牛客网-SQL题库笔记
牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...
最新文章
- git 设置有效目录_如何有效使用Git
- 究竟什么能使得生活变得圆满?
- OSPF的LSA类型 ——连载五自治系统外部的LSA
- strstr和strcchr查找字符串和区别
- CentOS/Linux 解决 SSH 连接慢
- 解决“计划任务不存在的问题”方法
- linux7改网卡名eth,CentOS7修改网卡名ensXX称为eth0
- MySQL数据库课程实验报告_创建数据库并插入数据
- 刘谦春晚再掀魔术热 网上木马趁火打劫
- java基础知识查漏 三
- python编程入门指南-最简单的Python编程入门指南,没基础也能快速入门Python编程...
- Linux系统 nginx伪静态配置及nginx重启
- Effective_STL 学习笔记(四十五) 注意 count、find、binary_search、lower_bound、upper_bound 和 equal_range 的区别...
- GsonFormatPlus转变回GsonFormat办法
- 天勤数据结构代码——双链表
- macos 设置内外网同时访问
- 微信抽奖网络服务器错误,微信抽奖账号异常原因?
- 如何恢复磁盘中被删除的数据
- 塑形管理小程序开发(二)-原型图绘制
- (转载) Android RecyclerView 使用完全解析 体验艺术般的控件