牛客刷题错题(一)——Java基础

1. 在java中,无论在何处调用,使用静态属性必须以类名做前缀

 正确答案: 错误   

分析:1. 如果是本类使用,可以直接就用静态变量名。

          2. 如果是其他类使用,可以使用类名来调用,也可以创建一个实例对象来调用。

          3. 如果静态变量所在的类是静态类,那么不管在本类里或者在其他外部类,都可以直接使用静态变量名。

 

 

2. 下面有关JVM内存,说法错误的是?

A. 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的

B. 虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的

​C. 方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的


D. 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的

 正确答案: C   你的答案: D (错误)

分析:

大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) ,   VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack  ( 本地方法栈 ),其中Method Area 和  Heap 是线程共享的  ,VM Stack,Native Method Stack  和Program Counter Register  是非线程共享的。为什么分为 线程共享和非线程共享的呢?请继续往下看。

首先我们熟悉一下一个一般性的 Java 程序的工作过程。一个 Java 源程序文件,会被编译为字节码文件(以 class 为扩展名),每个java程序都需要运行在自己的JVM上,然后告知 JVM 程序的运行入口,再被 JVM 通过字节码解释器加载运行。那么程序开始运行后,都是如何涉及到各内存区域的呢?

概括地说来,JVM初始运行的时候都会分配好 Method Area(方法区) 和Heap(堆) ,而JVM 每遇到一个线程,就为其分配一个 Program Counter Register(程序计数器) ,   VM Stack(虚拟机栈)和Native Method Stack  (本地方法栈), 当线程终止时,三者(虚拟机栈,本地方法栈和程序计数器)所占用的内存空间也会被释放掉。这也是为什么我把内存区域分为线程共享和非线程共享的原因,非线程共享的那三个区域的生命周期与所属线程相同,而线程共享的区域与JAVA程序运行的生命周期相同,所以这也是系统垃圾回收的场所只发生在线程共享的区域(实际上对大部分虚拟机来说知发生在Heap上)的原因。

 

3. 以下代码将打印出

1

2

3

4

 public static void main (String[] args) { 

    String classFile = "com.jd.". replaceAll(".""/") + "MyClass.class";

    System.out.println(classFile);

}

A. com. jd     B. com/jd/MyClass.class     C. ///MyClass.class     D. com.jd.MyClass
 

 正确答案: C   你的答案: B (错误)

分析: 由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么久要写成"\\."。

 

4. 下列关于while循环、do-while循环和for循环说法错误的是

A. while循环先执行条件判断,do-while循环执行循环体    

B. do-while循环结束的条件是关键字while后的条件表达式成立

C. for循环结构中的3个表达式缺一不可                    

D. while循环能够实现的操作,for循环也能实现
 

 正确答案: B C   你的答案: C (错误)

分析:

A.while只有在满足条件时执行  而do-while会先执行一次 再看条件是否满足  满足再次循环 不满足跳出

B.也就错了 应该是    do-while循环结束的条件是关键字while后的条件表达式不成立

C. 三个都为空也是可以的 最简洁形式:for(;;;)

D. 我们使用while 就是为了他的循环次数的不一定的 而for循环一般限定了循环次数


5. 下面有关 JAVA 异常类的描述,说法正确的有()

A. 异常的继承结构:基类为 Throwable,Error 和 Exception 。实现 Throwable, RuntimeExcepti

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值