Java错题合集(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java错题合集(1)
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,说法正确的是()?
ng.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
ng.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建⼀个超过虚拟机允许的⼤⼩的数组时,这条错误将会出现ng.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包中?()
ng
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扩充⼏次
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⽤作键或值
ArrayList和LinkedList均实现了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=(int)8846.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类的⼦类。