Java错题合集(7)
1、与InputStream流相对应的Java系统的“标准输入对象”是
System.in
3、字符界面下接受用户从键盘输入,需要import的包是
java.io包
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、Math.floor(-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,说法正确的是
java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
22、在Java中,说法正确的有
数组是一种对象
23、对于线程局部存储TLS(thread local storage),表述正确的是
解决多线程中的对同一变量的访问冲突的一种技术
TLS会为每一个线程维护一个和该线程绑定的变量的副本
Java平台的java.lang.ThreadLocal是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触发的条件可能有哪些
老年代满
持久代满
System.gc()
43、下列容器中,哪些容器按 key 查找的复杂度为 O(log(n))
std::multimap
std::map
44、以下类型为Final类型的为
StringBuffer
String
45、那个数据结构是适用于"数据必须以相反的顺序存储然后检索" ?
Stack
46、在Java中,以下关于方法重载和方法重写描述正确的是
方法重写的返回值类型必须相同或相容。(或是其子类)
47、以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574
/^(http:\/\/)?(\w+)\.bilibili\.com\/?video\/av(\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?
两个或一个都有可能
解析:
1.String对象的两种创建方式:
第一种方式: String str1 = "aaa"; 是在常量池中获取对象("aaa" 属于字符串字面量,因此编译时期会在常量池中创建一个字符串对象),
第二种方式: String str2 = new String("aaa") ; 一共会创建两个字符串对象一个在堆中,一个在常量池中(前提是常量池中还没有 "aaa" 字符串对象)。
System.out.println(str1==str2);//false
2.String类型的常量池比较特殊。它的主要使用方法有两种:
直接使用双引号声明出来的String对象会直接存储在常量池中。
如果不是用双引号声明的String对象,可以使用 String 提供的 intern 方法。 String.intern() 是一个 Native 方法,它的作用是: 如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用; 如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。
String s1 = new String("AAA");
String s2 = s1.intern();
String s3 = "AAA";
System.out.println(s2);//AAA
System.out.println(s1 == s2);//false,因为一个是堆内存中的String对象一个是常量池中的String对象,
System.out.println(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、Java.Thread的方法resume()负责重新开始被以下哪个方法中断的线程的执行
suspend
59、下面有关 JAVA 异常类的描述,说法正确的有
异常的继承结构:基类为 Throwable,Error 和 Exception 。实现 Throwable, RuntimeException 和 IOException 等继承 Exception
非 RuntimeException 一般是外部错误(不考虑Error的情况下),其可以在当前类被 try{}catch 语句块所捕获
Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
60、与InputStream流相对应的Java系统的“标准输入对象”是
System.in
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进制表示为:0Xf000000000000000; 变量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触发的条件可能有哪些
老年代满
持久代满
System.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是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的
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语句块中执行到System.exit(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、哪些是加载驱动程序的方法
调用方法 Class.forName
通过添加系统的jdbc.drivers属性
通过registerDriver方法注册
99、关于AWT和Swing说法正确的是
Swing在不同的操作系统中显示相同的风格
100、关于Java中的ClassLoader下面的哪些描述是正确的
默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, System
类装载器需要保证类装载过程的线程安全
ClassLoader的父子结构中,默认装载采用了父优先

浙公网安备 33010602011771号