java程序员经典笔试题
第一篇:java程序员经典笔试题
JAVA程序员笔试题
深圳市九城恩科软件技术有限公司
java程序员笔试题
JAVA 程序员笔试题
时间:30分钟
试题一:
简单描述一下什么是事务管理,事务管理中有哪些语句?
姓名:
试题二:
跳出当前循环的关键词是什么?继续本次循环的关键词是什么?
试题三:
在JSP页面源代码中写 “${flag}”是代表什么意思?
试题四:
请写出最少五种设计模式的名称。
试题五:
请写出Eclipse 中下列功能的快捷键: 删除当前行: 注释当前行:
代码助手完成一些代码的插入: 打开类型: 打开资源:
试题六:
什么情况下Eclipse不编译生成Class文件?
深圳市九城恩科软件技术有限公司
java程序员笔试题
试题七:
public static void main(String[] args) {
int i=3,j=16; do{ if(++i>=j--) continue; }while(i<9); System.out.println("i="+i+";j="+j);} 这段程序运行后输出的结果是什么?
试题八:
public class One {
} public class Two extends One {
} protected void printA(){System.out.println("two A");} private void printB(){System.out.println("two B");} public static void main(String[] args) { Two t = new Two(); t.printAB();} protected void printA(){System.out.println("one A");} private void printB(){System.out.println("one B");} protected void printAB(){printA();printB();} 这段程序运行后输出的结果是什么?
试题九:
有一个表 “表A” 中包含 “姓名”,“成绩”两个字段,请写一个SQL语句查询出“成绩”大于60分的,“姓名”有重复的人的名字
试题十:
请写一个方法实现:传入的一个大于10位的字符串,把字符串的最后两位移动到字符串的第4位后面。
第二篇: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;
}
}
2. 在Struts + Spring + Hibernate的组合框架模式中,三者各自的特点都是什么?答:StrtusWEB层Spring是业务层Hiebenate是持久化层
第三篇:Java程序员的笔试题10道
中软国际不久前出了10道对于java程序员基本功时候扎实的考题,不妨你也来测测看吧。看下会几道题目。
1、HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有分类或者排序。它允许一个null 键和多个null 值。Hashtable 类似于HashMap,但是不允许null 键和null 值。它也比HashMap 慢,因为它是同步的,是线程的。
2、sleep() 和wait() 有什么区别?
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
3、Collection 和Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
4、什么时候用assert.assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。
5、&和&&的区别。
& 是两个数相与,是位运算符,&&是布尔逻辑运算符,连接两个条件表达式的,两个条件表达式都为真时,整个才为真
6、谈谈final, finally, finalize的区别。
final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally:在异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入finally 块(如果有的话)。
finalize:方法名。 技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
7、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能继承其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
8、。Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;因为返回最接近参数的long.通过加上1/2 将该结果舍入为整数,取结果的基数并将其强制转换为long 类型。换句话说,结果等于以下表达式的值:(long)Math.floor(a + 0.5d)
9、Static Nested Class 和Inner Class的不同,说得越多越好(面试题有的很笼统)。
Static nested class(嵌套类)是将内部类声明为static.普通内部类对象隐式地保存了一个引用,指向创建它的外围类对象,不能有static数据和static字段。嵌套类意味着:1> 要创建嵌套类的对象,并不需要其外围类的对象;2>不能从嵌套类的对象中访问非静态的外围类的对象。
10、ArrayList和Vector的区别。
1>同步性:Vector是线程的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的2>数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半。
PS;本文档由北大青鸟广安门收集自互联网,仅作分享之用。
第四篇: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进行顺序排列。
3.使用输入输出流的API实现文件拷贝功能。
第五篇:2017Java最新笔试题(附详细答案)
下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序():
本题主要考查了选项中出现的几种树的结构特点。对于选项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. .表示除 之外的任意字符 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。
5、这值得说下Volatile这个修饰符,它是针对多线程情况下出现的。当线程读取它修饰的变量时,都会强迫从主存中重新读取。