1
2
3
4
5
6
7
8
9
|
Boolean flag =
false
;
if
(flag =
true
)
{
System.out.println(“
true
”);
}
else
{
System.out.println(“
false
”);
}
|
正确答案: C 你的答案: A (错误)
The code fails to compile at the “if” statement.
An exception is thrown at run-time at the “if” statement.
The text“true” is displayed.
The text“false”is displayed.
Nothing is displayed.
解析:Boolean修饰的变量为包装类型,初始化值为false,进行赋值时会调用Boolean.valueOf(boolean b)方法自动拆箱为基本数据类型,因此赋值后flag值为true,输出文本true。 如果使用==比较,则输出文本false。if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值。if判断的是赋值语句是否正确!
正确答案: A 你的答案: C (错误)
管道
消息队列
高速缓存数据库
套接字
②流管道(s_pipe):去除了上述的第一种限制,实现了双向传输。
![](https://i-blog.csdnimg.cn/blog_migrate/261b0e1227770f91061bb232e628c8b5.png)
设有下面两个赋值语句:
a = Integer.parseInt("1024");
b = Integer.valueOf("1024").intValue();
下述说法正确的是()正确答案: D 你的答案: A (错误)
a是整数类型变量,b是整数类对象。
a是整数类对象,b是整数类型变量。
a和b都是整数类对象并且它们的值相等。
a和b都是整数类型变量并且它们的值相等。
parseInt()是把String 变成int 的基础数据类型;
Valueof()是把String 转化成Integer 对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D
正确答案: B 你的答案: A (错误)
对
错
正确答案: D 你的答案: B (错误)
Java致力于检查程序在编译和运行时的错误
Java能运行虚拟机实现跨平台
Java自己操纵内存减少了内存出错的可能性
Java还实现了真数组,避免了覆盖数据类型的可能
正确答案: B 你的答案: C (错误)
HashMap使用键/值得形式保存数据
HashMap 能够保证其中元素的顺序
HashMap允许将null用作键
HashMap允许将null用作值
HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null
Hashtable不能将键和值设为null,否则运行时会报空指针异常错误
HashMap线程不安全,Hashtable线程安全
正确答案: D 你的答案: C (错误)
spring是一个轻量级JAVA EE的框架集合
spring是“依赖注入”模式的实现
使用spring可以实现声明事务
spring提供了AOP方式的日志系统
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。
Spring通过对AOP的支持,借助log4j等Apache开源组件实现了日志系统。
正确答案: B D 你的答案: A C (错误)
Collection是java.util下的类,它包含有各种有关集合操作的静态方法
Collection是java.util下的接口,它是各种集合结构的父接口
Collections是java.util下的接口,它是各种集合结构的父接口
Collections是java.util下的类,它包含有各种有关集合操作的静态方法
public
interface
Collection<E>
extends
Iterable<E>
{ Collection接口继承了Iterable 接口 }
public
class
Collections {
private
Collections() {
}
}
正确答案: A C 你的答案: A D (错误)
private
public
protected
static
在Jdk1.7中,下述说法中抽象类与接口的区别正确的有哪些?
|
正确答案: A B C D 你的答案: A C D (错误)
抽象类中可以有普通成员变量,接口中没有普通成员变量。
抽象类和接口中都可以包含静态成员常量。
一个类可以实现多个接口,但只能继承一个抽象类
抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。
正确答案: A 你的答案: A B D (错误)
run()
start()
sleep()
suspend()
选A,start是启动线程对象,使之从新建状态转入就绪状态;sleep让线程睡眠一段时间,在此期间线程不消耗CPU资源;suspend使线程挂起,暂停执行, 如果想恢复线程,必须由其他线程调用 resume方法。
正确答案: C 你的答案: B (错误)
依赖注入能够独立开发各组件,然后根据组件间关系进行组装
依赖注入提供使用接口编程
依赖注入使组件之间相互依赖,相互制约
依赖注入指对象在使用时动态注入
依赖注入目的是减少组件之间的耦合度,使开发变得简单。
正确答案: A 你的答案: D (错误)
该页面可以使用 exception 对象
该页面发生异常会转向 error.jsp
存在 errorPage 属性时,isErrorPage 是默认为 false
error.jsp 页面一定要有isErrorPage 属性且值为 true
正确答案: C 你的答案: B (错误)
Java应用程序
Hibernate
数据库系统
JDBC驱动程序
正确答案: B 你的答案: A (错误)
JApplet
JTree
JDialog
JFrame
顶层容器是指可以不能被其他容器包含 ,是容纳其他容器的容器组件 ,
顶层容器包含 JApplet、JDialog、JFrame和JWindow 及其子类.
JFrame中就可以放Jtree(树形组件)
正确答案: B 你的答案: A (错误)
JApplet
JTree
JDialog
JFrame
正确答案: C 你的答案: A (错误)
堆
栈
字符串常量区
寄存器
正确答案: D 你的答案: A (错误)
ConcurrentHashMap使用synchronized关键字保证线程安全
HashMap实现了Collction接口
Array.asList方法返回java.util.ArrayList对象
SimpleDateFormat是线程不安全的
ConcurrentHashMap 使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全。
Arrays.asList(),其将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的内部类:
正确答案: A B D E 你的答案: D E (错误)
float f[][] = new float[6][6];
float []f[] = new float[6][6];
float f[][] = new float[][6];
float [][]f = new float[6][6];
float [][]f = new float[6][];
正确答案: B C F 你的答案: C (错误)
char a[][];
String a[];
String[] a;
Object a[50];
String a[50];
Object a[];
以下哪个方法用于定义线程的执行体? ( )
正确答案: C 你的答案: A (错误)
start()
init()
run()
synchronized()
start()是线程开始执行
run()才是定义线程内部执行的方法
导出类调用基类的构造器必须用到的关键字: ( )
正确答案: C 你的答案: D (错误)
this
final
super
static
基类就是父类,导出类就是子类。
正确答案: B 你的答案: A (错误)
不执行finally代码
return前执行
return后执行
正确答案: B 你的答案: A (错误)
对
错
不要把函数重载理解为多态,因为多态是一种运行期行为,不是编译器行为。
多态:父类的引用指向子类的实例。
比如 Parent p = new Child()
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;
如果有,再去调用子类的同名方法。
静态方法特殊,静态方法只能继承,不能覆盖,如果子类有和父类相同的静态方法,只是起到隐藏父类方法的作用。这时候,谁的引用就调用谁的方法。
正确答案: D 你的答案: A (错误)
Serial收集器
parNew收集器
CMS收集器
G1收集器
![](https://i-blog.csdnimg.cn/blog_migrate/054f5bdf6d05135b006e011907bb011d.png)
正确答案: C D 你的答案: B C D (错误)
throw关键字可以在方法上声明该方法要抛出的异常。
throws用于抛出异常对象。
try是用于检测被包住的语句块是否出现异常,如果有异常,则捕获异常,并执行catch语句。
finally语句块是不管有没有出现异常都要执行的内容。
在try块中不可以抛出异常
正确答案: A D E 你的答案: D (错误)
Vector
HashMap
ArrayList
StringBuffer
Properties
有一个源代码,只包含import java.util.* ; 这一个import语句,下面叙述正确的是? ( )
正确答案: C 你的答案: B (错误)
只能写在源代码的第一句
可以访问java/util目录下及其子目录下的所有类
能访问java/util目录下的所有类,不能访问java/util子目录下的所有类
编译错误
导入java.util.*不能读取其子目录的类,因为如果java.util里面有个a类,java.util.regex里面也有个a类,我们若是要调用a类的方法或属性时,应该使用哪个a类呢。所以也应该选C
正确答案: C 你的答案: D (错误)
总是采用UTF-8编码
总是采用lS08859-1编码
由客户端浏览器和Web容器配置共同决定编码
由服务器所在的操作系统决定编码
浏览器根据html中指定的编码格式进行编码,tomcat根据指定的格式进行解码,另外get请求和post请求对编码格式的处理也是不同的
正确答案: D 你的答案: B (错误)
(float)-8.0
(long)-9
(long)-8
(double)-9.0
1
2
3
4
5
6
7
8
9
10
11
|
public
class
Bground
extends
Thread{
public
static
void
main(String argv[]){
Bground b =
new
Bground();
b.run();
}
public
void
start(){
for
(
int
i=
0
;i<
10
;i++){
System.out.println(
"Value of i = "
+i);
}
}
}
|
正确答案: D 你的答案: A (错误)
编译错误,指明run方法没有定义
运行错误,只鞥呢run方法没有定义
编译通过并输出0到9
编译通过,但无输出
首先继承Thread,然后调用run方法,bgroud并没有重写run方法,那么就是调用父类Thread的run方法。
正确答案: C 你的答案: D (错误)
MouseMotionListener
FocusListener
WindowsListener
ActionListener
在单行文本输入区(Textfield)构件上可能发生的事件包括FocusEvent焦点事件,所对应的事件监听器是FocusListener;ActionEvent动作事件,所对应的事件监听器是ActionListener;MouseEvent鼠标事件,所对应的事件监听器是MouseMotionListener;
正确答案: C 你的答案: C (正确)
程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的
原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。
正确答案: C 你的答案: C (正确)
HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。
HashMap 的实现不是同步的,意味着它不是线程安全的
HashMap通过开放地址法解决哈希冲突
HashMap中的key-value都是存储在Entry数组中的
记住 hashmap采用拉链法解决冲突
正确答案: D E 你的答案: A B E (错误)
ThreadLocal继承自Thread
ThreadLocal实现了Runnable接口
ThreadLocal重要作用在于多线程间的数据共享
ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏
1
2
3
4
5
6
7
8
9
10
11
12
|
package
test;
import
java.util.Date;
public
class
SuperTest
extends
Date{
private
static
final
long
serialVersionUID = 1L;
private
void
test(){
System.out.println(
super
.getClass().getName());
}
public
static
void
main(String[]args){
new
SuperTest().test();
}
}
|
正确答案: C 你的答案: A (错误)
SuperTest
SuperTest.class
test.SuperTest
test.SuperTest.class
super.getClass().getName()
返回的是test.SuperTest,与Date类无关
正确答案: A B C D 你的答案: A C D (错误)
不管 try 语句块正常结束还是异常结束,finally语句块都是要被执行的
在try语句块或catch语句块中执行到System.exit(0)直接退出程序
finally块中的return语句会覆盖try块中的return返回
finally 语句块在 catch语句块中的return语句之前执行
System.exit(0)。表示将整个虚拟机里的内容都释放,JVM停止工作,此时程序正常退出;
如果try语句里有return,那么代码的行为如下:
1.如果有返回值,就把返回值保存到局部变量中
2.执行jsr指令跳到finally语句里执行
3.执行完finally语句后,返回之前保存在局部变量表里的值
如果try,finally语句里均有return,忽略try的return,而使用finally的return.
正确答案: B C D 你的答案: A B C D (错误)
类(Class)
Applet
Application
Servlet
Java程序的种类有:
(a)内嵌于Web文件中,由浏览器来观看的Applet
(b)可独立运行的 Application
(c)服务器端的 Servlet
对于子类的构造函数说明,下列叙述中错误的是( )。
正确答案: D 你的答案: A (错误)
子类不能继承父类的无参构造函数。
子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。
在创建子类的对象时,若不含带参构造函数,将先执行父类的无参构造函数,然后再执行自己的无参构造函数。
子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
构造函数不能被继承,构造方法只能被显式或隐式的调用。
正确答案: D 你的答案: B (错误)
servlet处于服务器进程中,它通过多线程方式运行其service方法
CGI对每个请求都产生新的进程,服务完成后就销毁
servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等
cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi
servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
1
2
3
4
|
int
i=
0
;
Integer j =
new
Integer(
0
);
System.out.println(i==j);
System.out.println(j.equals(i));
|
正确答案: B 你的答案: C (错误)
true,false
true,true
false,true
false,false
对于不同的环境结果不同
程序无法执行
1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true;
2、两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。
3、两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true
4、基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3中的比较。
正确答案: C D 你的答案: A (错误)
c++虚类相当与java里面的抽象类
c++中没有接口的概念,与之对应的是纯虚类,对应的是java的接口
纯虚函数和虚函数的区别在于前者只包含定义,而后者还可以包含函数体。
一个抽象类和接口中的方法必须是抽象方法
1、一个子类只能继承一个抽象类(虚类),但能实现多个接口; 2、一个抽象类可以有构造方法,接口没有构造方法; 3、一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方法体),接口中的方法都是抽象方法,不能有方法体,只有声明; 4、一个抽象类可以是public、private、protected、default, 接口只有public; 5、一个抽象类中的方法可以是public、private、protected、default, 接口中的方法只能是public和default虚virtual;纯虚=0