2014年中信java笔试题
java笔试题大集合及答案

java笔试题大集合及答案# Java笔试题大集合及答案1. Java中接口和抽象类的区别是什么?- 接口和抽象类都是抽象的,不能直接实例化。
- 接口中所有的方法默认是public的,而抽象类可以包含非public的成员。
- 一个类可以实现多个接口,但只能继承一个抽象类。
- 接口中不能包含构造方法,而抽象类可以。
- 接口中的字段默认是public static final的,而抽象类中的字段可以是任意类型。
2. Java中如何实现单例模式?- 单例模式确保一个类只有一个实例,并提供一个全局访问点。
- 可以通过私有化构造方法,提供一个私有静态变量来保存实例,并提供一个公有静态方法来获取实例。
3. Java中集合框架的层次结构是怎样的?- 集合框架分为两大类:单元素集合和复合元素集合。
- 单元素集合包括List、Set和Queue。
- 复合元素集合包括Map。
- 每个接口都有多个实现类,如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等。
4. Java中如何实现多线程?- 可以通过继承Thread类并重写run方法来实现。
- 也可以通过实现Runnable接口并重写run方法,然后创建Thread对象来实现。
- Java 5引入了Executor框架,可以更方便地管理线程。
5. Java中异常处理的机制是什么?- Java使用try-catch-finally块来处理异常。
- try块中编写可能抛出异常的代码。
- catch块中编写处理异常的代码。
- finally块中的代码无论是否发生异常都会执行。
6. Java中StringBuffer和StringBuilder的区别是什么?- StringBuffer是线程安全的,而StringBuilder不是。
- StringBuffer的方法是同步的,StringBuilder的方法不是。
- 在单线程环境下,StringBuilder的性能优于StringBuffer。
java 笔试题及答案(公司1)

1.web中的forward和redirect的区别?(前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
2. xml在解释的时候DOM和SAX协议的区别和含义?DOM:处理大型文件时其性能下降的非常厉害。
这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。
它顺序读取XML文件,不需要一次全部装载整个文件。
当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问3说明JNDI、JMS、JTA、RMI的意思?JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,翻译为Java消息服务。
JMS支持点对点和发布/订阅两种消息模型。
JTA(Java Transaction API) 为J2EE 平台提供了分布式事务服务。
要用JTA 进行事务界定,应用程序要调用erTransaction 接口中的方法.RMI是Java的一组拥护开发分布式应用程序的API。
RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。
Java代码笔试题及答案大全

Java代码笔试题及答案大全Java代码笔试题及答案1、运算符优先级问题,下面代码的结果是多少?publicclassTest {publicstaticvoidmain(String[] args){int k = 0;int ret = ++k + k++ + ++k + k;// ret的值为多少System.err.println(ret);}}解答:主要考察++i和i++的区别。
++在前则先自增再赋值运算,++在后则先赋值再自增运算。
因此,结果为8。
2、在Java中,以下代码( A )正确地创建了一个InputStreamReader对象。
A) InuptStreamReader(new FileInputStream(“1.dat”));B) InuptStreamReader(new FileReader(“1.dat”));C) InuptStreamReader(new BufferReader(“1.dat”));D) InuptStreamReader (“1.dat”);3、下面代码的结果是什么?publicclassTest {publicvoidmyMethod(String str) {System.err.println("string");}publicvoidmyMethod(Object obj) {System.err.println("object");}publicstaticvoidmain(String[] args) {Test t = new Test();t.myMethod(null);}}解答:这道题考察重载方法参数具有继承关系时的调用问题,还有对null 的认识。
如果是一般具有继承关系的对象分别作为参数,看对象的引用,如:classA {}classBextendsA {}publicclassTest {publicstaticvoidmain(String[] args) {A b1 = new B();B b2 = new B();get(b1);// Aget(b2);// B}publicstaticvoidget(A a) {System.out.println("A");}publicstaticvoidget(B a) {System.out.println("B");}}这道题中,Object是一切类的父类,具有继承关系,那null是指向什么呢?null是任何引用类型的初始值,String和Object的初始值都是null,但是null会优先匹配引用类型参数为String的方法,因此这道题答案是string。
中级JAVA笔试题(附参考答案)

中级JAVA笔试题(附参考答案)java 基础1.StringBuffer的实现方式,容量如何扩充。
2.ClassLoader的功能和工作模式。
3.==和equals的区别。
4.什么是线程安全?举例说明一个线程不安全的例子。
5.说出数据连接池的工作机制,解决什么问题。
6.一个字符串"java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf",把其中奇数位java(大小写不敏感)替换成java,偶数位替换成JAVA。
数据库7.经常使用的数据库的优化方法。
8.薪水最高的第10到第20名雇员Oracle和mysql的实现。
算法:9. ArrayList LinkedList HashMap,存储性能和特点。
10.用任意方法对int类型数组进行排序。
架构:11.描述MVC的设计思想12.Spring的核心理念是什么13.谈一下自己最熟悉的web框架参考答案:java 基础1.StringBuffer的实现方式,容量如何扩充。
(StringBuffer是通过char[]来实现的,默认长度是16,在进行串的append的时,StringBuffer会检测剩余容量,适时会重新扩充,而扩容的同时,会创建一个新的数组,并将原来的数组内容复制到新的数组里面。
)2.ClassLoader的功能和工作模式。
(1:JVM在运行时会产生三个ClassLoader,其层次关系::Bootstrap ClassLoader—>Extension ClassLoader—>AppClassLoader,2: 当一个装载器被请求装载某个类时,它首先委托自己的parent去装载,若parent能装载,则返回这个类所对应的Class 对象,若parent不能装载,则由parent的请求者去装载。
)3.==(引用指向同一个对象)和equals(引用可能指向的不是同一个对象)的区别。
java基础笔试题(答案已整理)

java基础笔试题(答案已整理)Java基础试题一、选择题(1*30=30)1.Java提供哪几种运算符?多选(ABCD)A) 算术运算符 B) 位运算符 C) 关系运算符 D) 逻辑运算符E) 条件运算符ng包的哪个方法比较两个对象是否相等返回true?(B)A: toString() B: equals() C: compare D: 以上都不正确3.下列对Java的变量与函数说法正确的是?多选(ACE)A) 变量是用来保存数据的 B) 变量是用来实现操作过程的C) 函数是用来实现操作过程的 D) 函数是用来保存数据的 E)函数的参数是数据的入口4.已知:int[] a = new int[100]。
在下列给出的数组元素中,非法的是?(D)A: a[0] B: a[1] C: a[99] D: a[100]5.在Java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数、类型或顺序各不相同,传值也可以各不相同。
这种面向对象程序的特性称为?(C)A: 隐藏 B: 覆盖 C: 重载 D: Java不支持此特性6.()是一组常量和抽象方法的集合。
(D)A: 实例 B: 类 C: 包 D: 接口7.下面关于数组说法正确的是?多选(ABCDE)A) 一维数组实质上是相同类型变量的列表 B) 创建一个数组首先定义数组变量所需的类型 C) char c[]=new char[26];可声明一个含有26个元素的char型数组 D) 当为一个多维数组的时候分配内存时,仅需要为第一维指定内存,然后再分配其他维的存 E) int twain[][] = new int[4][5];可声明一个二维数组8.Java源文件和编译后的文件扩展名分别为?(B)A:。
class和.java B:。
java和.class C:。
class和.class D:。
java和.java9.设x=5;则y=x--和y=--x的结果,使y分别为?(C)A: 5,5 B: 5,6 C: 5,4 D: 4,410.若x是float类变量,x=10/4;则x的值是?(B)A: 2 B: 2.0 C: 2,5 D: 编译错误11.下面方法中,用于调度线程使其运行的是?多选(BC)A。
【银行】中信银行笔试IT类复习参考资料带答案

【关键字】银行1、在IMS系统中查找最先满足条件的第一个记录是:(A) GN (B) GU (C) GNP (D) GHU2、对关系R进行投影运算得到S,则R与S的关系是:S从属于R3、记载数据库系统运行过程中所有更新操作的文件是:(A)更新文件(B)后备文件(C)日志文件(D)数据文件4、在面向对象的模型中,表示实体中每个属性时,使用___个变量,____个消息对象之间的相互作用都得通过发送消息和执行消息完成。
消息是对象之间的接口,消息分成只读型和更新型两种。
在面向对象模型中,实体的每个属性应该用一个变量和两个消息表示。
变量用来存储属性的值,一个消息用来读属性的值,另一个消息用来更新属性值。
6、视图是为了提高数据库系统的____(A)完整性(B)并发控制(C)隔离性(D)安全性7、E-R模型中,6个实体集,7个不同的二元联系,其中2个1:N,2个1:1,3个M:N,则转换成关系数目是____个8、事务日志用于保存__对数据的更新操作_____9、事务1以S锁方式读取数据A时,事务2可以进行的操作是_______(A)对数据实行X锁并读数据(B)对数据实行S锁并写数据(C)对数据实行X锁并写数据(D)不加锁去读数据共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。
获准共享锁的事务只能读数据,不能修改数据。
排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。
获准排他锁的事务既能读数据,又能修改数据。
10、JSP方法是一种面向___数据结构__的设计方法11、数据耦合数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
12、Jackson图13、软件质量控制14、提高程序效率的途径(选出那个不能有效地提高)15、黑盒尝试的概念16、生产性维护是什么?17、版本控制18、有一个n个顶点,e条弧的有向图用邻接表表示,则删除与某顶点Vi相关的所有弧的时间复杂度是___O(n+e)____19、算法指的是:20、线形链表的特性灵活链表使用指针链表示线形表元素的逻辑关系,插入和删除只需修改指针,不能随机存取。
java笔试题目及答案

java笔试题目及答案java笔试题目及答案java笔试题目及答案1. 下面哪些是Thread类的方法()A start()B run()C exit()D getPriority()答案:ABD解析:看Java API docs吧:https:///javase/7/docs/api/,exit()是System 类的方法,如System.exit(0)。
2. 下面关于ng.Exception类的说法正确的是()A 继承自ThrowableB Serialable CD 不记得,反正不正确答案:A解析:Java异常的基类为ng.Throwable,ng.Error和ng.Exception继承 Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException继承RuntimeException。
扩展:错误和异常的区别(Error vs Exception)1) ng.Error: Throwable的子类,用于标记严重错误。
合理的应用程序不应该去try/catch这种错误。
绝大多数的错误都是非正常的,就根本不该出现的。
ng.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。
即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。
2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。
比如FileNotFoundException, ParseException等。
检查了的异常发生在编译阶段,必须要使用try…catch(或者throws)否则编译不通过。
java笔试题大集合及答案Java基础方面

Java基础方面:1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域当前类同一package 子孙类其他packagepublic √√√√protected √√√×friendly √√××private √×××不写时默认为friendly2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)答:匿名的内部类是没有名字的内部类。
不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现3、Static Nested Class 和Inner Class的不同答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象4、&和&&的区别答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)5、Collection 和Collections的区别答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作6、什么时候用assert答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。
在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014年中信java笔试题
一、选择题(每题2分,共20分)
1. 以知如下定义:String s=”citic bank”;下面哪个表达式是不合法的?(B )
A.s+=”bank” B. char c=s[1]
C. int len=s.length()
D. String t=s.toLowerCase()
2. JAVA的字符类型采用的是Unicode编码方案,每个Unicode码占用(B )比特位
A.8 B.16 C.32 D.64
3. 欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?(B)
A. ArrayList myList = new Object()
B. List myList = new ArrayList()
C. ArrayList myList =new List()
D. List myList = new List()
4. 以下关于继承的叙述正确的是(A )
A.在JAVA中类只允许单一继承
B.在JAVA中一个类只能实现一个接口
C.在JAVA中一个类不能同时继承一个类和实现一个接口
D.在JAVA中接口只允许单一继承
5.阅读Shape和Circle两个类的定义。
在序列化一个Circle的对象circle到文件时,下面哪个字段会被保存到文件中?(B )
class Shape{
public String name;
}
class Circle extends Shape implements Serializable{
private float radius;
transient int color;
public static String type = “Circle”;
}
A. name
B. radius
C. color
D. type
6. JAVA的集合框架中重要的接口java.util.Collection定义了许多方法,选项中哪个方法不是Collection接口所定义的?( C)
A. int size()
B. boolean containsAll(Collection c)
C. compareTo(Object obj)
D. boolean remove(Object obj)
7. 有如下程序段:
int a=b=5;
String s1=”祝你今天考出好成绩!”;
String s2=”祝你今天考出好成绩!”;
则表达式a==b与s2==s1的结果分别为(A )。
A. true与true
B. false与true
C. true与false
D. false与false
8. 下列说法正确的有(C )
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D. 一个class只能定义一个constructor
9. 下列说法错误的有(ACD )
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
10.关于异常处理机制的叙述哪些正确( BC)
A.catch部分捕捉到异常情况时,才会执行finally部分
B.当try区段的程序发生异常时,才会执行catch区段的程序
C.不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
D. 以上都是
二、问答题(每题5分,共50分)
1.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。
通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。
通过这种方式确定哪些对象是”可达的”,哪些对象是”不可达的”。
当GC确定一些对象为”不可达”时,GC就有责任回收这些内存空间。
可以。
程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
2.说出 ArrayList,Vector, LinkedList的存储性能和特性
3.下面的代码哪里需要优化,优化的原因?写出你优化后的代码。
For(int i=0;i<1000;i++){
Object object =new Object();
System.out.println(“object name
is”+object);
}
4. JAVA中实现多态的机制是什么?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
5.请写出java中socket的连接和建立的原理。
6. xml有哪些解析技术?区别是什么?
答:有DOM,SAX,STAX等
DOM:处理大型文件时其性能下降的非常厉害。
这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于
DOM,SAX是事件驱动型的XML解析方式。
它顺序读取XML文件,不需要一次全部装载整个文件。
当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
STAX:Streaming API for XML (StAX)
7.数字签名和加密的原理及区别?
数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。
数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。
另外,数字签名只采用了非对称密钥加密算法,它能保证发送信息的完整性、身份认证和不可否认性,而数字加密采用了对称密钥加密算法和非对称密钥加密算法相结合的方法。
8.何为数据库“事务处理”,谈谈你对它的理解。
9.Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
10.用一条SQL语句查询出每门课都大于80分的学生姓名,表格式如下,表名为score
name course mark
张三语文 81
张三数学 75
李四语文 76
李四数学 90
王五语文 81
王五数学 100
王五英语 90
select code,name from t_score a
where not exists(select 1 from t_score b where b.code=a.code and b.score<=80) group by
a.code,
5.编程题(每题10分,共20分)
1.编写一个截取字符串的函数,输入为一个字符串和字节数,输出为
按字节截取的字符串,但是要保证汉字不被截半个,如“我ABC”4,应
该截为“我AB”,输入“我ABC汗DEF”,6,应该输出为“我ABC”而不
是“我ABC+汉字的半个”。
2. 使用两种方法编写多线程环境下的Singleton模式,并比较这两种方法。
6. 设计题(二选一,共10分)
1.请设计综合对帐单里的一个显示模块,此模块功能是获取数据库里
的数据,在界面上进行显示,显示格式可以有表格、柱形、饼状等形式,当数据库里的数据改变时,这些显示形式会立即改变,同时可以在这些显示形式上更改数据后,数据库里的数据会立即更改并且其他显示形式也需要立即改变,要求选用合适的设计模式,画出UML图。
2. 一家银行的电子银行各个子系统是相互独立的,比如手机银行和网络银行,为了以后更好的发展,银行决定对这些子系统进行整合,现在请你设计一套登陆系统,要求如下:各个子系统具体登陆过程不一样,如手机银行不需要证书,仅仅需要用户名和密码即可,而网络银行需要UKEY或者文件证书,但登陆流程都是一致的,首先对用户进行验证,验证通过后,显示欢迎界面。
登陆系统能够很方便的接入更多的电子银行的形式。
要求选用合适的设计模式,画出UML图和系统框架图。