异步调用
同步的两种方式:同步块和同步方法
对于同步来说都是使用synchronized方法
每一个对象都有一个监视器,或者叫做锁。
下面哪些属于JSP内置对象及方法?
正确答案: A B C D 你的答案: A C (错误)
request
out
application
config
JSP内置对象有:
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
下面的代码运行的结果是:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
class
B
extends
Object
{
static
{
System.out.println(
"Load B"
);
}
public
B()
{
System.out.println(
"Create B"
);
}
}
class
A
extends
B
{
static
{
System.out.println(
"Load A"
);
}
public
A()
{
System.out.println(
"Create A"
);
}
}
public
class
Testclass
{
public
static
void
main(String[] args)
{
new
A();
}
}
正确答案: B 你的答案: D (错误) “静态初始化块 ”先于 “非静态初始化” 先于 “构造函数执行” 下面有关java object默认的基本方法,说法错误的是? Object中没有copy方法,是clone |
java中下面哪个能创建并启动线程()
public class MyRunnable implements Runnable {
public void run() {
//some code here
}
}
正确答案: C 你的答案: D (错误)
new Runnable(MyRunnable).start()
new Thread(MyRunnable).run()
new Thread(new MyRunnable()).start()
new MyRunnable().start()
1
Web程序中,当前用户上下文信息应该保存在下面哪个对象中()
正确答案: C 你的答案: B (错误)
page
request
session
Application
重点在 当前用户
JSP 四大作用域: page
(作用范围最小)、request
、session
、application
(作用范围最大)。
application
对象中的属性可以被同一个WEB应用程序中的所有Servlet和JSP页面访问。(属性作用范围最大)session
对象中的属性可以被属于同一个会话(浏览器打开直到关闭称为一次会话,且在此期间会话不失效)的所有Servlet和JSP页面访问。request
对象中的属性可以被属于同一个请求的所有Servlet和JSP页面访问(在有转发的情况下可以跨页面获取属性值),例如使用PageContext.forward和PageContext.include方法连接起来的多个Servlet和JSP页面。pageContext
对象中的属性仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类。编译失败
静态变量只能在类主体中定义,不能在方法中定义
线程安全的map在JDK 1.5及其更高版本环境 有哪几种方法可以实现?
正确答案: C D 你的答案: A B C D (错误)
Map map = new HashMap()
Map map = new TreeMap()
Map map = new ConcurrentHashMap();
Map map = Collections.synchronizedMap(new HashMap());
1. HashMap,TreeMap 未进行同步考虑,是线程不安全的。
2. HashTable 和 ConcurrentHashMap 都是线程安全的。区别在于他们对加锁的范围不同,HashTable 对整张Hash表进行加锁,而ConcurrentHashMap将Hash表分为16桶(segment),每次只对需要的桶进行加锁。
3. Collections 类提供了synchronizedXxx()方法,可以将指定的集合包装成线程同步的集合。比如,
List list = Collections.synchronizedList(new ArrayList());
Set set = Collections.synchronizedSet(new HashSet());
JAVA反射机制主要提供了以下哪些功能?
正确答案: A B C D 你的答案: A B D (错误)
在运行时判断一个对象所属的类
在运行时构造一个类的对象
在运行时判断一个类所具有的成员变量和方法
在运行时调用一个对象的方法
下面有关JAVA swing的描述,说法错误的是?
正确答案: C 你的答案: C (正确)
Swing是一个基于Java的跨平台MVC框架。使用单线程模式。
Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的
Swing优化了AWT,运行速度比AWT快
Swing是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的
Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。
下面这三条语句
System.out.println(“is ”+ 100 + 5);
System.out.println(100 + 5 +“ is”);
System.out.println(“is ”+ (100 + 5));
的输出结果分别是? ( )
正确答案: D 你的答案: B (错误)
is 1005, 1005 is, is 1005
is 105, 105 is, is 105
is 1005, 1005 is, is 105
is 1005, 105 is, is 105
1."is"说明后面的内容都会被强制转换为string,所以是最后结果是拼接起来的
2.100+5先得到105,然后与is拼接
3.先算括号内的
ArrayList list = new ArrayList(20);中的list扩充几次
正确答案: A 你的答案: B (错误)
0
1
2
3
ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍
ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,没有扩充
下列说法正确的有( )
正确答案: A C D 你的答案: C (错误)
环境变量可在编译source code时指定
在编译程序时,所能指定的环境变量不包括class path
javac一次可同时编译数个Java源文件
javac.exe能指定编译结果要置于哪个目录(directory)
a选项-d即可设置系统属性
c选项一次编译多个java文件用javac *.java. 即可编译当前目录下的所有java文件
d选项-s指定存放生成的源文件的位置
下面关于垃圾收集的描述哪个是错误的?
正确答案: D 你的答案: C (错误)
使用垃圾收集的程序不需要明确释放对象
现代垃圾收集能够处理循环引用问题
垃圾收集能提高程序员效率
使用垃圾收集的语言没有内在泄漏问题
也会有内存泄露问题,例如访问资源文件,流不关闭,访问数据库等连接不关闭
What will be printed when you execute the following code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
class
C {
C() {
System.out.print(
"C"
);
}
}
class
A {
C c = new C();
A() {
this
(
"A"
);
System.out.print(
"A"
);
}
A(String s) {
System.out.print(s);
}
}
class
Test
extends
A {
Test() {
super
(
"B"
);
System.out.print(
"B"
);
}
public
static
void
main(String[] args) {
new
Test();
}
}
|
正确答案: B 你的答案: A (错误) 首先new了一个子类对象,那么就要调用构造方法来初始化该子类对象,但是该类继承自A,所以要先调用父类的构造方法,这里通过super("B")显示的调用了父类的带参构造。执行父类的带参构造前要先对父类中的对象进行初始化,对父类中的c成员进行初始化,调用了C类的无参构造,所以调用顺序为: 一个Java源程序文件中定义几个类和接口,则编译该文件后生成几个以.class为后缀的字节码文件。 下面有关 JAVA 异常类的描述,说法正确的有() 都是Throwable的子类: 这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。 要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( ) 下面有关java内存模型的描述,说法错误的是? D.final只是指向不变,但是指向的值有可能变,所以依然不是线程安全 下列关于容器集合类的说法正确的是? a选项linkedlist类是实现了List接口,而不是继承 以下集合对象中哪几个是线程安全的?( ) 线程同步:喂,SHE 在Web应用程序的文件与目录结构中,web.xml是放置在( )中。 下面有关List接口、Set接口和Map接口的描述,错误的是? Map接口和Collection接口是同一等级的 It is an important feature of the Java language that it always provides a default constructor to a class. 题目:总是为一个类提供了一个默认的构造函数是Java语言的一个重要特性 。 以下说法错误的是() B选项,在java中线程是有分优先等级的所以优先级不能相同,错误 Java的跨平台特性是指它的源代码可以在多个平台运行。() Java的跨平台特性是因为JVM的存在, 它可以执行.class字节码文件,而不是.java源代码 下列关于计算机系统和Java编程语言的说法,正确的是() 并不一定要安装操作系统,直接操作寄存器就可以了,操作系统不是必须的 请问所有的异常类皆直接继承于哪一个类?() 以下J2EE中常用的名词解释错误的是? JNDI:Java Naming and Directory Interface,Java命名和目录接口。 下列程序的运行结果
正确答案: A 你的答案: C (错误) 题目说抛出一个异常,但是没说具体是什么异常,那么就要分情况了: 下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换: String没有decode和encode方法 Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串。比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市。正则表达式为()
Why would a responsible Java programmer want to use a nested class? A说的是使代码更紧凑。 有以下程序段, 则下面正确的选项是()
正确答案: B C D 你的答案: B C (错误)编译失败 程序运行可能结果为: one. Thread two. Thread 程序运行可能结果是: one. two. Thread Thread 程序运行结果不稳定
class A {}
class B extends A {} class C extends A {} class D extends B {} Which four statements are true ? 正确答案: A C D G 你的答案: 空 (错误)The type Listis assignable to List. The type Listis assignable to List. The type List The type List The type Listis assignable to List. The type List The type Listis assignable to List.
1. 只看尖括号里边的!!明确点和范围两个概念
2. 如果尖括号里的是一个类,那么尖括号里的就是一个点,比如List,List,List
3. 如果尖括号里面带有问号,那么代表一个范围,
extends A> 代表小于等于A的范围, super A>代表大于等于A的范围,>代表全部范围
4.
尖括号里的所有点之间互相赋值都是错,除非是俩相同的点
5.
尖括号小范围赋值给大范围,对
,大范围赋值给小范围,错。如果某点包含在某个范围里,那么可以赋值,否则,不能赋值
6.
List>和List 是相等的,都代表最大范围
----------------------------------------------------------------------------------
7.补充:List既是点也是范围,当表示范围时,表示最大范围
|