Java错题合集(1)

701 阅读20分钟

1、是类及类成员的访问控制符的是 (不考虑内部类的情况)

​ A、public

​ B、private

​ C、protected

2、有关JVM内存, 说法正确的是?

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

方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

3、JSP分页代码中,步骤次序是正确的?

​ A、先取总记录数,得到总页数,最后显示本页的数据。

4、哪些情况下会导致线程中断或停止运行

​ A、InterruptedException异常被捕获

​ B、线程调用了wait方法

**5、说法中正确的有? **

​ A、StringBuilder是线程不安全的

​ B、volatile关键字不保证对变量操作的原子性

6、 关于volatile的功能说法正确的是

​ A、有序性

​ B、可见性

**7、 关于Java中类的构造方法的描述,正确的是 **

可以定义一个类而在代码中不写构造方法。

**8、 说法正确的有 **

constructor可在一个对象被new时执行

9、 一个类的构造器不能调用这个类中的其他构造器?

正确

**10、 关于继承和实现说法正确的是 ? **

类可以实现多个接口,接口可以继承(或扩展)多个接口

**11、JVM内存不包含如下哪个部分 **

Heap Frame

**12、 在Java中,HashMap中是用哪些方法来解决哈希冲突的 **

开放地址法

13、有关jsp中静态include和动态include的区别, 说法正确的是?

​ A、动态INCLUDE:用jsp:include动作实现

​ B、静态INCLUDE:用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included. htm"%>

​ C、静态include的结果是把其他jsp引入当前jsp,两者台为一体;动态include的结构是两者独立,直到输出时才合并

14、关于ASCII码和ANSI码,说法正确的是() ?

​ A、标准ASCII只使用7个bit

​ B、在简体中文的windows系统中,ANSI就是GB2312

​ C、ASCII码是ANSI码的子集

15、 关于包(package)的描述,正确的是

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

**16、 有关Java的说法正确的是 **

一个类可以实现多个接口

protected成员在子类可见性可以修改

通过super可以调用父类构造函数

String是不可修改的,且java运行环境中对string对象有一个对象池保存

**17、哪些写法能在 java8 中编译执行 **

dir.listFiles((File f)->f.getName().endsWith(“.Java”));

dir.listFiles( f->f.getName().endsWith(“.Java”));

**18、 Java语言中,语句是创建数组的正确语句?( ) **

float f[][] = new float[6][6];

float []f[] = new float[6][6];

float [][]f = new float[6][6];

float [][]f = new float[6][];

18、 关于Java里queue的说法哪些是正确的?

LinkedBlockingQueue是一个可选有界队列,不允许null值

PriorityQueue是一个无界队列,不允许null值,入队和出队的时间复杂度是O(log(n))

**19、 与InputStream流相对应的Java系统的“标准输入对象”是() **

System.in

**20、 ArrayList和LinkList的描述,说法正确的是 **

LinkedeList和ArrayList都实现了List接口

ArrayList是可改变大小的数组,而LinkedList是双向链接串列

LinkedList不支持高效的随机元素访问

**21、 是java concurrent包下的4个类,选出差别最大的一个 **

Future

**22、 下面关于hibernate核心接口说明正确的是? **

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

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

Transaction 接口:管理事务

**23、public interface IService {String NAME="default";} 默认类型等价表示是哪一项: **

public static final String NAME="default";

24、off-heap是指那种内存

JVM进程管理的内存

off-heap叫做堆外内存,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。序列化和反序列化将会影响部分性能(所以可以考虑使用FST-serialization)使用堆外内存能够降低GC导致的暂停。堆外内存不受垃圾收集器管理,也不属于老年代,新生代。

25、在开发中使用泛型取代非泛型的数据类型(比如用ArrayList取代ArrayList),程序的运行时性能会变得更好。()

错误

使用泛型的好处

1,类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。

2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。

3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。

所以泛型只是提高了数据传输安全性,并没有改变程序运行的性能

26、java8中,哪个类用到了解决哈希冲突的开放定址法

ThreadLocal

27、说法正确的是?()

一个线程调用yield方法,可以使具有相同优先级线程获得处理器

在Java中,高优先级的可运行的线程会抢占低优先级线程的资源

28、程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,()是正确的。

根据作用域规则,在函数中定义的变量只能在函数中引用

在函数中定义的变量,其生存期为整个程序执行期间

在函数中定义的变量不能与其所在函数的形参同名

29、java中 String str = "hello world"语句错误的是?

str+='      a'

int strlen = str.length

str=100

**30、 下列程序执行后结果为( ) **

 class A {
     public int func1(int a, int b) {
         return a - b;
     }
 }
 class B extends A {
     public int func1(int a, int b) {
         return a + b;
     }
 }
 public class ChildClass {
     public static void main(String[] args) {
     A a = new B();
     B b = new B();
     System.out.println("Result=" + a.func1(100, 50));
     System.out.println("Result=" + b.func1(100, 50));
     }
 }

Result=150Result=150

31、已知 声明并初始化二维数组 int a[ ][ ]={{1,2},{3,4},{5,6}} ,则 a[1][1] 的值为()

4

32、在 Java 中,存放字符串常量的对象属于( )类对象

String

33、哪个Set类是排序的?

TreeSet

34、多线程对int型变量x的操作,哪个不需要进行同步()

x=1

35、顺序执行下列程序语句后,则b的值是

String a="Hello";

String b=a.substring(0,2);

He

36、描述中,正确的是

SQL语言又称为结构化查询语言

java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问

java是强类型语言,javascript是弱类型语言

面向对象的三大特性包括:封装,继承,多态

37、对于文件的描述正确的是

Java中对于文本文件和二进制文件,都可以当作二进制文件进行操作。

38、以下为 java 语法保留不能作为类名和方法名使用的是

default

int

implements

throws

**39、 给定以下JAVA代码,这段代码运行后输出的结果是() **

public class Test
{  
    public static int aMethod(int i)throws Exception
    {
        try{
            return i/10;
        }
        catch (Exception ex)
        {
            throw new Exception("exception in a aMethod");
        }finally{
      System.out.printf("finally");
        }
} 
    public static void main(String[] args){
        try
        {
            aMethod(0);
        }
        catch (Exception ex)
        {
            System.out.printf("exception in main");
        }
        System.out.printf("finished");
    }
}

finally finished

40、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是() 注:一个元素进栈后可以马上出栈,不用等全部进栈

e2,e4,e3,e1

e2,e3,e4,e1

41、关于OutOfMemoryError,说法正确的是()?

java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。

java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现

java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小

42、在Java线程状态转换时,下列转换不可能发生的有()?

初始态->运行态

阻塞态->运行态

43、关于Histroy对象的属性或方法描述正确的是()

bcak回到浏览器载入历史URL地址列表的当前URL的前一个URL

forward转到浏览器载入历史URL地址列表的当前URL的下一个URL。

44、Java 语言中,负责并发管理的机制是( )

多线程

45、关于继承的描述正确的是

在Java中只允许单一继承

46、java中哪个能创建并启动线程()

`public` `class` `MyRunnable implements Runnable     { ``   ``public` `void` `run()       { ``     ``//some code here ``   ``} `` ``}`

new Thread(new MyRunnable()).start()

47、非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.

错误

48、集合对象中哪些个是线程安全的()

Vector
Hashtable

48、下列关于构造方法的叙述中,正确的是()

java语言规定构造方法名与类名必须相同

java语言规定构造方法没有返回值,但不同void声明

49、Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是正确的:( )

通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法

通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员

Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多


50、说法正确的有( )

能被java.exe成功运行的java class文件必须有main()方法

51、哪项技术可以用在WEB开发中实现会话跟踪实现?

session

Cookie

地址重写

隐藏域

52、基本的Java语言函数存储在哪个java包中?()

java.lang

53、执行语句“int a= ’ 2 ’ ”后,a的值是( )

50

54、假设有以下代码String s = "hello";String t = "hello";char c [ ] = {'h','e','l','l','o'};返回false的语句是?

t.equals (c);

55、以下多线程对int型变量x的操作,哪个不需要进行同步()

x=1

56、在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?

管道

57、关于Spring的说法中正确的是()

Spring是一系列轻量级Java EE框架的集合

Spring中包含一个“依赖注入”模式的实现

使用Spring可以实现声明式事务

58、有一个源代码,只包含import java.util. ; 这一个import语句,叙述正确的是? ( )*

能访问java/util目录下的所有类,不能访问java/util子目录下的所有类

59、哪些类实现或者继承了Collection接口?

ArrayList

Vector

60、在java中重写方法应遵循规则的包括()

可以有不同的访问修饰符

参数列表必须完全与被重写的方法相同

61、jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些

老年代满

持久代满

System.gc()

**62、 Java中类是单继承,但接口可以多继承,Interfere1 extends Interface2,Interface3... **

63、为了使包ch4在当前程序中可见,可以使用的语句是()

import ch4.*;

64、以下是修饰符final的作用的是( )。

修饰常量

修饰不可被继承的类

修饰不可覆盖的方法

65、在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象

Web容器

66、在java中,下列对继承的说法,正确的是( )

子类能继承父类的所有成员

67、已知如下的命令执行 java MyTest a b c 请问哪个语句是正确的? ( )

args[0] = "a"

args[1]= "b"

68、jdk1.8中,下面有关java 抽象类和接口的区别,说法正确的是?

抽象类可以有构造方法,接口中不能有构造方法

抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法

69、下面有关java的instanceof、?、&、&&说法正确的有?

instanceof 可用来判断某个实例变量是否属于某种类的类型。

"?:"  三目运算符

&在逻辑运算中是非短路逻辑与,在位运算中是按位与

&& 逻辑运算:逻辑与

70、说法正确的是?()

一个线程调用yield方法,可以使具有相同优先级线程获得处理器

在Java中,高优先级的可运行的线程会抢占低优先级线程的资源

71、关于final关键字说法正确的是()

final修饰的类不能被继承

final修饰的变量不允许被再次赋值

72、说法正确的是()

JAVA程序的main方法必须写在类里面

JAVA程序中可以有多个名字为main方法

73、在Java中,什么是Garbage Collection?()

当对象的所有引用都消失后,对象使用的内存将自动回收

74、哪个不是Collection的子接口?

Map

75、在 applet 的方法中 , 可关闭小应用程序并释放其占用资源的是( )

destroy()

76、Java程序中的类名称必须与存放该类的文件名相同。

77、关于抽象类与最终类,说法正确的是?

抽象类能被继承,最终类只能被实例化。

抽象类和最终类都可以被声明使用

抽象类中可以没有抽象方法,最终类中可以没有最终方法

78、有关Servlet的生命周期,说法正确的是?

在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法

在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源

destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法

79、java中提供了哪两种用于多态的机制

通过子类对父类方法的覆盖实现多态

利用重载来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。

80、说法中正确的有?

StringBuilder是 线程不安全的

volatile关键字不保证对变量操作的原子性

81、关于Java的一些概念,描述是正确的:( )

通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行

Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的

82、若所用变量都已正确定义,非法的表达式是()

’a’ = 1/3

**83、java中将ISO8859-1字符串转成GB2312编码,语句为 ? **

new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")

84、Java语言与其它语言相比,独有的特点是( )

平台无关

85、ArrayList list = new ArrayList(20);中的list扩充几次

0

86、关于容器集合类的说法正确的是?

HashSet继承自AbstractSet

87、集合对象中哪几个是线程安全的()

Vector

Hashtable

88、哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:( )

java.util.ConcurrentHashMap

java.util.Hashtable

89、关于Java中的数组,描述是准确的:( )

数组是一个对象,不同类型的数组具有不同的类

数组是一个连续的存储结构

可以二维数组,且可以有多维数组,都是在Java中合法的

90、叙述正确的是( )

在接口中定义的方法除了default和static关键字修饰的方法拥有方法体,其他方法都应是没有方法体的抽象方法(JDK1.8以后)

一个java类只能有一个父类,但可以实现多个接口

在类声明中,用implements关键字声明该类实现的接口

91、关于 abstract 关键字的说法,正确的是()

abstract 方法必须在abstract类或接口中。

92、以下定义一维数组的语句中,正确的是:()

int a []={1,2,3,4,5}

93、计算机所能处理的最小的数据项称为()

94、关于集合类ArrayList、LinkedList、HashMap描述正确的是()

HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

ArrayListLinkedList均实现了List接口

ArrayList的访问速度比LinkedList

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

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

96、说法正确的是()

EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送

97、有关servlet service描述正确的是?

不管是post还是get方法提交过来的连接,都会在service中处理

service()是在javax.servlet.Servlet接口中定义的

service判断请求类型,决定是调用doGet还是doPost方法

98、关于匿名内部类叙述正确的是? ( )

匿名内部类不可以定义构造器

99、在Struts框架中如果要使用Validation作验证的话,需要使用以下哪个Form?

DynaValidatorActionForm

100、Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素

事件源

事件对象

事件监听器

101、属于是java的基本数据类型。

int

boolean

102、关于final关键字说法正确的是()

final修饰的类不能被继承

final修饰的变量不允许被再次赋值

103、描述中,正确的是

SQL语言又称为结构化查询语言

java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问

java是强类型语言,javascript是弱类型语言

面向对象的三大特性包括:封装,继承,多态

104、Java 的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。

错误

105、有时为了避免某些未识别的异常抛给更高的上层应用,在某些接口实现中我们通常需要捕获编译运行期所有的异常, catch下述哪个类的实例才能达到目的:()

Exception

106、public class contained in a Java program file must have the same name as the file, except for the extension ".java".

FALSE

107、It is an important feature of the Java language that it always provides a default constructor to a class.

FALSE

108、下面有关java object默认的基本方法,说法正确的是?

equals(Object obj) 指示某个其他对象是否与此对象“相等”

wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法

toString() 返回该对象的字符串表示

109、哪些是赋值符号?

+=

<<=

>>>=

110、下面有关java threadlocal说法正确的有?

ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递

线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收

在Thread类中有一个Map,用于存储每一个线程的变量的副本。

对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式

111、以下会产生信息丢失的类型转换是( )

int a=(int8846.0

112、哪个修饰符修饰的变量是所有同一个类生成的对象共享的( )

static

113、哪个属于JVM堆内存中的区域()?

survivor区

eden区

old区

114、枚举(enum)属于原始数据类型(primitive type)。

错误

115、下列关于一个类的静态成员的描述中,正确的是

该类的对象共享其静态成员变量的值

静态成员变量可被该类的所有方法访问

该类的静态方法能访问该类的静态成员变量

116、关于程序编译说法正确的是()

java在运行时才进行翻译指令

117、属于合法的 Java 标识符?( )

FirstJavaApplet

First_Applet

118、在Jdk1.7中,下述说法中抽象类与接口的区别与联系正确的有哪些?

抽象类中可以有普通成员变量,接口中没有普通成员变量。

抽象类和接口中都可以包含静态成员常量。

一个类可以实现多个接口,但只能继承一个抽象类

抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。

119、Java1.8版本之前的前提,Java特性中,abstract class和interface有什么区别()

抽象类可以有构造方法,接口中不能有构造方法

抽象类中可以有普通成员变量,接口中没有普通成员变量

一个类可以实现多个接口,但只能继承一个抽象类。

120、下面有关java类加载器,说法正确的是?

引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的

扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。

系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类

tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用

121、关于Applet的说法是正确的是

Applet可以在带有Java解释器的浏览器中运行

Applet类必须继承java.applet.Applet

Applet可以访问本地文件

Applet是Object类的子类