2023年11月29日发(作者:)

Java错题合集(7

1、与InputStream流相对应的Java系统的标准输⼊对象

3、字符界⾯下接受⽤户从键盘输⼊,需要import的包是

4java中将ISO8859-1字符串转成GB2312编码,语句为

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

5socket编程中,以下哪个socket的操作是不属于服务端操作的

accept

listen

close

6Java以下描述正确的有

native关键字表名修饰的⽅法是由其它⾮Java语⾔编写的

7、在⼀个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信⽅式是不可⾏的

管道

可⾏的是:

消息队列

⾼速缓存数据库

套接字

8、某程序要求每次输⼊只能是正整数,并且每次输⼊的数值要求必须是100的倍数且⼩于等于500,则下列哪个是正确的⽆效等价类

500+∞)、任意⼤于0⼩于500的⾮100倍数的整数;

9、哪个类包含⽅法flush()

OutputStream

10、正则表达式中,表⽰匹配⾮数字字符的字符是

D

11(-8.5)=( )

(double)-9.0

12、对于JVM内存配置参数,其最⼩内存值和Survivor区总⼤⼩分别是

-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3

10240m2048m

13、如果进栈序列为e1e2e3e4,则可能的出栈序列是()注:⼀个元素进栈后可以马上出栈,不⽤等全部进栈

e2e4e3e1

e2e3e4e1

14、关于final关键字说法正确的是

final修饰的类肯定不能被继承

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

15、若有定义:byte[]x={11,22,33,66};其中0≤k≤3,则对x数组元素正确的引⽤是

x[5-3]

x[k]

x[0]

16java中将ISO8859-1字符串转成GB2312编码,语句为

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

17、哪个命令能够获取JVM的内存映像

jmap

18、关于struts框架,那些说法是正确的

Struts框架基于MVC模式

19、从运⾏层⾯上来看,从四个选项选出不同的⼀个

Python

Python是解释执⾏的,Java语⾔都需要先编译

20javaHashtable, Vector, TreeSet, LinkedList哪些线程是安全的

Hashtable

Vector

21、关于OutOfMemoryError,说法正确的是

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

emoryError: Requested array size exceeds VM limit当你正准备创建⼀个超过虚拟机允许的⼤⼩的数组时,这条错误将会出现

emoryError: Java heap space ⼀般情况下解决这个问题最快的⽅法就是通过-Xmx参数来增加堆的⼤⼩

22、在Java,说法正确的有

数组是⼀种对象

23、对于线程局部存储TLS(thread local storage),表述正确的是

解决多线程中的对同⼀变量的访问冲突的⼀种技术

TLS会为每⼀个线程维护⼀个和该线程绑定的变量的副本

Java平台的LocalTLS技术的⼀种实现

24、正确的有

call by value不会改变实际参数的数值

call by reference能改变实际参数的参考地址

call by reference能改变实际参数的内容

25Java是⼀门⽀持反射的语⾔,基于反射为Java提供了丰富的动态性⽀持,下⾯关于Java反射的描述,哪些是正确的

通过反射可以动态的实现⼀个接⼝,形成⼀个新的类,并可以⽤这个类创建对象,调⽤对象⽅法

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

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

26JDK提供的⽤于并发编程的同步器有哪些?

Semaphore

CyclicBarrier

CountDownLatch

27、关于Java中的ClassLoader下⾯的哪些描述是正确的

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

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

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

28truefalsenullsizeofgotosynchronized 哪些是Java关键字

goto

synchronized

29、在Java中,HashMap中是⽤哪些⽅法来解决哈希冲突的

链地址法

30、属于属于HttpServletResponse接⼝完成的功能

设置HTTP头标

设置cookie

输出返回数据

31、是⾯向对象的基本原则的是?

单⼀职责原则(Single-Resposibility Principle

开放封闭原则(Open-Closed principle

依赖倒置原则(Dependecy-Inversion Principle

接⼝隔离原则(Interface-Segregation Principle

32、程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换

dst=new String(src"GBK").getBytes("UTF-8")

33、在⼀个基于分布式的游戏服务器系统中,不同的服务器之间,通信⽅式是可⾏的

消息队列

⾼速缓存数据库

套接字

34、抽象类⽅法的访问权限默认都是public

错误

35、有关JAVA异常类的描述,说法正确的是

异常的继承结构:基类为ThrowableErrorException继承ThrowableRuntimeExceptionIOException等继承Exception

RuntimeException⼀般是外部错误(Error),其必须被 try{}catch语句块所捕获

Error类体系描述了Java运⾏系统中的内部错误以及资源耗尽的情形,Error不需要捕捉

36、哪些项属于优化Hibernate所⿎励的

不⽤⼀对⼀,⽤多对⼀取代

配置对象缓存,不使⽤集合缓存

继承类使⽤显式多态

37、关于程序编译说法正确的是

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

38、有关Java的说法正确的是

⼀个类可以实现多个接⼝

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

通过super可以调⽤⽗类构造函数

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

39、有关servlet的层级结构和常⽤的类,说法正确的有

GenericServlet类:抽象类,定义⼀个通⽤的、独⽴于底层协议的Servlet

⼤多数Servlet通过从GenericServletHttpServlet类进⾏扩展来实现

ServletConfig接⼝定义了在Servlet初始化的过程中由Servlet容器传递给Servlet得配置信息对象

HttpServletRequest接⼝扩展ServletRequest接⼝,为HTTP Servlet提供HTTP请求信息

40、正确的有

call by value不会改变实际参数的数值

call by reference不能改变实际参数的参考地址

call by reference能改变实际参数的内容

41、关于Java的⼀些概念,哪些描述是正确的

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

Java通过synchronized进⾏访问的同步,synchronized作⽤⾮静态成员⽅法和静态成员⽅法上同步的⽬标是不同的

42jvm中垃圾回收分为scanvenge gcfull GC,其中full GC触发的条件可能有哪些

⽼年代满

持久代满

()

43、下列容器中,哪些容器按 key 查找的复杂度为 O(log(n))

std::multimap

std::map

44、以下类型为Final类型的为

StringBuffer

String

45、那个数据结构是适⽤于"数据必须以相反的顺序存储然后检索" ?

Stack

46、在Java中,以下关于⽅法重载和⽅法重写描述正确的是

⽅法重写的返回值类型必须相同或相容。(或是其⼦类)

/^(http:)?(w+).?videoav(d{1,8})?$/

48、有关JAVA异常类的描述,说法正确的是

异常的继承结构:基类为ThrowableErrorException继承ThrowableRuntimeExceptionIOException等继承Exception

RuntimeException⼀般是外部错误(Error),其必须被 try{}catch语句块所捕获

Error类体系描述了Java运⾏系统中的内部错误以及资源耗尽的情形,Error不需要捕捉

49String s = new String("xyz");创建了⼏个StringObject

两个或⼀个都有可能

解析:

对象的两种创建⽅式:

第⼀种⽅式: String str1 = "aaa"; 是在常量池中获取对象("aaa" 属于字符串字⾯量,因此编译时期会在常量池中创建⼀个字符串对象)

第⼆种⽅式: String str2 = new String("aaa") ; ⼀共会创建两个字符串对象⼀个在堆中,⼀个在常量池中(前提是常量池中还没有 "aaa" 字符串对象)。

n(str1==str2);//false

类型的常量池⽐较特殊。它的主要使⽤⽅法有两种:

直接使⽤双引号声明出来的String对象会直接存储在常量池中。

如果不是⽤双引号声明的String对象,可以使⽤ String 提供的 intern ⽅法。 () 是⼀个 Native ⽅法,它的作⽤是: 如果运⾏时常量池中已经包含⼀个等于此 String 对象内容的字符串,则返回常量池中该字符串的引⽤; 如果没有,则在常量

String s1 = new String("AAA");

String s2 = ();

String s3 = "AAA";

n(s2);//AAA

n(s1 == s2);//false,因为⼀个是堆内存中的String对象⼀个是常量池中的String对象,

n(s2 == s3);//true s2,s3指向常量池中的”AAA“

50、字段声明中哪⼀个在interface主体内是合法的

public static int answer = 42;

51、在各⾃最优条件下,N个数进⾏排序,哪个算法复杂度最低的是

插⼊排序

52、关于java集合下列说法正确的有哪些

Collection接⼝是List接⼝和Set接⼝的⽗接⼝,通常情况下不被直接使⽤

53、在Java,下列说法正确的有

数组是⼀种对象

54、有关Java的说法正确的是

⼀个类可以实现多个接⼝

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

通过super可以调⽤⽗类构造函数

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

55java中关于继承的描述正确的是

⼀个⼦类只能继承⼀个⽗类

继承具有传递性

⽗类⼀般具有通⽤性,⼦类更具体

56、哪种⽅式实现的单例是线程安全的

枚举

静态内部类

双检锁模式

饿汉式

57、关于Java的⼀些概念,描述是正确的

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

Java通过synchronized进⾏访问的同步,synchronized作⽤⾮静态成员⽅法和静态成员⽅法上同步的⽬标是不同的

58的⽅法resume()负责重新开始被以下哪个⽅法中断的线程的执⾏

suspend

59、下⾯有关 JAVA 异常类的描述,说法正确的有

异常的继承结构:基类为 Throwable,Error Exception 。实现 Throwable, RuntimeException IOException 等继承 Exception

RuntimeException ⼀般是外部错误(不考虑Error的情况下),其可以在当前类被 try{}catch 语句块所捕获

Error 类体系描述了 Java 运⾏系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉

60、与InputStream流相对应的Java系统的标准输⼊对象

61、运⽤哪个命令能够获取JVM的内存映像

jmap

62、有关jdbc statement的说法正确的是

JDBC提供了StatementPreparedStatement CallableStatement三种⽅式来执⾏查询语句,其中 Statement ⽤于通⽤查询, PreparedStatement ⽤于执⾏参数化查询,⽽ CallableStatement则是⽤于存储过程

对于PreparedStatement来说,数据库可以使⽤已经编译过及定义好的执⾏计划,由于 PreparedStatement 对象已预编译过,所以其执⾏速度要快于 Statement 对象

PreparedStatement可以阻⽌常见的SQL注⼊式攻击

63、在Java中,HashMap中是⽤哪些⽅法来解决哈希冲突的

链地址法

64、属于算法结构的是

输⼊数据

处理数据

输出结果

65java⽤()机制实现了进程之间的同步执⾏

监视器

66、变量a是⼀个64位有符号的整数,初始值⽤16进制表⽰为:0Xf000 变量b是⼀个64位有符号的整数,初始值⽤16进制表⽰为:0x7FFFFFFFFFFFFFFF

a-b的结果⽤10进制表⽰为多少

2^62+2^61+2^60+1

67DBMS 中实现事务持久性的⼦系统是()

恢复管理⼦系统

68、哪些流类属于⾯向字符的流

BufferedWriter

InputStreamReader

69、哪些内存区域属于JVM规范

⽅法区

程序计数器

虚拟机栈

70、在java中重写⽅法应遵循规则的包括

访问修饰符的限制⼀定要⼤于被重写⽅法的访问修饰符

必须具有不同的参数列表

71、哪个正确

abstract类只能⽤来派⽣⼦类,不能⽤来创建abstract类的对象。

final类不但可以⽤来派⽣⼦类,也可以⽤来创建final类的对象。

abstract类定义中可以没有abstract⽅法。

72jvm中垃圾回收分为scanvenge gcfull GC,其中full GC触发的条件可能有哪些

⽼年代满

持久代满

()

73、关于变量及其范围的陈述哪些是正确的

实例变量⽤关键字static声明

在⽅法中定义的局部变量在该⽅法被执⾏时创建

74、⽅法中哪个是线程执⾏的⽅法

run()

75、关于⾯向对象的⼀些理解哪些是正确的

⾯向对象的最重要的特性是⽀持继承、封装和多态

系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应⽀持通过继承、组合等⽅式进⾏扩展

⾯向对象设计时,每个类的职责应该单⼀,不要再⼀个类中引⼊过多的接⼝

过程式语⾔和⾯向对象的语⾔各有其优势,过程式语⾔更加灵活,⾯向对象语⾔更加强调抽象和封装

JavaC++都是静态类型的⾯向对象编程语⾔

76、有关线程的叙述正确的是

线程通过使⽤synchronized关键字可获得对象的互斥锁定

线程调度算法是平台独⽴的

77、下列说法正确的是

对于局部内部类,只有在⽅法的局部变量被标记为final或局部变量是effctively final的,内部类才能使⽤它们

成员内部类位于外部类内部,可以直接调⽤外部类的所有⽅法(静态⽅法和⾮静态⽅法)

78、在⾯向对象编程⾥,经常使⽤is-a来说明对象之间的继承关系,对象中具备继承关系的是

⼿机与⼩⽶⼿机

企业家与雷军

编程语⾔与Java

解析:

类之间存在以下⼏种常见的关系

use-a 是依赖关系

has-a ⼀般是组合关系

is-a ⼀般是继承关系

79、以下多线程对int型变量x的操作,需要进⾏同步

x=y;

x++;

++x;

80、在JAVA中,假设A有构造⽅法A(int a),则在类A的其他构造⽅法中调⽤该构造⽅法和语句格式应该为

this(x)

81、关于Java并发的说法中正确的是

ReadWriteLock适⽤于读多写少的并发场景

82、关于JavaBean的说法正确的是

Java⽂件与Bean所定义的类名可以不同,但⼀定要注意区分字母的⼤⼩写

83、在Java语⾔中关于数据类型和包装类的说法,正确的是

longdouble都占了64位(64bit)的存储空间。

84、关于Java语⾔描述正确的是

javaC++都有三个特征:封装、继承和多态

85、有关SPRING的事务传播特性,说法正确的是

PROPAGATION_SUPPORTS:⽀持当前事务,如果当前没有事务,就以⾮事务⽅式执⾏

PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起

PROPAGATION_NESTED:⽀持当前事务,新增Savepoint点,与当前事务同步提交或回滚

86、⾯向对象⽅法的多态性是指()

针对⼀消息,不同的对象可以以适合⾃⾝的⽅式加以响应

87、有关JAVA swing的描述,说法正确的是

Swing是⼀个基于Java的跨平台MVC框架。使⽤单线程模式。

Swing 是为了解决 AWT 存在的问题⽽新开发的包,它以 AWT 为基础的

Swing是⼀个基于组件的框架,所有的组件都是从nent类继承来的

88jre 判断程序是否执⾏结束的标准是

所有的前台线程执⾏完毕

89、哪些可以处理Unicode字符

InputStreamReader

BufferedReader

Writer

90Gadget has-a Sprocket and Gadget has-a Spring and Gadget is-a Widget and Widget has-a

Sprocket 以下哪两段代码可以表⽰这个关系

class Widget { Sprocket s; }class Gadget extends Widget { Spring s; }

class Widget { Sprocket s1; Spring s2; }class Gadget extends Widget { }

91、有关forwardredirect的描述,正确的是

执⾏forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址

执⾏redirect时,服务器端告诉浏览器重新去请求地址

forward是内部重定向,redirect是外部重定向

92、哪些jvm的垃圾回收⽅式采⽤的是复制算法回收

新⽣代串⾏收集器

⽼年代并⾏回收收集器

93、有关finally语句块说法正确的是

不管catch是否捕获异常,finally语句块都是要被执⾏的

try语句块或catch语句块中执⾏到(0)直接退出程序

finally块中的return语句会覆盖try块中的return返回

94、有关java的引⽤类型,说法正确的有

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

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

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

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

95、类之间存在以下⼏种常见的关系

“USES-A”关系

“HAS-A”关系

“IS-A”关系

解析:

USES-A:依赖关系,A类会⽤到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类⽅法中的参数包含了B类。

关联关系:A类会⽤到B类,这是⼀种强依赖关系,是长期的并⾮偶然。在代码中的表现为:A类的成员变量中含有B类。

HAS-A:聚合关系,拥有关系,是关联关系的⼀种特例,是整体和部分的关系。⽐如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。

IS-A:表⽰继承。⽗类与⼦类,这个就不解释了。

要注意:还有⼀种关系:组合关系也是关联关系的⼀种特例,它体现⼀种contains-a的关系,这种关系⽐聚合更强,也称为强聚合。它同样体现整体与部分的关系,但这种整体和部分是不可分割的。

96、语句:char foo='',是否正确?(假设源⽂件以GB2312编码存储,并且以javac – encoding GB2312命令编译)

正确

97、有关webservice的描述,正确的是

Webservice是跨平台,跨语⾔的远程调⽤技术

Webservice采⽤了soap协议(简单对象协议)进⾏通信

WSDL是⽤于描述 Web Services 以及如何对它们进⾏访问

98、哪些是加载驱动程序的⽅法

调⽤⽅法 e

通过添加系统的s属性

通过registerDriver⽅法注册

99、关于AWTSwing说法正确的是

Swing在不同的操作系统中显⽰相同的风格

100、关于Java中的ClassLoader下⾯的哪些描述是正确的

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

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

ClassLoader的⽗⼦结构中,默认装载采⽤了⽗优先