日常Java练习题(每天进步一点点系列)

简介: 日常Java练习题(每天进步一点点系列)

1、如果一个方法或变量是"private"访问级别,那么它的访问范围是:

正确答案: D 你的答案: D(正确)

在当前类,或者子类中

在当前类或者它的父类中

在当前类,或者它所有的父类中

在当前类中


题解:

private 修饰的方法和变量只能在当前类中访问

不带任何修饰符,只能在同一包内的类中,被访问

protected 只能在子类或者当前类中被访问

public 所有类中可以访问


2、代码将打印?

System.out.println(10%3*2);

正确答案: B 你的答案: B (正确)

1

2

4

6


题解:

%和*是同一个优先级,从左到右运算


3、下面关于hibernate核心接口说明错误的是?

正确答案: B 你的答案: B (正确)

Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象

SessionFactory 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存

Query 和Criteria 接口:执行数据库的查询

Transaction 接口:管理事务


题解:

B选项中应该是Session接口而不是SessionFactory接口


4、以下哪项陈述是正确的?

正确答案: E 你的答案: E (正确)

垃圾回收线程的优先级很高,以保证不再 使用的内存将被及时回收

垃圾收集允许程序开发者明确指定释放 哪一个对象

垃圾回收机制保证了JAVA程序不会出现 内存溢出

进入”Dead”状态的线程将被垃圾回收器回收

以上都不对


题解:

A: 垃圾回收在jvm中优先级相当相当低。

B:垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制。

C:垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出。

D:进入DEAD的线程,它还可以恢复,GC不会回收


5、在jdk1.5之后,下列 java 程序输出结果为______。

int i=0;

Integer j = new Integer(0);

System.out.println(i==j);

System.out.println(j.equals(i));

正确答案: B 你的答案: B (正确)

true,false

true,true

false,true

false,false

对于不同的环境结果不同

程序无法执行


题解:

1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true;

2、两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。

3、两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true

4、基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3中的比较。


6、关于 访问权限说法正确 的是 ? ( )

正确答案: D 你的答案: D (正确)

外部类定义前面可以修饰public,protected和private

局部内部类前面可以修饰public,protected和private

匿名内部类前面可以修饰public,protected和private

以上说法都不正确


题解:

对于外部类来说,只有两种修饰,public和默认(default),因为外部类放在包中,只有两种可能,包可见和包不可见。

对于内部类来说,可以有所有的修饰,因为内部类放在外部类中,与成员变量的地位一致,所以有四种可能。

这道题是不严谨的题,首先B选项说的是内部类,内部类分为成员内部类、局部(方法)内部类、静态内部类、匿名内部类。毫无疑问局部内部类属于内部类,如果B选项正确,那么C选项也应该是正确的。所以应该是选D

在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 。

1.成员内部类

(1)该类像是外部类的一个成员,可以无条件的访问外部类的所有成员属性和成员方法(包括private成员和静态成员);

(2)成员内部类拥有与外部类同名的成员变量时,会发生隐藏现象,即默认情况下访问的是成员内部类中的成员。如果要访问外部类中的成员,需要以下形式访问:【外部类.this.成员变量 或 外部类.this.成员方法】;

(3)在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问;

(4)成员内部类是依附外部类而存在的,也就是说,如果要创建成员内部类的对象,前提是必须存在一个外部类的对象;

(5)内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限。如果成员内部类用private修饰,则只能在外部类的内部访问;如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承外部类的情况下访问;如果是默认访问权限,则只能在同一个包下访问。外部类只能被public和包访问两种权限修饰。

2.局部内部类

(1)局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内;

(2)局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。

3.匿名内部类

(1)一般使用匿名内部类的方法来编写事件监听代码;

(2)匿名内部类是不能有访问修饰符和static修饰符的;

(3)匿名内部类是唯一一种没有构造器的类;

(4)匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写。

4.内部静态类

(1)静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似;

(2)不能使用外部类的非static成员变量或者方法。


7、下面哪个方法与Applet的显示无关?

正确答案: A 你的答案: A (正确)

draw

paint

repaint

update


题解:

这题,应该选draw。

Applet显示相关的方法主要有3个。

1.paint(Graphicsg)方法,具体执行Applet的绘制。

2.update(Graphicsg)()方法,主要用于更新Applet的显示。

3.repaint()方法,主要用于Applet的重新显示,它调用update()方法实现对Applet的更新。

而draw()方法与显示无关,故选A draw


8、以下哪几种是java的基本数据类型。

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

String

int

boolean

Double


题解:

java四类八种基本数据类型:

1、整型 byte,short,int,long

2、浮点型 float,double

3、逻辑型 boolean

4、字符型 char


9、下列不是 Java 关键字的是 ( )

正确答案: B D 你的答案: B D(正确)

abstract

false

native

sizeof


题解:

Java有:

148个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

2)2个保留字(现在没用以后可能用到作为关键字):goto、const。

3)3个特殊直接量:true、false、null。


10、下面有关java的引用类型,说法正确的有?

正确答案: A B C D 你的答案: A B C D (正确)

对于一个对象来说,只要有强引用的存在,它就会一直存在于内存中

如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。

如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存

一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的空间


题解:

1、强引用:一个对象赋给一个引用就是强引用,比如new一个对象,一个对象被赋值一个对象。

2、软引用:用SoftReference类实现,一般不会轻易回收,只有内存不够才会回收。

3、弱引用:用WeekReference类实现,一旦垃圾回收已启动,就会回收。

4、虚引用:不能单独存在,必须和引用队列联合使用。主要作用是跟踪对象被回收的状态。


答案汇总:

1、正确答案: D

2、正确答案: B

3、正确答案: B

4、正确答案: E

5、正确答案: B

6、正确答案: D

7、正确答案: A

8、正确答案: B C

9、正确答案: B D

10、正确答案: A B C D


以上部分题解来自牛客评论区,感谢评论区大佬的解释。


相关文章
|
5月前
|
存储 Java
创建一个乘法练习题生成器 using Java
创建一个乘法练习题生成器 using Java
|
6月前
|
人工智能 Java
Java练习题-输出二维数组对角线元素和
Java练习题-输出二维数组对角线元素和
|
6月前
|
存储 Java 索引
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
|
6月前
|
Java
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历...
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历
44 0
|
6月前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
|
6月前
|
Java
Java练习题-键盘录入字符串实现大小写转换
Java练习题-键盘录入字符串实现大小写转换
|
6月前
|
Java
Java练习题-输出斐波那契(Fibonacci)数列
Java练习题-输出斐波那契(Fibonacci)数列
|
6月前
|
存储 Java
Java程序设计练习题8异常处理
Java程序设计练习题8异常处理
161 0
|
6月前
|
算法 Java 程序员
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
57 0
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
|
6月前
|
Java
java字符串练习题8、同构字符串
java字符串练习题8、同构字符串
52 0
java字符串练习题8、同构字符串