目录

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

int i = 5;

int j = 10;

System.out.println(i + ~j);

~n = -n-1

具体原理就是

在计算机中,存储的都是数字的补码。对n求补码,然后将n的补码按位取反再减一求出来反码。然后再把反码按位取反求出来的就是~n的原码。

10 关于Java内存分布的一道题

下列Java代码中的变量a、b、c分别在内存的____存储区存放。

1

2

3

4

5

6

7

class A {

    private String a = “aa”;

    public boolean methodB() {

        String b = “bb”;

        final String c = “cc”;

    }

}

堆区、栈区、栈区

这道题后面两个都很好说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。

牛客网错题集系列(三)相关推荐

  1. 牛客网错题集(2021-08-31)

    牛客错题集2 暑假回来的一次刷题,结果不是很理想. 1.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 2.给定代码: 3.第三行将输出什么? 4.关于下面的程序,说法正 ...

  2. 牛客网错题集---机器学习基础篇

    题目一 支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification ...

  3. 牛客网错题整理--C++篇1

    牛客网错题整理--C++篇1 1.下列程序的运行结果是PP 10003,请为横线处选择合适的程序(): #include<stdio.h>#include<string.h>s ...

  4. 牛客网错题集合之字符串(一)

    [不定项选择题] 已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a.b.c.d.e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e ...

  5. 牛客网错题总结(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] ...

  6. 牛客网错题——Day11

    存入内存字节 Java采用的是Uincode编码,两个字节表示一个字符. 下列代码输出的是 public class ClassTest{String str = new String("h ...

  7. 牛客网错题总结(6)

    我自己运营的一个公众号-----IT资源君 我每天都会分享java全套教程,python爬虫,python数据分析,各类IT资源等1000G资源,大家可以去免费无套路领取 1.Servlet的生命周期 ...

  8. 【牛客网刷题】中秋节前开启java专项练习错题总结第一天

    [牛客网刷题]中秋节前开启java专项练习错题总结第一天 概述 写在前面 错题分析 值得记录的错题 总结 写在最后 概述 还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累.对于这样一个特殊 ...

  9. 牛客网-SQL题库笔记

    牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...

最新文章

  1. git 设置有效目录_如何有效使用Git
  2. 究竟什么能使得生活变得圆满?
  3. OSPF的LSA类型 ——连载五自治系统外部的LSA
  4. strstr和strcchr查找字符串和区别
  5. CentOS/Linux 解决 SSH 连接慢
  6. 解决“计划任务不存在的问题”方法
  7. linux7改网卡名eth,CentOS7修改网卡名ensXX称为eth0
  8. MySQL数据库课程实验报告_创建数据库并插入数据
  9. 刘谦春晚再掀魔术热 网上木马趁火打劫
  10. java基础知识查漏 三
  11. python编程入门指南-最简单的Python编程入门指南,没基础也能快速入门Python编程...
  12. Linux系统 nginx伪静态配置及nginx重启
  13. Effective_STL 学习笔记(四十五) 注意 count、find、binary_search、lower_bound、upper_bound 和 equal_range 的区别...
  14. GsonFormatPlus转变回GsonFormat办法
  15. 天勤数据结构代码——双链表
  16. macos 设置内外网同时访问
  17. 微信抽奖网络服务器错误,微信抽奖账号异常原因?
  18. 如何恢复磁盘中被删除的数据
  19. 塑形管理小程序开发(二)-原型图绘制
  20. (转载) Android RecyclerView 使用完全解析 体验艺术般的控件

热门文章

  1. 未封装的扩展程序是什么意思_网线上面的标识代表什么意思?网线的九大扩展应用...
  2. Ubuntu18的bug导致系统启动后黑屏的问题
  3. AUTOCAD二次开发-----删除一个图层里面的所有对象
  4. 启发式算法,元启发式算法,超启发式算法
  5. AHB协议(2/2)
  6. 从深度学习到LSTM
  7. 详解GloVe词向量模型
  8. Scrapy爬虫爬取电影天堂
  9. Seq2Seq模型及Attention机制
  10. rasterio实用教程(4)——坐标系转换