2023年11月29日发(作者:)
Java错题合集(7)
1、与InputStream流相对应的Java系统的“标准输⼊对象”是
3、字符界⾯下接受⽤户从键盘输⼊,需要import的包是
包
4、java中将ISO8859-1字符串转成GB2312编码,语句为
new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
5、socket编程中,以下哪个socket的操作是不属于服务端操作的
accept
listen
close
6、Java以下描述正确的有
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
10240m,2048m
13、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()注:⼀个元素进栈后可以马上出栈,不⽤等全部进栈
e2,e4,e3,e1
e2,e3,e4,e1
14、关于final关键字说法正确的是
final修饰的类肯定不能被继承
final修饰的变量不允许被再次赋值
15、若有定义:byte[]x={11,22,33,﹣66};其中0≤k≤3,则对x数组元素正确的引⽤是
x[5-3]
x[k]
x[0]
16、java中将ISO8859-1字符串转成GB2312编码,语句为
new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
17、哪个命令能够获取JVM的内存映像
jmap
18、关于struts框架,那些说法是正确的
Struts框架基于MVC模式
19、从运⾏层⾯上来看,从四个选项选出不同的⼀个
Python
Python是解释执⾏的,Java语⾔都需要先编译
20、java中Hashtable, 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平台的Local是TLS技术的⼀种实现
24、正确的有
call by value不会改变实际参数的数值
call by reference能改变实际参数的参考地址
call by reference能改变实际参数的内容
25、Java是⼀门⽀持反射的语⾔,基于反射为Java提供了丰富的动态性⽀持,下⾯关于Java反射的描述,哪些是正确的
通过反射可以动态的实现⼀个接⼝,形成⼀个新的类,并可以⽤这个类创建对象,调⽤对象⽅法
通过反射,可以突破Java语⾔提供的对象成员、类成员的保护机制,访问⼀般⽅式不能访问的成员
Java的反射机制会给内存带来额外的开销。例如对永⽣堆的要求⽐不通过反射要求的更多
26、JDK提供的⽤于并发编程的同步器有哪些?
Semaphore
CyclicBarrier
CountDownLatch
27、关于Java中的ClassLoader下⾯的哪些描述是正确的
默认情况下,Java应⽤启动过程涉及三个ClassLoader: Boostrap, Extension, System
类装载器需要保证类装载过程的线程安全
所有ClassLoader装载的类都来⾃CLASSPATH环境指定的路径
28、true、false、null、sizeof、goto、synchronized 哪些是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异常类的描述,说法正确的是
异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
⾮RuntimeException⼀般是外部错误(⾮Error),其必须被 try{}catch语句块所捕获
Error类体系描述了Java运⾏系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
36、哪些项属于优化Hibernate所⿎励的
不⽤⼀对⼀,⽤多对⼀取代
配置对象缓存,不使⽤集合缓存
继承类使⽤显式多态
37、关于程序编译说法正确的是
java在运⾏时才进⾏翻译指令
38、有关Java的说法正确的是
⼀个类可以实现多个接⼝
protected成员在⼦类可见性可以修改
通过super可以调⽤⽗类构造函数
String是不可修改的,且java运⾏环境中对string对象有⼀个对象池保存
39、有关servlet的层级结构和常⽤的类,说法正确的有
GenericServlet类:抽象类,定义⼀个通⽤的、独⽴于底层协议的Servlet。
⼤多数Servlet通过从GenericServlet或HttpServlet类进⾏扩展来实现
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作⽤⾮静态成员⽅法和静态成员⽅法上同步的⽬标是不同的
42、jvm中垃圾回收分为scanvenge gc和full 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异常类的描述,说法正确的是
异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
⾮RuntimeException⼀般是外部错误(⾮Error),其必须被 try{}catch语句块所捕获
Error类体系描述了Java运⾏系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
49、String 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对象有⼀个对象池保存
55、java中关于继承的描述正确的是
⼀个⼦类只能继承⼀个⽗类
继承具有传递性
⽗类⼀般具有通⽤性,⼦类更具体
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提供了Statement、PreparedStatement 和 CallableStatement三种⽅式来执⾏查询语句,其中 Statement ⽤于通⽤查询, PreparedStatement ⽤于执⾏参数化查询,⽽ CallableStatement则是⽤于存储过程
对于PreparedStatement来说,数据库可以使⽤已经编译过及定义好的执⾏计划,由于 PreparedStatement 对象已预编译过,所以其执⾏速度要快于 Statement 对象”
PreparedStatement可以阻⽌常见的SQL注⼊式攻击
63、在Java中,HashMap中是⽤哪些⽅法来解决哈希冲突的
链地址法
64、属于算法结构的是
输⼊数据
处理数据
输出结果
65、java⽤()机制实现了进程之间的同步执⾏
监视器
66、变量a是⼀个64位有符号的整数,初始值⽤16进制表⽰为:0Xf000; 变量b是⼀个64位有符号的整数,初始值⽤16进制表⽰为:0x7FFFFFFFFFFFFFFF。
则a-b的结果⽤10进制表⽰为多少
2^62+2^61+2^60+1
67、DBMS 中实现事务持久性的⼦系统是()
恢复管理⼦系统
68、哪些流类属于⾯向字符的流
BufferedWriter
InputStreamReader
69、哪些内存区域属于JVM规范
⽅法区
程序计数器
虚拟机栈
70、在java中重写⽅法应遵循规则的包括
访问修饰符的限制⼀定要⼤于被重写⽅法的访问修饰符
必须具有不同的参数列表
71、哪个正确
abstract类只能⽤来派⽣⼦类,不能⽤来创建abstract类的对象。
final类不但可以⽤来派⽣⼦类,也可以⽤来创建final类的对象。
abstract类定义中可以没有abstract⽅法。
72、jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些
⽼年代满
持久代满
()
73、关于变量及其范围的陈述哪些是正确的
实例变量⽤关键字static声明
在⽅法中定义的局部变量在该⽅法被执⾏时创建
74、⽅法中哪个是线程执⾏的⽅法
run()
75、关于⾯向对象的⼀些理解哪些是正确的
⾯向对象的最重要的特性是⽀持继承、封装和多态
系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应⽀持通过继承、组合等⽅式进⾏扩展
⾯向对象设计时,每个类的职责应该单⼀,不要再⼀个类中引⼊过多的接⼝
过程式语⾔和⾯向对象的语⾔各有其优势,过程式语⾔更加灵活,⾯向对象语⾔更加强调抽象和封装
Java和C++都是静态类型的⾯向对象编程语⾔
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语⾔中关于数据类型和包装类的说法,正确的是
long和double都占了64位(64bit)的存储空间。
84、关于Java语⾔描述正确的是
java和C++都有三个特征:封装、继承和多态
85、有关SPRING的事务传播特性,说法正确的是
PROPAGATION_SUPPORTS:⽀持当前事务,如果当前没有事务,就以⾮事务⽅式执⾏
PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起
PROPAGATION_NESTED:⽀持当前事务,新增Savepoint点,与当前事务同步提交或回滚
86、⾯向对象⽅法的多态性是指()
针对⼀消息,不同的对象可以以适合⾃⾝的⽅式加以响应
87、有关JAVA swing的描述,说法正确的是
Swing是⼀个基于Java的跨平台MVC框架。使⽤单线程模式。
Swing 是为了解决 AWT 存在的问题⽽新开发的包,它以 AWT 为基础的
Swing是⼀个基于组件的框架,所有的组件都是从nent类继承来的
88、jre 判断程序是否执⾏结束的标准是
所有的前台线程执⾏完毕
89、哪些可以处理Unicode字符
InputStreamReader
BufferedReader
Writer
90、Gadget 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、有关forward和redirect的描述,正确的是
执⾏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、关于AWT和Swing说法正确的是
Swing在不同的操作系统中显⽰相同的风格
100、关于Java中的ClassLoader下⾯的哪些描述是正确的
默认情况下,Java应⽤启动过程涉及三个ClassLoader: Boostrap, Extension, System
类装载器需要保证类装载过程的线程安全
ClassLoader的⽗⼦结构中,默认装载采⽤了⽗优先


发布评论