完美时空 java 笔试题(精选8篇)
1.完美时空 java 笔试题 篇一
JAVA的基础知识笔试题分享:
1)、String是最基本的数据类型吗?
基本数据类型包括byte、int、char、long、float、double、boolean和short,
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
2)、int 和 Integer 有什么区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
3)、面向对象的特征有哪些方面
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节,
抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2.Android Java笔试题 篇二
不能
2、什么是java序列化,如何实现java序列化?
序列化是一种处理对象流的机制 是为了解决在对对象流进行读写操作时所引发的问题
使用serializeae关键字 使用一个输出流构造一个对象流流对象 然后使用对象流对象的writeObject就可以将参数为obj的对象写出
3、Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
可以
4、ArrayList和Vector的区别,HashMap和Hashtable的区别?
Vector线程安全 增长时涨一倍 arraylist涨一半
Hashtable线程安全 hashmap可以用空值作为键值
5、请写一段程序实现冒泡排序法。
Public static maopao(int data){
Int temp;
For(int i=0;i
For(int j=i+1;j
If(data[i]
Temp = data[i];
Data[i] = data[j];
Data[j] = temp;
}
}
Return data;
3.java程序员笔试题 篇三
Java程序员笔试题
一、单项选择题(共10题,每题2分,共20分)
1.下列说法哪一个是正确的。(B)
A.Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code
C.Java程序经编译后会产生DLL
D.以上都不正确
2.提供Java存取数据库能力的包是。(A)
A.java.sqlB.java.awtC.java.langD.java.swing
3.执行如下程序代码后,C的值是。(C)
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
A.0B.1C.-1D.死循环
4.下面的语句中正确的表达式为。(C)
A.byte b = 128;
B.boolean n = null;
C.double d = 0.9239d;
D.float f = 0.9239;
5.将一个十六进制值赋给一个long型变量的正确写法为。(D
A.long number = 345L;
B.long number = 0345;
C.long number = 0345L;
D.long number = 0x345L;
6.以下程序代码的输出是。(B)
public class test(public static void main(String args[])(System.out.printIn(6 ^ 3);))
A.3B.5C.6D.11
7.以下程序代码的输出是。(E)
public class test(private static int j = 0;
private static boolean methodB(int k)(j += k;)
return true;)
public static void methodA(int i){
boolean b:
b = i < 10 | methodB(4);
b = i < 10 || methodB(8);)
public static void main(String args[] }(methodA(0);
system.out.printIn(j);))
A.0B.4C.8D.12E.不能编译通过
8.以下程序代码的输出是。(A)
public class test {
public static void add3(Integer i)}
int val = i.intValue();
val += 3;
i = new Integer(val);
}
public static void main(String args [ ]){
Integer i = new Integer(0);
add3(i);
system.out.printIn(i.intValue());
})
A.编译失败B.编译成功但在第三行会出现异常
9.以下程序代码执行后,哪个说法正确?(B)
int index = 1;
boolean[] test = new Boolean[3];
boolean foo= test [index];
A.有异常抛出。
B.无法编译。
C.foo的值是0。
D.foo的值是null。
E.foo的值是true。
F.foo的值是false。
10.以下哪个类是swt包中的。(D)
A.MessageBoxB.MessageDialogC.JDialog
C.0D.3 D.DisplayMode
二、多项选择题(共5题,每题4分,共20分)
1.在下面的选项中合法的标识符有。(ADEF)
A._ok
B.*point
C.this
D.$byte
E.const
F.ILikeJLCSS
2.下面的选项中哪些不是java的关键字。(AB D)
A.TRUE
B.sizeof
C.goto
D.const
E.super
F.void
3.下面的叙述中正确的有。(AC)
A. 环境变量可在编译source code时指定。
B. 在编译程序时,所能指定的环境变量不包括class path。
C. javac一次可同时编译数个Java源文件。
D. javac.exe能指定编译结果要置于哪个目录(directory)。
4.下面的叙述中正确的有。(C)
A.equals()方法判定引用值是否指向同一对象。
B.= = 操作符判定两个分立的对象的内容和类型是否一致。
C.equals()方法只有在两个对象的内容一致时返回true。
D.类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。
5.下面有关变量及其作用域的陈述哪些是对的。(A C)
A.在方法里面定义的局部变量在方法退出的时候被撤销。
B.局部变量也叫自动变量。
C.在方法外面定义的变量(译注:即实例变量)在对象被构造时创建。
D.在方法中定义的方法的参变量只要该对象被需要就一直存在。
三、简答题(共7题,共40分)
1.请写出一个输出“Hello World!” 的程序。(3分)
答:public Class Hello World
{
Public static void main(String[]args)
{System.out.println(“HELLO WOTLD”);
}
}
2.char型变量中能不能存贮一个中文汉字? 为什么?(3分)
答:能存储一个汉字;因为它能存储四个字节而每个汉字只占两个字节。
3.常见的两种xml解析技术是什么? 区别是什么?(4分)
答:常见的两种有:SAX和DOM。
区别:SAX 是一种事件驱动的xml解析方式。每次访问一个xml文件中的某个节点的时候,sax就会搜索一遍xml文件,在找到相应的节点后就会触发一个事件来处理请求。只读
DOM是一种基于树状的查找方式。DOM会将xml解析成一棵树,存在内存中。开发者可以通过查找树的节点来取得文件的内容或者修改内容。可读写
4.MVC是什么,如何实现?(5分)
答:MVC是一个是一个设计模式,它强制性的使应用程序的输入,处理和输出分开。
使用MVC应用程序被分为三个核心部件:M----------MODO模型,V----------VIEW试图,C---------Contral控制
实现:首先有页面(jsp)发送请求给控制器(servlet),然后由控制器接收用户的请求,并决定应该调用哪个模型(javabean)来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层显示给用户。
5..J2EE是什么?(6分)
答:J2EE 是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
6.jsp有哪些内置对象?作用分别是什么?(9分)
答:1.request 用户端请求,此请求会包含来自GET/POST请求的参数;2.response 网页传回用户端的回应;3.pageContext 网页的属性是在这里管理;4.session 与请求有关的会话期;5.application servlet 正在执行的内容;6.out 用来传送回应的输出;7.config servlet的构架部件;8.page JSP网页本身;9.exception 针对错误网页,未捕捉的例外
7.作用域public,private,protected,以及不写时的区别 ?(10分)
答:作用域当前类同一package子孙类其他package
public√√√√
protected√√√×
friendly√√××
private√×××
不写时默认为friendly
四、编码及论述题(共2题,每题10分,共20分)
1.什么是Singleton,它的作用是什么,它有几种形式?请用代码写出一个Singleton类。
答:Java Singleton 模式用来保证在运行的应用程序中,一个Class只是实例化一次,也就是只有一个相应的对象存在。
它有三种形式
public class Singleton
{
private static Singleton instance = null;
public static synchronized Singleton getInstance()
{
if(instance==null)
instance=new Singleton();
return instance;
}
}
4.Java开发工程师笔试题 篇四
一、单项选择题(每题2分,共计30分)
1.下列哪一种叙述是正确的(A).abstract修饰符可修饰字段、方法和类
(B).抽象方法的body部分必须用一对大括号{}包住
(C).声明抽象方法,大括号可有可无
(D).声明抽象方法不可写出大括号
2.如下代码
public class Test {
public int aMethod(){
static int i = 0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
输出结果是什么?
(A).0
(B).1
(C).2
(D).编译失败
3.以下代码的输出结果是()?
public class Test1{
public static void main(String[] args){int i = 42;
String s =(i < 40)? “life” :(i > 50)? “universe” : “everything”;System.out.println(s);
}
}
(A).life
(B).universe
(C).everything
(D).以上答案都不对。
4.当你编译和运行下面的代码时,会出现下面选项中的哪种情况?
public class Test{
static boolean paddy;
public static void main(String[] args){
System.out.println(paddy);
}
}
(A).编译时出错
(B).编译通过并输出结果false
(C).编译通过并输出结果true
(D).编译通过并输出结果null
5.如下代码:
class Base {
public Base(){
System.out.print(“Base”);
}
}
public class Alpha extends Base {
public static void main(String[] args){
new Alpha();
new Base();
}
}
结果是什么?
(A).Base
(B).BaseBase
(C).编译失败.(D).代码运行但没有输出.(E).运行时抛出异常
6.如下代码:
public class Foo {
public static void main(String[] args){
try {
return;
} finally {
System.out.println(“Finally”);
}
}
}
输出结果是什么?
(A).Finally
(B).编译失败
(C).代码正常运行但没有任何输出.(D).运行时抛出异常
7.下列关于构造方法的叙述中,错误的是()
(A).Java语言规定构造方法名与类名必须相同
(B).Java语言规定构造方法没有返回值,但不用vold声明
(C).Java语言规定构造方法不可以重载
(D).Java语言规定构造方法只能通过new自动调用
8.构造函数何时被调用()
(A).类定义时
(B).创建对象时
(C).调用对象方法时
(D).使用对象的变量时
9.JDBC中,用于表示数据库连接的对象是:
(A).Statement
(B).Connection
(C).DriverManager
(D).PreparedStatement
10.需要读一个比较大的文本文件,这个文件里有很多字节数据,那么下列最合适读这
类文件的选项是哪一个?
(A).new FileInputStream(“myfile.txt”);
(B).new InputStreamReader(new FileInputStream(“myfile.txt”));
(C).new BufferedReader(new InputStreamReader(new FileInputStream(“myfile.txt”)));
(D).RandomAccessFile raf = new RandomAccessFile(“myfile.txt”, “+rw”);
11.在List,Map,Set等接口中,不能包含重复元素的接口是哪一个?
(A).List
(B).Map
(C).Set
(D).都不是
12.有如下程序:
1.classTest4{
2.public static void main(String []args){
3.boolean x=;
4.boolean y=false;
5.short z=42;
6.7.if((z++==42)&&(y=true))z++;8.if((x=false)||(++z==45))z++;9. 10.System.out.println(“z=”+z);11.} 12.} 结果为:
(A).44
(B).45
(C).46
(D).编译出错
13.有如下程序
11.public class Test {
12.public static void main(String [] args){
13.int x =5;
14.boolean b1 = true;
15.boolean b2 = false;
16.17.if((x==4)&&!b2)
18.System.out.print(“l ”);
19.System.out.print(“2 ”);
20.if((b2 = true)&& b1)
21.System.out.print(“3”);
22.}
23.}
运行的结果为:
(A).2
(B).3
(C).1 2
(D).2 3
(E).1 2 3
(F).编译错误
(G).抛出一个运行时异常
14.以下语句有语法错的是:
(A).int x=1;y=2;z=3
(B).for(int x=10,y=0;x>0;x++);
(C).while(x>5);
(D).for(;;);
15.下面有关类 Demo 的描述正确的有()
public class Demo extends Base{
private int count;
public Demo(){
System.out.println(“A Demo object has been created”);
}
protected void assone(){
count++;
}
}
(A).当创建一个 Demo 类的实例对象时,count 的值为 0
(B).当创建一个 Demo 类的实例对象时,count 的值是不确定的(C).Base 类型的对象中可以包含改变 count 值的方法
(D).Demo 的子类对象可以访问 count
二、1.2.3.4.5.问答题(每题5分,共计25分)String是最基本的数据类型吗? String 和StringBuffer的区别? Java中的“==”和equals()方法有什么区别? 描述一下JSP中转发和重定向的区别? 请说出作用域public,private,protected,以及不写时的区别? List, Set, Map是否继承自Collection接口?分别说出它们的特点?
三、编程题(每题15分,共计45分)
1.已知有一个数列:f(0)= 1,f(1)= 4,f(n+2)=2*f(n+1)+ f(n),其中n是大于0的整数,求f(10)的值。
2.写一个算法对1,8,5,2,4,9,7进行顺序排列。
5.完美时空 java 笔试题 篇五
本题主要考查了选项中出现的几种树的结构特点。对于选项A,根据二叉排序树的结构特点我们可以知道,二叉排序树的中序遍历结果是一个有序序列,而在中序遍历中,父结点并不总是出现在孩子结点的前面(或后面),故该选项不正确。例如我们用关键字5,2,3建立一棵二叉排序树,则从结点3出发到根的路径上所经过的结点序列为3,2,5,并不是一个有序的序列。对于选项B,赫夫曼树在后续的章节中会介绍,根据赫夫曼树的结构特点我们可以知道,在赫夫曼树中所有的关键字只出现在叶结点上,其非叶结点上并没有关键字值,显然不正确。对于选项C,AVL树其本质上也是一种二叉排序树,只不过是平衡化之后的二叉排序树,故该选项也是不正确的。例如我们用序列5,1,8,6,9建立一棵AVL树,从结点6出发到根的路径上所经过的结点序列为6,8,5,也不是一个有序的序列。对于选项D,堆的概念我们会在堆排序中给大家介绍,根据建堆的过程,不断地把大者“上浮”,将小者“筛选”下去,最终得到的正是一个从任一结点出发到根的路径上所经过的结点序列按其关键字有序的树状结构,故D是正确的。本题中的A和C同时出现,没有起到干扰的作用,因为AVL树和二叉排序树只是在平衡性上有区别,在结点的排列方式上没有区别。
下面关于线程的叙述中,正确的是()。正确答案: C 你的答案: D(错误)不论是系统支持线程还是用户级线程,其切换都需要内核的支持 线程是资源的分配单位,进程是调度和分配的单位 不管系统中是否有线程,进程都是拥有资源的独立单位 在引入线程的系统中,进程仍是资源分配和调度分派的基本单位 A:用户级线程,切换时不需要内核的支持
B:线程是资源调度和分配的单位,进程是资源拥有的单位 C:对
D:引入线程后,线程才是资源分配和调度分派的基本单位
在引入线程前,进程的两个基本属性是:1.可拥有资源的独立单位。2.可独立调度和分配的基本单位。
后来为了使多个程序更好的并发执行,人们把上述两个属性分开,引入线程作为可独立调度和分配的基本单位。
一条tcp连接,主动关闭的一方不可能出现的连接状态是()正确答案: A 你的答案: A(正确)CLOSE_WAIT FIN_WAIT2 TIME_WAIT FIN_WAIT1
1)当客户端没有主动close的时候就断开连接,即客户端发送的fin丢失或者失败: 1:这时候若客户端断开的时候发送了FIN包,则服务端将会处于CLOSE_WAIT状态;2:
这时候若客户端断开的时候未发送FIN包,则服务端处还是显示ESTABLISHED状态
2)当client想要关闭它与server之间的连接。client(某个应用进程)首先调用 close 主动关闭连接,这时TCP发送一个FIN M;client端处于 FIN_WAIT1 状态。
3)当server端接收到FIN M之后,执行被动关闭。对这个FIN进行确认,返回给client ACK。当server端返回给client ACK后,client处于 FIN_WAIT2 状态,server处于 CLOSE_WAIT 状态。它的接收也作为文件结束符传递给应用进程,因为FIN的接收
意味着应用进程在相应的连接上再也接收不到额外数据; 4)一段时间之后,当server端检测到client端的关闭操作(read返回为0)。接收到文件结束符的server端调用close 关闭它的socket。这导致server端的TCP也发送一个FIN N;此时server的状态为last——ack.5)当client收到来自server的FIN后。client端的套接字处于 TIME_WAIT 状态,它会向server端再发送一个ack确认,此时server端收到ack确认后,此套接字处于CLOSED状态。
介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时等,具体状态如下所示:
1.CLOSED :初始状态,表示没有任何连接。
2.LISTEN : Server 端的某个 Socket 正在监听来自远方的 TCP 端口的连接请求。
3.SYN_SENT :发送连接请求后等待确认信息。当客户端 Socket 进行 Connect 连接时,会首先发送 SYN 包,随即进入 SYN_SENT 状态,然后等待 Server 端发送三次握手中的第 2 个包。
4.SYN_RECEIVED :收到一个连接请求后回送确认信息和对等的连接请求,然后等待确认信息。通常是建立TCP 连接的三次握手过程中的一个中间状态,表示 Server 端的 Socket 接收到来自 Client 的 SYN 包,并作出回应。ESTABLISHED :表示连接已经建立,可以进行数据传输。
5.FIN_WAIT_1 :主动关闭连接的一方等待对方返回 ACK 包。若 Socket 在 ESTABLISHED 状态下主动关闭连接并向对方发送 FIN 包(表示己方不再有数据需要发送),则进入 FIN_WAIT_1 状态,等待对方返回 ACK包,此后还能读取数据,但不能发送数据。在正常情况下,无论对方处于何种状态,都应该马上返回 ACK包,所以 FIN_WAIT_1 状态一般很难见到。
6.FIN_WAIT_2 :主动关闭连接的一方收到对方返回的 ACK 包后,等待对方发送 FIN 包。处于 FIN_WAIT_1 状态下的 Socket 收到了对方返回的 ACK 包后,便进入 FIN_WAIT_2 状态。由于 FIN_WAIT_2 状态下的 Socket需要等待对方发送的 FIN 包,所有常常可以看到。若在 FIN_WAIT_1 状态下收到对方发送的同时带有 FIN 和ACK 的包时,则直接进入 TIME_WAIT 状态,无须经过 FIN_WAIT_2 状态。
7.TIME_WAIT :主动关闭连接的一方收到对方发送的 FIN 包后返回 ACK 包(表示对方也不再有数据需要发送,此后不能再读取或发送数据),然后等待足够长的时间(2MSL)以确保对方接收到 ACK 包(考虑到丢失 ACK 包的可能和迷路重复数据包的影响),最后回到 CLOSED 状态,释放网络资源。8.CLOSE_WAIT :表示被动关闭连接的一方在等待关闭连接。当收到对方发送的 FIN 包后(表示对方不再有数据需要发送),相应的返回 ACK 包,然后进入 CLOSE_WAIT 状态。在该状态下,若己方还有数据未发送,则可以继续向对方进行发送,但不能再读取数据,直到数据发送完毕。
9.LAST_ACK :被动关闭连接的一方在 CLOSE_WAIT 状态下完成数据的发送后便可向对方发送 FIN 包(表示己方不再有数据需要发送),然后等待对方返回 ACK 包。收到 ACK 包后便回到 CLOSED 状态,释放网络资源。10.CLOSING :比较罕见的例外状态。正常情况下,发送 FIN 包后应该先收到(或同时收到)对方的 ACK 包,再收到对方的 FIN 包,而 CLOSING 状态表示发送 FIN 包后并没有收到对方的 ACK 包,却已收到了对方的FIN 包。有两种情况可能导致这种状态:其一,如果双方几乎在同时关闭连接,那么就可能出现双方同时发送FIN 包的情况;其二,如果 ACK 包丢失而对方的 FIN 包很快发出,也会出现 FIN 先于 ACK 到达。11.数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括()
12.正确答案: D 你的答案: A(错误)13.数据字典,应用程序,审计档案,数据库后备副本 14.数据字典,应用程序,审计档案,日志文件 15.数据字典,应用程序,数据库后备副本 16.日志文件,数据库后备副本
17.题目说的是转储,转储只需要日志文件和后备数据就可以了 18.数据字典只是用来定义数据库,应用程序也是一个道理....19.进程依靠()从阻塞状态过渡到就绪状态。20.正确答案: D 你的答案: D(正确)21.程序员的命令 22.系统服务
23.等待下一个时间片到来 24.“合作”进程的唤醒
25.引起进程阻塞和唤醒的事件:
26.1、向系统请求共享资源失败。进程转变为阻塞状态。27.2、等待某种操作完成。比如进程启动了I/O设备,必须等I/O操作完成后,进程才能继续。
28.3、新数据尚未到达。对于合作的进程,如果一个进程A需要先获得另一进程B提供的数据后,才能对该数据进程处理,只要数据尚未到达,进程A只能阻塞。当进程B提供数据后,便可以去唤醒进程A。
29.4、等待新任务到达,用于特定的系统进程。它们每当完成任务后,就把自己阻塞起来,等待新任务。30.1.什么是正则表达式的贪婪与非贪婪匹配 31.如:String str=“abcaxc”;32.Patter p=“ab*c”;33.贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。
34.非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。35.2.编程中如何区分两种模式
36.默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
37.量词:{m,n}:m到n个 38.*:任意多个 39.+:一个到多个 40.?:0或一个
41.以上来自博主的博客,然后这道题目 42..表示除n之外的任意字符 43.*表示匹配0-无穷
+表示匹配1-无穷
44.(?=Expression)顺序环视,(?=()就是匹配正括号 45.懒惰模式正则:
src=“.*?(?=())” 46.结果:北京市
47.因为匹配到第一个“就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。
A ”.*?(?=()“
B ”.*?(?=()“ C ”.*(?=()“ D ”.*(?=()“ 前面的.*?是非贪婪匹配的意思,表示找到最小的就可以了(?=Expression)顺序环视,(?=()就是匹配正括号
String text = ”北京市(海淀区)(朝阳区)(西城区)“;Pattern pattern = Pattern.compile(”.*?(?=()“);Matcher matcher = pattern.matcher(text);if(matcher.find()){ System.out.println(matcher.group(0));} 10.下面这个题不能再做了!!classB extendsObject {
static
{
System.out.println(”Load B“);
} classA {
} } publicB(){
System.out.println(”Create B“);} extendsB static {
System.out.println(”Load A“);} publicA(){
System.out.println(”Create A“);}
publicclassTestclass {
publicstaticvoidmain(String[] args)
{
newA();
} }。。。。。。。。。。
Load B->Create B->Load A-> Create A Load B-> Load A->Create B->Create A Load B-> Create B-> Create A-> Load A Create B->Create A->Load B->Load A 执行顺序:
父类静态代码块-》子类静态代码块-》父类构造代码块-》父类构造函数-》子类构造代码块-》子类构造函数
11.下列有关Servlet的生命周期,说法不正确的是? 正确答案: A 你的答案: A(正确)
在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例 在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法
在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源 destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法
Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet(2)创建:通过调用servlet构造函数创建一个servlet对象(3)初始化:调用init方法初始化
(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
(5)卸载:调用destroy方法让servlet自己释放其占用的资源
12.下面有关JAVA swing的描述,说法错误的是? 正确答案: C 你的答案: A(错误)
Swing是一个基于Java的跨平台MVC框架。使用单线程模式。Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的
Swing优化了AWT,运行速度比AWT快 Swing是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的。
Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。
工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event 用Swing创建图形界面步骤:
(1)导入Swing包
(2)选择界面风格
(3)设置顶层容器
(4)设置按钮和标签
(5)将组件放到容器上
(6)为组件增加边框
(7)处理事件
(8)辅助技术支持 1。导入Swing包
下面语句导入Swing包 importjavax.swing.*;大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包: importjava.awt.*;importjava.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包: importjavax.swing.event.*;2.选择界面风格
Swing允许选择程序的图形界面风格常用的有java风格,windows风格等
下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。
try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());} catch(Exception e){ }(3)设置顶层容器
图形界面至少要有一个顶级Swing容器
顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持
常用的顶级容器:
JFrame(框架):表示主程序窗口
JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口
JApplet(小程序):在浏览器内显示一个小程序界面 一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格
窗格也可以看作是一种面板,但它是框架的一个组成部分
组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上
用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板
public static void main(String[ ]args){JFrame frame=new JFrame(”SwingApplication");JPanel panel1=new JPanel();frame.getContentPane().add(panel1,BorderLayout.CENTER);......//添加其他组件
frame.pack();frame.setVisible(true);}
13.super.getClass().getName()返回:包名+类名
14.以下关于对象序列化描述正确的是 正确答案: C D a.使用FileOutputStream可以将对象进行传输 b.使用PrintWriter可以将对象进行传输 c.使用transient修饰的变量不会被序列化 d.对象序列化的所属类需要实现Serializable接口 …..C和D transient这个单词本身的意思就是瞬时的意思 transient是变量修饰符 变量定义为transient的,序列化时会忽略此字段,所以C是对的,只有实现了Serializable接口的,才可以被序列化.能够对对象进行传输的貌似只有ObjectOutputStream和ObjectInputStream这些以Object开头的流对象。
3、D项继承Seriallizable接口是经常见到的,这毋庸置疑。
4、transient 修饰的变量在对象串化的时侯并不会将所赋值的值保存到传中,串化的对象从磁盘读取出来仍然是null。
6.完美时空 java 笔试题 篇六
一、Java语言基础
《Java编程思想》,是必须看的。Java初级程序员考试参考书,也是不错的补充。
二、Java语言高级
面试和笔试的难题,往往不是《Java编程思想》里的。所以,一定要看java高级程序员参考书——Java2学习指南。所以的难题,都是出自这里。
当然,也欢迎去下载一个Java.J2EE.Job.Interview.Companion.2nd.Edition.pdf。看完这个pdf,基本上java语言考试是所向无敌了。
三、UML、OO和模式
抓住重点,一网打尽。Java与模式一书,就足够了。可以再补充一本老外写的《UML与模式》。那么任何UML、面向对象、设计模式方面的题目,都没问题。
当然,《J2EE核心模式》,也是一定要看的。
四、数据库
任何系统,都离不开数据库。范式、pk、fk、join、sql、性能及优化,不能逃避。找一个《SQL Server宝典》、《SQL Server管理员指南之类》就够了。
五、测试(性能、单元)
找本《软件测试》、Junit之类,基本够了。如果不是面试测试的话。
七、数据结构和算法
少部分企业喜欢考数据结构和算法。基本看下教科书就行。要不看下排序、递归。http://blog.csdn.net/fancyhf/archive/2008/06/19/2566288.aspx
八、架构设计
如果想做架构师,必定要看Sun的架构师考试指南。还有本《J2EE架构师手册》,不错。
九、框架及开源
Swing和SWT,Spring、Struts、Hiberlate,JSF、EJB3、Seam。不熟悉的,要做几个sample。并且找到各自的《**Action》书,仔细理解其系统结构和模型。能说出各自的原理、优缺点、应用场景。
十、管理和软件工程
如果想做项目管理,或者想表现好点。这是必定要看的。概念性的东西,不难。推荐学习RUP、XP、CMM、TSP/PSP、PMP、人月神话、人件、管理学。基本足够应付项目管理的面试了。
十一、智力题
微软的面试题,你是否觉得很可怕?其实,哪怕名企的智力题,也不是说靠运气的。智力题,多数是属于数学范畴。静下心,有点耐心,就能做出。特别是,学习《MBA入学考试逻辑分册》、《博弈论》后,你会发现,那些刁钻古怪的智力题,原来这么容易搞定。
十二、业务领域
这个很难准备。金融、电信、电子商务、ERP/SCM,只能靠行业经验。
但是,ERP/SCM是个很广泛的应用,陈启申的《企业资源计划(ERP):原理、规划、实施及应用》和马士华《供应联管理》就可以了。
其实,如果各位找机会直接去做SAP和Oracle ERP的实施和顾问工作,将比做Java开发有钱途多了。那只要学好数据库、ERP、商业智能,SAP和Oracle ERP本身就足够了。
十三、英语
高薪和非高薪的区别,在于英语。
7.完美时空 java 笔试题 篇七
第一部分 选择题
单选题。
1. Java中,关于char类型叙述错误的是(C)
A.占2字节
B.可以存储一个英文字母
C.不能存储一个汉字
D.其对应的封装类是Character
2.下列代码中,将引起编译错误的行是(B)
1)public class Exercise{
2)public static void main(String args[]){
3)float f=0.0;
4)f+=1.0;
5)}
6)}
A.第2行
B.第3行
C.第4行
D.第6行
3.下面程序运行后的结果是什么?(A)
Public class Test{
Static Boolean foo(char c){
System.out.print(c);
Return true;
}
Public static void main(String[] argv){
Int i=0;
For(foo(„A‟);foo(„B‟)&&(i<2);foo(„C‟)){
i++;
foo(„D‟);
}
}
}
A.ABDCBDCB
B.ABCDABCD
C.Compilation fails.D.An exception is thrown at runtime.4.下面正确的是(A)
A.在java中类只允许单一继承
B.在java中一个类只允许实现一个借口
C.在java中类不能同时继承一个类和实现一个借口
D.在java中一个接口只能继承一个接口
5.下列叙述中,错误的是(B)
A.File类能够存储文件
B.File类能够读写文件
C.File能够建立文件
D.File类能够获取文件目录信息
6.下列关于java多线程并发控制机制的叙述中,错误的是(B)
A.java中对共享数据操作的并发控制是采用加锁技术
B.线程之间的交互,提倡采用suspend()/resume()方法
C.共享数据的访问权限都必须定义为private
D.java中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止
死锁的发生
7.Jsp页面中哪句有错?(A)
A.<>
B.<%!request.isUserInRole(“manager”)%>
C.<%=request.getRemoteHost()%>
D.<% out.println(“Hello.”);%>
8.关于Servlet的描述正确的是?(B)
A.Servlet在init方法可以处理application的配置参数
B.每次请求会依次调用servlet的init,service,destroy方法
C.在Servlet中定义的类的实例变量可以被多次请求共享使用
D.用户可以创建Servlet的实例
9.下面说法正确的是
A.客户端可以直接使用实体Bean
B.会话Bean,消息Bean都是同步的C.无状态会话Bean更容易在集群环境布署
D.状态会话Bean不可以被重用
10.下面说法错误的是
A.SQLException的getErrorCode返回的是厂商相关错代码
B.使用一个Connection可以创建多个Statement
C.当Statement关闭时,相关连的ResultSet也会被关闭
D.JNDI可以用于访问网络目录和文件
多选题
1.执行下列代码后,那个结论是正确的?(B)
String[]s=new String[10];
A.s[10]为 “ “;
B.s[9]为null;
C.s[0]为 未定义;
D.s.length 为10
2.下列那个方法是对方法public void add(int a){}合理的重载?(B,C,D)
A.public int add(int a);
B.public void add(long a);
C.public void add(int a,int b)
D.public void add(float a)
3.下面继承A 的类中的方法定义哪两个是正确的?(A,C)
Class A {
Protected int method1(int a, int b){return 0;}}
A.public int method1(int a,int b){return 0;}
B.private int method1(int a,int b){return 0;}
C.public short method1(int a ,long b){return 0;}
D.static protrcted int method1(int a, int b){return 0;}
4.下面方法运行后,在控制台上那些将会被显示?(B,C,D)
Publicvoid example(){
Try{
Unsafe(0;
System.out.println(“Test 1”);
}catch(SafeException e){
System.out.println(“Test 2”);
}Finally{
System.out.println(“Test 3”);
}
System.out.println(“Test 4”);
}
A.Test 1
B.Test 2
C.Test 3
D.Test 4
简答题
1. 调试一个数据库操作的程序时,后台报告 IoException: The Network Adapter could not
establish the connection 错误,如何解决?
这个异常的出现一般与数据库和你的PC的设置有关这种异常的出现大致上有下面几种:1。IP错误。在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp
数据库服务器不正确:ping 服务器IP是否正确。不正确,将URL更改为正确
端口号错误:一般不会错误。进行一下操作:在DOS上键入sqlplus,检查oracle是否开启 一却正常,2。防火墙如果机器上安装有放火墙,可能是服务器端口号屏蔽而造的。关闭防火墙后,尝试重新连接。3。数据库监听未启动 修改PC上注册表中的ImagePath值。
2.数据库表结构如下;
学生(学号,名称)
科目(科目号,科目名称,科目学分)
得分(学号,科目号,得分)
编写SQL语句,查询学分之和大于20,且科目平均得分大于4.2的学生名单。
Select * from 学生 where 学号 in(select 学号 from 科目 join 得分 on 科目.科目号=得分.科目号 group by 学号 having avg(得分)>20 and sum(科目学分)>20)
编程题
1.费波那其数列,1,1,2,3,5……编写程序求第十项(不能用递归)
public class Test {
public static void main(String args[]){
int n=10;
int a=1, b=1, temp;
int sum=2;
for(int i=3;i<=n;i++){
temp=a+b;a=b;b=temp;
sum=sum+temp;
}
2.用数据结构描述图,比设计方法判断图是否连通。
3.设计一个排序接口,并编写接口实现。将对象数组(Object[]array)进行升序排序,对相间的大小比较策略可以定制扩展。(例如,对于人员,可以使用相同排序算法,不同的比较策略方便的实现按体重、身高或年龄等属性排序)。
8.JAVA和数据库笔试题 篇八
一个是final修饰的方法不能被Overload还是Override或者都可以或者都不能?
5.接口和抽象方法的区别,不是让写不同之处,是看代码中那个是错误的.,这个题也考extends和implement;
6.set list map区别
填空题:
1.java中提供对象比较的两个接口:(这个我没填上,记得最清楚了)
2.面向对象的特性:继承 封装 多态
3.11&12的值:8 (按位与运算)
编程:(给了一个表格,每种车有name、price、kind属性,然后有三辆车)编写一个抽象类Car,属性有name、price、kind;编写两个类(kind不同)分别继承Car,又有各自的计算初始折价率的方法(题目的意思是不同类型的车price*0.1,price*0.15);编写一个方法可以比较两种车的初始折旧率;写一个算法按初始折旧率升序排序;
数据库:
选择:
1.事务的特性考了一下下;
2.DML、DDL、DCL那个最重要
3.为了提高数据查询效率一般干什么事? 索引
4.删除表的语句
填空:
1.事务显式提交的命令是 ,事务回退的命令是 。
2.查询时匹配用 % _ ;只能对String数据类型起作用;
3.游标用法步骤:定义游标、后面三个空;
编程:
有一个职工表employee(eno,ename,esex,deptno,sal),其中eno代表职工号,数值型(整数),长度为8,eno为student表的主键;ename代表职工姓名,字符型,长度为10;esex代表性别,取值仅为“男”或者“女”;deptno代表部门号,数值型(整数),非空,长度为6;sal是工资(大概是这样)
1) :创建表
2):查询性张得员工
3):查询每个部门员工的人数
4):工资不等于1000的员工的人数