爪哇基础题05
今天的正确率为60%,高手每天查缺补漏,我每天女娲补天,一个选项不会可能就要去听好多节网课,但是这种方式确实能多学很多,坚持下来一定收获满满。
1.为了将包ch4导入到当前程序,可以使用的语句是(A)
A import ch4.*;
B package ch4.*;
C ch4 import;
D ch4 package;
这题在于了解import和package的作用。
package(包):包就是文件夹,作用是对类进行分类管理。
在IDEA中可以直接创建包,New一个Package就行。假如我们用的不是IDEA,用的是记事本,该怎么创建包?
包的定义格式:
- 格式:package 包名; (多级包用.分开)
- 范例:package com.itheima;
所以package的作用是创建包,然后把类放进这个包中。如图所示,在IDEA中每个类最上方都有package语句
import就不用多说了,就是导包。
格式:import 包名;
2.java Thread中,run方法和start方法的区别,下面说法错误的是?(B)
A 通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。
B 他们都可以实现了多线程运行。
C run方法是thread的一个普通方法调用。
D 调用start方法后,一旦得到cpu时间片,就开始执行run()方法。
start()是启动线程的方法,线程对象执行start()后即会进入就绪状态,并不能运行,只有当处于就绪状态的线程抢到CPU资源的情况下,该线程才能运行。运行后执行的是该线程类中的run()中的内容,run()方法被称为线程体,run()方法结束,线程也终止。start()实现了多线程运行,此时无需等待run()方法执行完毕,即可继续执行下面的代码。所以run()方法并没有实现多线程。
run()方法知识Thread类中的一个普通方法,如果通过线程类直接调用run(),就是单纯的执行了run()中的内容,并没用多开启一个线程,程序中仍是主线程在运行。而且要等run()运行完毕后,才能继续执行下面的代码。
3.关于OutOfMemoryError,下面说法正确的是()?
A java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
B java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
C java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
D java.lang.OutOfMemoryError: nativeGetNewTLA这个异常只有在jRockit虚拟机时才会碰到
出现这个异常是因为应用程序没有足够的内存空间而挂了,就是经常说的内存溢出。
A选项提示的错误信息是指堆中的持久代内存满了,解决办法就是增加-XX:MaxPermSize这个参数的值
B选项的错误是创建的数组长度超过了最大限制,Java创建数组就限制了数组的最大长度为Integer.MAX_VALUE,因为数组下标是int类型,再大也不能超过最大值。
C选项中,heap space是堆的一部分,分为年老代和年轻代,java创建的对象会存放在这里,如果你创建一个对象,对象的内存超出了虚拟机剩余内存,虚拟机会利用垃圾回收机制回收内存,如果还是不行就会报这个错误。解决这个问题的最快方法就是增加-Xmx参数来增加堆的大小。
D选项nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息。这个异常只有在jRockit虚拟机时才会碰到。线程本地空间是多线程程序里面为了更有效的进行内存分配而建立的缓存。每一个线程都有一份自己的缓存,当这个线程要创建对象的时候,就在这上面分配。如果你有很多线程同时并发,又要创建大量的对象,可能会出现这个问题,这种情况下你可以调整一下-XXtlaSize这个参数。
#你的秋招进展怎么样了##我的2023新年愿望#我是一个转码的小白,平时会在牛客中做选择题,在做题中遇到不会的内容就会去找视频或者文章学习,以此不断积累知识。这个专栏主要是记录一些我通过做题所学到的基础知识,希望能对大家有帮助