java日常练习题,每天进步一点点(1)

目录
  • 1、HashSet子类依靠()方法区分重复元素。
  • 2、下列哪个类的声明是正确的?
  • 3、下列关于包(package)的描述,正确的是()
  • 4、以下代码执行后输出结果为( )
  • 5、Given the following code:
  • 6、下列叙述中,错误的是( )
  • 7、在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )
  • 8、在Java中,关于HashMap类的描述,以下正确的是 ()
  • 9、以下各类中哪几个是线程安全的?( )
  • 10、关于Java中的ClassLoader下面的哪些描述是错误的:( )
    • 答案汇总:
  • 总结

承蒙各位厚爱,希望各位每天都能进步一点点!(鼠标选中空白处查看答案)

1、HashSet子类依靠()方法区分重复元素。

正确答案: C

toString(),equals()

clone(),equals()

hashCode(),equals()

getClass(),clone()

题解:
HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。

2、下列哪个类的声明是正确的?

正确答案: D

abstract final class HI{}

abstract private move(){}

protected private number;

public abstract class Car{}

题解:
A选项,final是最终类,不能被继承;abstrct类是抽象类,只能被继承,两者冲突。
B选项,private修饰符定义的属性及方法不能被子类实现,而抽象类的子类必须实现所有的抽象方法。两者冲突。
C选项,修饰符重复,而且没有定义数据类型。
D选项,正确。

3、下列关于包(package)的描述,正确的是()

正确答案: D

包(package)是Java中描述操作系统对多个源代码文件组织的一种方式。

import语句将所对应的Java源文件拷贝到此处执行。

包(package)是Eclipse组织Java项目特有的一种方式。

定义在同一个包(package)内的类可以不经过import而直接相互使用。

题解:
A、为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java中的包一般均包含相关的类,java是跨平台的,所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统。A错
B、import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件,编译的时候要去读取这个外部文件。B错
C、Java提供的包机制与IDE没有关系。C错
D、定义在同一个包(package)内的类可以不经过import而直接相互使用。

4、以下代码执行后输出结果为( )

public class Test
{
    public static Test t1 = new Test();
    {
         System.out.println("blockA");
    }
    static
    {
        System.out.println("blockB");
    }
    public static void main(String[] args)
    {
        Test t2 = new Test();
    }
 }

正确答案: A

blockAblockBblockA

blockAblockAblockB

blockBblockBblockA

blockBblockAblockB

题解:
静态块:用static申明,JVM加载类时执行,仅执行一次
构造块:类中直接用{}定义,每一次创建对象时执行
执行顺序优先级:静态块>main()>构造块>构造方法
静态块按照申明顺序执行,先执行Test t1 = new Test();
所以先输出blockA,然后执行静态块,输出blockB,最后执行main
方法中的Test t2 = new Test();输出blockA。

5、Given the following code:

public class Test {
    private static int j = 0;

    private static Boolean methodB(int k) {
        j += k;
        return true;
    }

    public static void methodA(int i) {
        boolean b;
        b = i < 10 | methodB(4);
        b = i < 10 || methodB(8);

    }

    public static void main(String args[]) {
        methodA(0);
        System.out.println(j);
    }
}

正确答案: B

The program prints”0”

The program prints”4”

The program prints”8”

The program prints”12”

The code does not complete.

题解:
选 B
在main函数中先调用methodA(0)
在methodA中,第二行
b = i < 10 | methodB(4); //中间为与计算符,执行完methodB(4)后,j = 4
methodA中,第三行
b = i < 10 || methodB(8);//中间为或计算符,因为i < 10 已成立,不需要后续计算
所以最后结果输出为4

6、下列叙述中,错误的是( )

正确答案: B

File类能够存储文件属性

File类能够读写文件

File类能够建立文件

File类能够获取文件目录信息

题解:
File类能操作文件本身,但不能对文件内容进行修改
能够读写文件的是数据流(OutputStream和InputStream)

7、在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )

正确答案: B

正确

错误

题解:
方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放。
JVM 内存可简单分为三个区:
1、堆区(heap):用于存放所有对象,是线程共享的(注:数组也属于对象)
2、栈区(stack):用于存放基本数据类型的数据和对象的引用,是线程私有的(分为:虚拟机栈和本地方法栈)
3、方法区(method):用于存放类信息、常量、静态变量、编译后的字节码等,是线程共享的(也被称为非堆,即 None-Heap)
Java 的垃圾回收器(GC)主要针对堆区

8、在Java中,关于HashMap类的描述,以下正确的是 ()

正确答案: A C D 你

HashMap使用键/值得形式保存数据

HashMap 能够保证其中元素的顺序

HashMap允许将null用作键

HashMap允许将null用作值

题解:
HashMap 不按插入顺序排序,按照哈希值排序。所以无序。
但是不增删改键的情况下,输出是按照一定顺序不变的。
hashMap 允许空键值,hashTable 则不允许。

9、以下各类中哪几个是线程安全的?( )

正确答案: B C D

ArrayList

Vector

Hashtable

Stack

题解:
线程同步:喂,SHE
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)

10、关于Java中的ClassLoader下面的哪些描述是错误的:( )

正确答案: B D F

A:默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, System

B:一般的情况不同ClassLoader装载的类是不相同的,但接口类例外,对于同一接口所有类装载器装载所获得的类是相同的

C:类装载器需要保证类装载过程的线程安全

D:ClassLoader的loadClass在装载一个类时,如果该类不存在它将返回null

E:ClassLoader的父子结构中,默认装载采用了父优先

F:所有ClassLoader装载的类都来自CLASSPATH环境指定的路径

题解:
A.Java系统提供3种类加载器:启动类加载器(Bootstrap ClassLoader) 扩展类加载器(Extension ClassLoader) 应用程序类加载器(Application ClassLoader). A正确
B.《深入理解Java虚拟机》P228:对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那么这两个类必定不相等。接口类是一种特殊类,因此对于同一接口不同的类装载器装载所获得的类是不相同的。B错误
C.类只需加载一次就行,因此要保证类加载过程线程安全,防止类加载多次。C正确
D. Java程序的类加载器采用双亲委派模型,实现双亲委派的代码集中在java.lang.ClassLoader的loadClass()方法中,此方法实现的大致逻辑是:先检查是否已经被加载,若没有加载则调用父类加载器的loadClass()方法,若父类加载器为空则默认使用启动类加载器作为父类加载器。如果父类加载失败,抛出ClassNotFoundException异常。D错误
E.双亲委派模型的工作过程:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己去加载。E正确
F.应用程序类加载器(Application ClassLoader)负责加载用户类路径(ClassPath)上所指定的类库,不是所有的ClassLoader都加载此路径。F错误

答案汇总:

1、正确答案: C

2、正确答案: D

3、正确答案: D

4、正确答案: A

5、正确答案: B

6、正确答案: B

7、正确答案: B

8、正确答案: A C D

9、正确答案: B C D

10、正确答案: B D F

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java日常练习题,每天进步一点点

    目录 1.类 ABC 定义如下: 2.后端获取数据,向前端输出过程中,以下描述正确的是 3.在异常处理中,以下描述不正确的有 4.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( ) 5.下面的程序将来打印什么?() 6.执行以下程序后的输出结果是() 7.java语言的下面几种数组复制方法中,哪个效率最高? 8.有关会话跟踪技术描述正确的是() 9.关于Java内存区域下列说法不正确的有哪些 10.下面的Java赋值语句哪些是有

  • Java日常练习题,每天进步一点点(2)

    目录 1.现有如下代码段: 2.对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理. 3.多重继承的概念在Java中实现是通过如下哪些?() 4.关于 Socket 通信编程,以下描述正确的是:( ) 5.以下哪个命令用于查看tar(backup.tar)文件的内容而不提取它?() 6.下列哪个选项是Java调试器?如果编译器返回程序代码的错误,可以用它对程序进行调试. 7.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果. 8.在 myjsp.jsp 中

  • Java日常练习题,每天进步一点点(3)

    目录 1.以下不属于构造方法特征的是() 2.下面有关java classloader说法错误的是? 3.一个文件中的字符要写到另一个文件中,首先需要( ). 4.假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]. 执行下面的方法numQuest(),最终的输出结果是什么? 5.以下声明合法的是 6.以下代码段执行后的输出结果为 7.给定includel.isp文件代码片段,如下: 8.String与StringBuffer的区别. 9

  • Java日常练习题,每天进步一点点(5)

    目录 1.下列关于Java类中方法的定义,正确的是() 2.Java Application 中的主类需包含main方法,以下哪项是main方法的正确形参?( ) 3.下面有关java的一些细节问题,描述错误的是? 4.以下代码执行后输出结果为( ) 5.下面哪个Set类是排序的? 6.下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换: 7.给出下面的代码段: 8.下面描述属于java虚拟机功能的是? 9.byte b1=1,b2=2,b3,b6,b8; 10.下面选项中

  • Java日常练习题,每天进步一点点(6)

    目录 1.以下二维数组声明合法的是( ) 2. 3.使用mvc模式设计的web应用程序具有以下优点,除了? 4.访问权限控制从最大权限到最小权限依次为:public. 包访问权限.protected和private .( ) 5.下面对静态数据成员的描述中,正确的是 6.有如下一段代码,请选择其运行结果() 7.下列关于JAVA多线程的叙述正确的是() 8.下列可作为java语言标识符的是() 9.下面哪些属于JSP内置对象及方法? 10.以下类型为Final类型的为() 答案汇总: 总结 承蒙

  • Java日常练习题,每天进步一点点(47)

    目录 1.public interface IService {String NAME="default";} 2.关于以下程序代码的说明正确的 3.以下 _____ 不是 Object 类的方法 4.try块后必须有catch块.() 5.已知有下列Test类的说明,在该类的main方法内,则下列哪个语句是正确的?() 6.String s = new String("xyz");创建了几个StringObject? 7.下面有关JVM内存,说法错误的是? 8.问

  • Java日常练习题,每天进步一点点(9)

    目录 1."先进先出"的容器是:( ) 2.不考虑反射机制,一个子类显式调用父类的构造器必须用super关键字.( ) 3.以下是java concurrent包下的4个类,选出差别最大的一个 4.判断对错.在java的多态调用中,new的是哪一个类就是调用的哪个类的方法. 5.下面属于java引用类型的有? 6.有以下程序段, 则下面正确的选项是() 7.往OuterClass类的代码段中插入内部类声明, 哪一个是错误的: 8.Java.Thread的方法resume()负责重新开始

  • Java日常练习题,每天进步一点点(15)

    目录 1.main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的(). 2.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系? 3.下列关于修饰符混用的说法,错误的是( ) 4.某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( ) 5.根据以下代码段,下列说法中正确的是( ). 6.在创建派生类对象,构造函数的执行顺序() 7.关于下面的一段代码,以下哪些说法是正确的: 8.

  • Java日常练习题,每天进步一点点(14)

    目录 1.下面程序的运行结果:() 2.如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是() 3.有以下类定义: 4.以下代码的输出的正确结果是 5.下列说法正确的是() 6.以下代码输出的是: 7.非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致. 8.下列关于容器集合类的说法正确的是? 9.下面说法正确的是?() 10.下面的对象创建方法中哪些会调用构造方法 ()

  • Java日常练习题,每天进步一点点(13)

    目录 1.以下关于java封装的描述中,正确的是: 2.请问所有的异常类皆直接继承于哪一个类?() 3.Which statement is true for the class java.util.ArrayList? 4.以下 b 的值是: byte b = (byte)129; 5.哪个类可用于处理 Unicode? 6.下面代码的运行结果是( ) 7.以下哪些继承自 Collection 接口() 8.程序中常采用变量表示数据,变量具有名.地址.值.作用域.生存期等属性.关于变量的叙述,

  • Java日常练习题,每天进步一点点(12)

    目录 1.Which is the return type of the method main()? 2.java中用()字指明继承关系.用()关键字指明对接口的实现. 3.顺序执行下列程序语句后,则b的值是() 4.下面程序的输出是什么? 5.下面属于JSP内置对象的是? 6.关于抽象类与接口,下列说法正确的有? 7.下面哪些写法能在 java8 中编译执行() 8.Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( ) 9.

  • Java日常练习题,每天进步一点点(11)

    目录 1.对接口的描述正确的是() 2.类中的数据域使用private修饰为私有变量,所以任何方法均不能访问它. 3.已知如下类定义: 4.在java的一个异常处理中,可以包含多个的语句块是 ( ). 5.关于Java语言中的final关键字的使用,下列说法正确的是() 6.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 7.下列有关Servlet的生命周期,说法不正确的是? 8.What is displayed when the following is exe

  • Java日常练习题,每天进步一点点(16)

    目录 1.main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的(). 2.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系? 3.下列关于修饰符混用的说法,错误的是( ) 4.某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( ) 5.根据以下代码段,下列说法中正确的是( ). 6.在创建派生类对象,构造函数的执行顺序() 7.关于下面的一段代码,以下哪些说法是正确的: 8.

  • Java日常练习题,每天进步一点点(10)

    目录 1.在运行时,由java解释器自动引入,而不用import语句引入的包是(). 2.以下关于集合类ArrayList.LinkedList.HashMap描述错误的是() 3.列表(List)和集合(Set)下面说法正确的是? ( ) 4.以下程序的运行结果是? 5.下面程序的输出结果是什么. 6. 7.从运行层面上来看,从四个选项选出不同的一个. 8.下面哪些标识符是正确的? 9.下列哪个是合法的 Java 标识符?( ) 10.以下说法中正确的有? 总结 承蒙各位厚爱,我们一起每天进步

随机推荐