Java程序员面试笔试题一
最新2020年JAVA程序员笔试面试模拟考试题库300题(含参考答案)
![最新2020年JAVA程序员笔试面试模拟考试题库300题(含参考答案)](https://img.taocdn.com/s3/m/230ac6d3b0717fd5370cdc62.png)
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.String s1=”Hello”表达式s1==”Hello”返回true or false答案:TRUE2."关于以下程序代码的说明正确的是:1. public class HasStatic {2. private static int x=100;3. public static void main(String args[]) {4. HasStatic hs1=new HasStatic();5. hs1.x++;6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x--;11. System.out.println(“x=”+x);12. }13. }A. 10行不能通过编译,因为x是私有静态变量B. 5行不能通过编译,因为引用了私有静态变量C. 程序通过编译,输出结果为:x=102D. 程序通过编译,输出结果为:x=103答案:C3."下面程序段输出的结果是:StringBuffer buf1;String str = “北京2008”;buf1 = new StringBuffer(str);System.out.println(buf1.charAt(2));A. 输出是:京B. 输出是:2C. 输出是:0D. 输出是:null答案:B4.如果你被要求写一段代码读取一个图片文件,那么一般使用哪种Stream?A. ObjectInputStreamB. FileInputStreamC. FileReaderD. DataInputStream答案:D5.下面哪些声明是错误的?A. char c = ‘\u0000’;B. int i=’a’;C. byte b=01;D. long l=1234567890L;E. int i=0xFFFFFFFF;答案:6."类A定义如下:class A {private int x=10;int getX() {return x;}}class B extends A {private int x=15;//需要覆盖getx()方法}在”//需要覆盖getx()方法”后应加上的函数是:A. int getX(float f) {…}B. double getx(float f){…}C. float getx(){…};D. int getx(){…}答案:D7."int k=0;for(int i=5;i>0&k<10;i--){k+=i;}最后k的值是多少?答案://k=128."对于下列代码:1)class Person {2)public void printValue(int i,int j) {//..}3)public void printValue(int i){//…}4 )}5)public class Teacher extends Person{6)public void printValue(){//…}7)public void printValue(int i){//…}8)public static void main(String [] args){9)Person t=new Teacher();10)t.printValue(10);11)}12)}第10 行语句将调用哪行语句?A. line 2B. line 3C. line 6D. line 7答案:D9.方法中的局部变量何时分配内存答案:在方法被调用时、静态变量在类被加载时分配内存10.不同级别的用户对同一对象拥有不同的访问权限或某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动,这种情况最好使用什么模式?A. Fasade模式B. Bridge模式C. Adapter模式D. Proxy模式答案:D11.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键B. 总控键C. 重复的组D. 主键答案:A12.转发HTTP请求的两个方法 respsonse.sendDirect 和 RequestDispatcher.forward 的区别答案:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
JAVA程序员笔试面试题汇总及答案
![JAVA程序员笔试面试题汇总及答案](https://img.taocdn.com/s3/m/a871db90bed5b9f3f90f1cfe.png)
1. 【基础题】请描述访问控制符的各自作用域与区别答:√√√√√√√√√一、名词解释二、问答题1. 【中等题】请说出ArrayList和Vector的区别答:主要从二方面来说.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半2. 【中等题】请说出HashMap和Hashtable的区别答:HashMap与HashT able主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value3. 【基础题】Collection 和Collections的区别答:Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口第十八章输入输出笔试题一、填空题1. 【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。
2. 【基础题】BufferedReader和BufferedWriter以字符流的方式读写文本文件,且效率更高。
3. 【基础题】FileInputStream和FileOutputStream以字节流的方式读写文本文件。
二、选择题1. 【基础题】下列哪个类是实体类(BC )A. InputStreamB. PrintStreamC. SocketD. ReaderE. DataInput2. 【提高题】请选择下列程序的运行结果(A)public class TestIOapp{public static void main(String [] args) throws IOException{StringReader stingin = new StringReader("test");LineNumberReader in = new LineNumberReader(stingin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A. testB. test:1C. 1:testD. 1 test3. 【提高题】请选择下列程序的运行结果( B )public class TestIOapp{public static void main(String [] args) throws IOException{RandomAccessFile file = new RandomAccessFile("test.txt","rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(1000000);file.writeInt(777);file.writeFloat(.0001f);file.seek(5);System.out.println(file.readInt());}}A. 123456B. 7890C. 1000000D. 777E. 0001三、名词解释四、问答题1. 【中等题】请说出java.io.reader和java.io.inputstream的区别答:java.io.Reader 和java.io.InputStream 组成了Java 输入类。
正式应聘的JAVA笔试题和答案
![正式应聘的JAVA笔试题和答案](https://img.taocdn.com/s3/m/8ca2d6ae6aec0975f46527d3240c844768eaa04d.png)
正式应聘的JAVA笔试题和答案一:选择题1:List, Set, Map是否继承自Collection接口A:都是,B 都不是 C:List, Set 是 D:Set, Map 是正确答案 C2:下面描述哪个是正确的A:构造器Constructor可被overrideB:可以继承String类C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行D:两个对象值相同(x.equals(y) == true),那么也有相同的hash code正确答案 D3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized A:都能 B:都不能 C:可以为static D:可以为native正确答案 A4:下面的程序中,temp的最终值是什么?long temo=(int)3.9;temp%=2;A: 0 B :1 C :2 D : 3正确答案 B5、请在以下选项中选出非基本数据类型的选项 ( )A: int B:byte C: boolean D:String正确答案 D6、阅读下面代码段, 给出以下代码的输出结果public class Test{public static void main(String args[]){String str1 = "abc";String str = "abc;String str2 = new String("abc");System.out.println(str1 == str2);System.out.println(str1.equals(str2));System.out.println(str == str1);}}A:true,true,true B:true,false,true C:true,true,false D:false,true,true正确答案 D7、阅读下面代码段, 给出以下代码的输出结果:int i=1;switch (i) {case 0:System.out.println("zero");break;case 1:System.out.println("one");case 2:System.out.println("two");default:System.out.println("default");}A: B::D:default 正确答案 C8、阅读下面代码段, 给出以下代码的输出结果public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A: Error Variable i may not have been initialized B:null C:D:0 正确答案 D9、阅读下面代码段, 给出以下代码的输出结果:class A{static{System.out.print( “A1”);}public A(){System.out.print( “A2”);}}class B extends A{static{System.out.print( “B1”);}public B(){System.out.print( “B2”);}}public class Hello{public static void main(String[] args){A ab = new B();ab = new B();}}A:A1B1A2B2B1B2 B:A1B1A2B2A2B2 C:A1B1A2B2B1B2 D:A1A2B1B2A2B2正确答案 B10、阅读下面代码段, 给出以下代码的输出结果public class TestData {public String getValue () {String value = "";try{value = "test1";return value;}catch(Exception e){e.printStackTrace();}finally{value = "test2";}return value;}public static void main(String args[]){ TestData test = new TestData();String a = test.getValue();System.out.println(a);}}A.test1B.test2C.nullD.””正确答案 A二、改错题,如果有错误,请指出并修正。
精选2020年JAVA程序员笔试面试完整版考核题库300题(含答案)
![精选2020年JAVA程序员笔试面试完整版考核题库300题(含答案)](https://img.taocdn.com/s3/m/2fc90177cc175527072208ad.png)
2020年JAVA程序员笔试面试题库300题[含答案]
一、简答题
1.下列关于java程序结果错误的是A. 源文件可以没有 import 语句
B. Package语句必须放在源文件的第一句
C. 一个源文件可以有多个类定义
D. 一个源文件可以定义多个public类
答案:D
2.下面这些方法中()方法不是Applet的基本方法。
A. run()
B. init()
C. start()
D. stop()
答案:A
3.关于final下面哪些是错误的?A. final可以用来声明抽象类中的方法
B. final可以用来声明接口中的方法
C. 以上都不对
D. final method不能被覆盖
E. final class不能被继承
答案:B
4.下面的异常处理说明正确的是( )A. try块只能使用一个catch子句。
B. try块必须同时与catch子句和finally子句一起使用。
C. try块不能单独使用。
D. try块中如果执行了return 语句,则其finally子句不能执行
答案:C
5."类A定义如下:
class A {
private int x=10;
int getX() {
return x;
}
}
class B extends A {
private int x=15;
//需要覆盖getx()方法。
Java开发工程师招聘笔试题及解答2024年
![Java开发工程师招聘笔试题及解答2024年](https://img.taocdn.com/s3/m/4e83ec63b42acfc789eb172ded630b1c59ee9bf9.png)
2024年招聘Java开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是Java中的基本数据类型?A、intB、floatC、StringD、boolean2、在Java中,以下哪个关键字用于声明一个类?A、classB、structC、enumD、interface3、关于Java中的String类,以下描述正确的是:A. String类是final类,无法继承。
B. String类是可变的,可以对其进行修改。
C. String类是可变的,每次对String对象的操作都会创建新的对象。
D. String类是不可变的,每次对String对象的操作都会创建新的对象。
4、关于Java中的垃圾回收机制,以下描述不正确的是:A. 垃圾回收器可以自动回收不再使用的对象占用的内存空间。
B. 垃圾回收机制是Java自动管理内存的一种方式,程序员无需手动释放内存。
C. 垃圾回收器会定期检查并回收那些不再有引用的对象。
D. 堆内存中的所有对象在不再有引用后,会自动关联到垃圾回收机制中,即成为垃圾,等待垃圾回收器来回收。
5、以下哪个Java版本正式支持模块化系统“Java Platform Module System”(JPMS)?A、Java 8B、Java 9C、Java 10D、Java 116、在Java中,以下哪个关键字用来声明一个线程?A、threadB、runC、ThreadD、start7、以下哪个关键字是Java中用于实现多线程的同步机制?A. synchronizedB. transientC. volatileD. static8、以下哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. friendly9、在Java中,以下哪个选项不是访问修饰符?A. publicB. privateC. protectedD. friend 10、下列关于Java异常处理的说法中,哪一个是正确的?A. Java程序必须捕获并处理所有抛出的异常。
java面试题库java面试题目及答案(3篇)
![java面试题库java面试题目及答案(3篇)](https://img.taocdn.com/s3/m/13125c9f760bf78a6529647d27284b73f24236cb.png)
第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。
答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。
- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。
- 安全性:Java提供了强大的安全机制,如沙箱安全模型。
- 体系结构中立:Java不依赖于特定的硬件或操作系统。
- 高效:Java的运行速度接近C/C++。
- 多线程:Java内置多线程支持,便于实现并发处理。
- 动态性:Java在运行时可以进行扩展和修改。
2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。
答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。
- 管理内存,包括堆、栈、方法区等。
- 提供垃圾回收机制。
- 管理线程和同步。
3. Java内存模型题目:请简述Java内存模型的组成。
答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。
- 栈(Stack):存储局部变量和方法调用。
- 方法区(Method Area):存储类信息、常量、静态变量等。
- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。
- 程序计数器(Program Counter Register):存储线程的当前指令地址。
4. Java关键字题目:请列举并解释Java中的几个关键字。
答案:- `public`:表示访问权限为公开。
- `private`:表示访问权限为私有。
- `protected`:表示访问权限为受保护。
- `static`:表示属于类本身,而非对象实例。
- `final`:表示常量或方法不能被修改。
- `synchronized`:表示线程同步。
- `transient`:表示数据在序列化时不会被持久化。
二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。
答案:类是对象的模板,对象是类的实例。
java模拟面试题目(3篇)
![java模拟面试题目(3篇)](https://img.taocdn.com/s3/m/e91cd13576232f60ddccda38376baf1ffc4fe38b.png)
第1篇一、Java基础知识1. 请简述Java语言的特点。
2. 什么是Java虚拟机(JVM)?它有什么作用?3. 什么是Java的内存模型?请解释Java内存模型中的几个关键概念:堆、栈、方法区、程序计数器、本地方法栈。
4. 什么是Java中的反射机制?请举例说明反射在Java中的应用。
5. 什么是Java中的泛型?请解释泛型的原理和作用。
6. 请简述Java中的四种访问控制符:public、protected、default、private。
7. 什么是Java中的继承和多态?请举例说明继承和多态在实际开发中的应用。
8. 什么是Java中的封装?请举例说明封装在实际开发中的应用。
9. 什么是Java中的接口和抽象类?它们之间有什么区别?10. 什么是Java中的异常处理?请解释try-catch-finally语句的执行顺序。
二、Java集合框架1. 请列举Java集合框架中的常用集合类及其特点。
2. 请简述ArrayList、LinkedList、HashMap、HashSet的区别。
3. 什么是Java中的泛型集合?请举例说明泛型集合的应用。
4. 什么是Java中的迭代器(Iterator)和枚举器(Enum)?请比较它们的区别。
5. 什么是Java中的List、Set、Map的遍历方法?6. 请解释Java中的ArrayList和LinkedList的内部实现原理。
7. 什么是Java中的HashMap的扩容机制?8. 什么是Java中的HashSet的内部实现原理?9. 请解释Java中的线程安全集合类,如CopyOnWriteArrayList、ConcurrentHashMap。
三、Java多线程与并发1. 什么是Java中的线程?请解释线程的创建、调度和同步。
2. 请简述Java中的线程状态,如新建、就绪、运行、阻塞、等待、超时等待、终止。
3. 什么是Java中的同步机制?请解释synchronized关键字的作用。
Java面试笔试题目汇总
![Java面试笔试题目汇总](https://img.taocdn.com/s3/m/daa8396e59fafab069dc5022aaea998fcc2240e7.png)
算法软件科技Java工程师笔试题一、选择题(可多选).1、Java 之所以可以实现夸平台,是因为Java 程序在运行时使用了:A: JDK (Java Development Kit )B: JRE (Java Runtime Environment )C:JVM (Java Virtual Machine )D:OS ( Operating System )2、下列不是Java语言中的关健字的是:A:public B:Static C:main D:void3、以下程序中最终输出i 的值是:int i = 999;i—-;++i;System。
out。
println(i++ );A:998 B:999 C:1000 D:10014、那个是合法的byte 类型的数据:A: 128 B: 127 C:—129 D:(int)—1305、以下b 的值是:byte b = (byte)129;A:-126 B:-127 C:—128 D:-1296、在JDK 1.7 中,对于switch 语句,switch 后面的()中不可以是哪种类型:A:byte B:char C: short D: int E:StringF: 枚举G:float H: double7、对于以下代码,输出结果是:for(int i = 4 ;i 〉0 ;i-- ){int j = 0 ;do{j++;if(j == 2 ){break;}}while(j < i );System.out。
print( j );A:4 3 2 1 B:1 2 2 2 C:2 2 2 1 D: 2 2 2 28、以下声明数组的方式,哪种是正确的:A: int[3 ][4 ] array;B: int[ 3 ][] array;C:char [] array [];D: String[][] array;E:Object array[][];F: Object array[][ 3 ];9、下列关于package 和import 语句的描述,正确的是:A:同一个类中package 可以出现1次或多次B: 同一个类中import 可以出现1 此或多次C:对于同一个类中,import 语句必须出现在该类的第一行(不含注释)D:同一个类中,package 必须出现在该类的第一行(不含注释)10、对于以下关于可变长参数的定义,正确的是:A:public void show( String[] aa, String..。
Java笔试题以及答案
![Java笔试题以及答案](https://img.taocdn.com/s3/m/50a25ac1d5bbfd0a79567362.png)
Java面试题以及答案1.J2EE是什么?答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。
所属层次包括客户层(clietn tier)组件,web层和组件,Business 层和组件,企业信息系统(EIS)层。
2.J2EE是技术还是平台还是框架?答:J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
3.MVC的各个部分都有那些技术来实现?如何实现?答:MVC是Model-View-Controller的简写。
"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现),"V iew" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。
6.C/S 与B/S 区别:答:有如下八个方面的不同:(1)硬件环境不同: (2)对安全要求不同(3)对程序架构不同(4)软件重用不同(5)系统维护不同(6)处理问题不同(7)用户接口不同(8)信息流不同7.什么是JNDI答:(Java Naming & Directory Interface)JA V A命名目录服务。
主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
8.什么是JMS答:(Java Message Service)JA V A消息服务。
Java面试题(带答案)Word版
![Java面试题(带答案)Word版](https://img.taocdn.com/s3/m/7b51e45067ec102de2bd8976.png)
湖南世杰Java工程师面试题选择题:单选题1,以下java程序代码,执行后的结果是( )java.util.HashMap map=newjava.util.HashMap();map.put("name",null);map.put("name","Jack");System.out.println(map.size());A: 0 B: null C: 1 D: 2答案:C2,执行以下程序后的输出结果是( )Public class Test {Public static void main(String[] args) {StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operator(a, b);System.out.println(a +","+ b);}Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x;}}A: A,A B: A,B C: B,B D: AB,B答案:D3,关于依赖注入,下列选项中说法错误的是( )A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装B:依赖注入使组件之间相互依赖,相互制约C:依赖注入提供使用接口编程D:依赖注入指对象在使用时动态注入答案:B4,关于spring说法错误的是( )A: spring是一个轻量级JAVA EE的框架集合B: spring是“依赖注入”模式的实现C: 使用spring可以实现声明事务D: spring提供了AOP方式的日志系统答案:D5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”)B: session.setAttribute(“key”,”value”)C: session.setAttribute(“key”)D: session.getAttribute(“key”)答案:B6,关于以下程序代码的说明正确的是?( )Public class HasStatic{Private static int x = 100;Public static void main(String args[]){HasStatic hs1= new HasStatic();hs1.x++;HasStatic hs2= new HasStatic();hs2.x++;hs1=new HasStatic();hs1.x++;HasStatic.x--;System.out.println("x="+x);}}A: 程序通过编译,输出结果为:x=103B: 10行不能通过编译,因为x是私有静态变量C: 5行不能通过编译,因为引用了私有静态变量D: 程序通过编译,输出结果为:x=102答案:D7,以下哪一项不是使用mvc模式设计的web应用程序所具有的优点( ) A:可维护行强B:可扩展性强C:代码重复少D:大大减少代码量答案:D8,在 myjsp.jsp 中,关于下面的代码说法错误的是: ( )<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>A: 该页面可以使用 exception 对象B: 该页面发生异常会转向 error.jspC: 存在 errorPage 属性时,isErrorPage 是默认为 falseD: error.jsp 页面一定要有isErrorPage 属性且值为 true答案:A9,关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是()A:它负责接收HTTP请求B:加载配置文件C:实现业务操作D:初始化上下应用对象ApplicationContext答案:C10,下面的类图表示的是哪个设计模式?( )A:代理模式(Proxy)B:装饰模式(Decorator)C:桥接模式(Bridge)D:观察者模式(Observer)答案:D11,java如何接受request域中的参数? ( )A: request.getRequestURL()B: request. getAttribute()C: request.getParameter()D: request.getWriter()答案:C12,对下面Spring声明式事务的配置含义的说明错误的是( )<bean id="txProxyTemplate"abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFact oryBean"><property name="transactionManager"ref="myTransactionManager"/><property name="transactionAttributes"><props><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean>A:定义了声明式事务的配置模板B: 对get方法采用只读事务C: 缺少sessionFactory属性的注入D: 配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:<bean id="petBiz" parent="txProxyTemplate"><property name="target" ref="petTarget"/></bean>答案:C13,下面的输出结果是什么?( )Public class Demo {Public static void main(String args[]){ String str = new String("hello");if(str=="hello"){System.out.println("true");}else{System.out.println("false");}}}A: trueB: falseC:编译不通过D:执行报错答案:B14,下面属于java合法变量定义的是?( ) A: finalB:1var1C: _var2D: var3&答案:C15,下面有关JSP内置对象的描述,说法错误的是?( )A: session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止B: request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应C: application对象:application对象实现了用户间数据的共享,可存放全局变量,可以有多个D: response对象:response对象包含了响应客户请求的有关信息答案:C16,Please choice the output result ( )public class Test{Public static void changeStr(String str){str ="welcome";}Public static void main(String[] args){String str ="1234";changeStr(str);System.out.println(str);}}A: 1234B: welcomeC: 空D: 不确定答案:A17,for(i=0;i<10;++i,sum+=i);i的最终结果是?( ) A: 10B: 9C: 11D: 以上答案都不正确答案:A18,对于下面这段代码,以下说法正确的是:( )Public class Test{Public int x;Public static void main(String args[]{System. out. println("Value is"+ x);}}A: 程序会打出 "Value is 0"B: 程序会抛出 NullPointerExceptionC: 非静态变量不能够被静态方法引用D: 编译器会抛出 "possible reference before assignment"的错误答案:C19,HashMap和HashTable的描述,错误的是? ( )A: 他们都实现了Map接口。
最新版精编2020年JAVA程序员笔试面试考核题库300题(含参考答案)
![最新版精编2020年JAVA程序员笔试面试考核题库300题(含参考答案)](https://img.taocdn.com/s3/m/40840a996294dd88d0d26bcc.png)
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.J2EE的三层模型是什么?答案:Model View Controller2.关于final下面哪些是错误的?A. final可以用来声明抽象类中的方法B. final可以用来声明接口中的方法C. 以上都不对D. final method不能被覆盖E. final class不能被继承答案:B3.下面哪些声明是错误的?A. char c = ‘\u0000’;B. int i=’a’;C. byte b=01;D. long l=1234567890L;E. int i=0xFFFFFFFF;答案:4.下面对数组的操作代码哪个是正确的?A. char[] a=”hello world”.toCharArray();B. char c=a[999];C. Class cc=a.getClass();D. int len=a.length;E. a.equals(new Object());F. char c=a[0];答案:DF5.定义整型变量:int n=456;,表达式的值为5的是:A. n/10B. n%10C. (n-n/100*100)/10D. n/10%10答案:CD6."int k=0;for(int i=5;i>0&k<10;i--){k+=i;}最后k的值是多少?答案://k=127.J2EE描述答案:"J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
java笔试题大全带答案(经典11题)
![java笔试题大全带答案(经典11题)](https://img.taocdn.com/s3/m/de8ad6b28662caaedd3383c4bb4cf7ec4afeb666.png)
java笔试题大全带答案(经典11题)1.不通过构造函数也能创建对象吗()A. 是(推荐学习:java面试题大汇总)B. 否分析:答案:AJava创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用ng.Class或者ng.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
(1)和(2)将显式调用构造函数;(3)它是内存中已有对象的副本,所以不会调用构造函数;(4)类的对象是从文件中恢复的,不会调用构造函数。
(1)和(2)将显式调用构造函数;(3)它是内存中已有对象的副本,所以不会调用构造函数;(4)类的对象是从文件中恢复的,不会调用构造函数。
2.下面哪些是对称加密算法()A. DESB. MD5C. DSAD. RSA分析:答案:A分析:常用的对称加密算法有:DES、3DES、RC2、RC4、AES 常用的非对称加密算法有:RSA、DSA、ECC使用单向散列函数的加密算法:MD5、SHA3.下面的代码段,当输入为2的时候返回值是()public static int get Value(int i){int result=0;switch(i){case 1:result=result +icase 2:result=result+i*2case 3:result=result+i*3}return result;}登录后复制A. 0B. 2C. 4D. 10答案:C分析:result = 0 + 2 * 2;4.以下Java代码段会产生几个对象public void test(){String a="a";String b="b";String c="c";c=a+""+b+""+c;System.out.print(c);}登录后复制分析:答案: 一个对象,因为编译期进行了优化,3个字符串常量直接折叠为一个5.Math.round(-11.2)的运行结果是。
java笔试面试题
![java笔试面试题](https://img.taocdn.com/s3/m/be44152352ea551810a68782.png)
一.单选题二.多选题三.简答题四.查错题五.编程题六.数据库一.单选题1.下列不可作为java语言修饰符的是(D)A) a1 B) $1C) _1 D) 112.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A)A) a1.java B) a1.classC) a1 D) 都对3.整型数据类型中,需要内存空间最少的是(D)A) short B) longC) int D) byte4. Java 类可以作为(C)A) 类型定义机制 B) 数据封装机制C) 类型定义机制和数据封装机制 D) 上述都不对5.在创建对象时必须(C)A) 先声明对象,然后才能使用对象B) 先声明对象,为对象分配内存空间,然后才能使用对象C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D) 上述说法都对6.在调用方法时,若要使方法改变实参的值,可以(B)A) 用基本数据类型作为参数B) 用对象作为参数C) A和B都对D) A和B都不对7. Java中(C)A) 一个子类可以有多个父类,一个父类也可以有多个子类B) 一个子类可以有多个父类,但一个父类只可以有一个子类C) 一个子类可以有一个父类,但一个父类可以有多个子类D) 上述说法都不对8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B)A) 安全性 B) 多线性C) 跨平台 D) 可移植9. Character流与Byte流的区别是(C)A) 每次读入的字节数不同B) 前者带有缓冲,后者没有C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用10.以下声明合法的是(D)A)default String s; B)public final static native int w( ) C)abstract double d; D)abstract final double hyperbolicCosine( )11.关于以下application的说明,正确的是(C)2. {3. static int x=10;4. static { x+=5;}5. public static void main(String args[ ])6. {7. System.out.println(“x=” + x); 8. }9. static { x/=3;}10. }A)4行与9行不能通过编译,因为缺少方法名和返回类型B)9行不能通过编译,因为只能有一个静态初始化器C)编译通过,执行结果为:x=5D)编译通过,执行结果为:x=312.关于以下程序代码的说明正确的是(D)1.class HasStatic{2. private static int x=100;3. public static void main(String args[ ]){4. HasStatic hs1=new HasStatic( );5. hs1.x++;6. HasStatic hs2=new HasStatic( );7. hs2.x++;8. hs1=new HasStatic( );9. hs1.x++;11. System.out.println(“x=”+x);12. }13. }A) 5行不能通过编译,因为引用了私有静态变量B) 10行不能通过编译,因为x是私有静态变量C) 程序通过编译,输出结果为:x=103D) 程序通过编译,输出结果为:x=10213.以下选项中循环结构合法的是(C)A)while (int i<7){i++;System.out.println(“i is “+i);}B) int j=3;while(j) {System.out.println(“ j is “+j);}C)int j=0;for(int k=0; j + k !=10; j++,k++) {System.out.println(“ j is “+ j + “k is”+ k);}D) int j=0;do{System.out.println( “j is “+j++);if (j = = 3) {continue loop;}}while (j<10);14. 类Test1定义如下:1.public class Test1{2. public float aMethod(float a,float B){ } 3.4.}将以下哪种方法插入行3是不合法的。
初级java程序员笔试题
![初级java程序员笔试题](https://img.taocdn.com/s3/m/7476d56a51e79b89680226f6.png)
标签:Java面试题第一题:判断题1.Java语言是一种面向对象程序设计语言。
( 对)2.在Java有布尔类型,该类型只能有两个值:1和0。
( 错)3.Java中一个类可以同时继承多个其他类,但只能实现一个接口。
( 错)4.在Java中字符串的长度和字符串中字符的个数是相等的。
( 对)5.程序中的异常是错误的一种,通过调试程序可以解决异常。
( 错)6.使用Java语言既可以读写二进制文件,又可以读写文本文件。
( 对)7.框架JFrame作为图形用户界面的顶级容器,原子组件是不能直接放置到框架的。
( 错) 8.当最小化小程序时就会调用小程序的stop()方法,暂时释放所占资源。
( 对)9.调试Java程序也就是运行Java程序,使用java命令即可完成。
( 错)10.线程就是程序,只不过是代码较少。
( 错)第二题:选择题以下对Java语言描述不正确的选项是〔C 〕A Java语言是一个完全面对对象的语言B Java是结构独立、与平台无关的语言C Java是一种编译性语言D Java是一种解释性语言以下说法正确的选项是〔C 〕A Java程序文件名必须是和程序文件中定义的类型一致B Java程序文件名可以和程序文件中定义的类名不一致C Java源程序文件的扩展名必须是.javaD以上A、C说法正确,B说法不正确以下有关运行Java应用程序〔Application〕正确的说法是〔B 〕A Java应用程序是由Java编译器解释执行的B Java应用程序经编译后生成的字节代码可由Java虚拟机解释执行C Java应用程序经编译后可直接在操作系统下运行D Java应用程序经编译后可直接在浏览器中运行4、以下有关标识符说法中正确的选项是〔C 〕A、任何字符的组合都可以形成一个标识符B、Java的关键字也可以作为标识符使用C、标识符是以字母、下划线或$开头,后跟字母、数字、下划线或$的字符组合D、标识符是不分大小写5、以下说法正确的选项是〔D 〕A、根本字符数据类型有字符和字符串两种B、字符类型占两个字节,可保存两个字符C、字符类型占两个字节,可保存一个字符D、以上说法都是错误的6、以下有关类型转变的说法错误的选项是〔D 〕A、低精度类型向高精度类型转换时,不会丧失数据精度B、系统会自动进行〔整型或浮点型〕低精度类型数据向高精度类型数据的转换C、高精度类型数据向低精度类型数据的转换、整型和浮点型数据之间的转换,必须强制进行,有可能会引起数据丧失D、高精度类型数据向低精度类型转换时,也不会丧失数据精度,因为转换是系统进行的7、以下正确的关系表达式〔D 〕A、x≥yB、x+yzC、>=xD、x+y!=z8、以下正确的逻辑表达式〔A〕A、(x+y>7)&&(x-y<1)B、!(x+y)C、〔x+y>7〕||(z=a)D、〔x+y+z〕&&(z>=0)9、以下有关条件运算符〔?:〕说法正确的选项是〔D〕A、条件运算符是一个三元运算符,其格式是:表达式1?表达式2:表达式3B、格式中的“表达式1〞是关系或者逻辑表达式,其值是boolean值C、假设“表达式1〞成立,该条件表达式取“表达式2〞的值,否那么取“表达式3〞的值D、以上说法都正确10、在if〔表达式〕语句中,“表达式〞的值必须是〔C 〕A、任意整数值B、字符串C、布尔逻辑值D、非零值11、在switch〔表达式〕语句中,“表达式〞的值必须是〔D 〕A、整数值B、字符值C、布尔逻辑值D、整数或字符值12、以下关于for循环和while循环的说法中,正确的选项是〔A 〕A、while循环能实现的操作,for循环也能实现B、while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C、两种循环任何时候都可以替换D、两种循环结构中必须都有循环体,循环体不能为空13、下面表达式中,用来访问数组中的第一个值的是〔C 〕A、intArray[1]B、intArray.1C、intArray[0]D、intArray.014下面的表达式中正确的选项是〔C 〕String s=〞你好〞;if(s==〞你好〞) System.out.println(true);String s=〞你好〞;if(s!=〞你好〞) System.out.println(false);String s=〞你好〞;if(s.equals(〞你好〞)) System.out.println(true);String s=〞你好〞;if(equals(s,〞你好〞)) System.out.println(true);15String str;System.out.println(str.length());以上语句的处理结果是〔A 〕A、编译报错B、运行结果是nullC、运行结果为0D、随机值16、执行String [ ] s=new String[10];代码后,下面结论正确的选项是〔D〕A、s[10]为〞〞B、s[10]为nullC、s[0]未定义D、s.length为1017、构造器〔B 〕被调用。
Java面试笔试试卷及答案2020
![Java面试笔试试卷及答案2020](https://img.taocdn.com/s3/m/780f8f41abea998fcc22bcd126fff705cd175c67.png)
JAVA开发试题(卷A)本试题第一、二部分是单项选择,共50题,每小题有且只有一个正确答案,每题2分。
请将答案写在答题纸上。
一、基础知识1、堆栈和队列的相同之处是_(1)__.(1) A.元素的进出满足先进后出 B.元素的进出满足后进先出C.只允许在端点进行插入和删除操作D.无共同点2、十进制数33用十六进制数表示为__(2)__。
A.33H B.21H C.FFH D.12H3、给定一个有n个元素的线性表,若采用顺序存储结构,则在等概率的前提下,向其插入一个元素需要移动的元素个数平均为_(3)__。
A.n + 1B.C.D.n4、判断“链式队列为空”的条件是_(4)_(front为头指针,rear为尾指针)A. front == NULLB. rear == NULLC.front == rearD.front != rear5、在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序算法是__(5)__。
A.冒泡排序B.基数排序C.快速排序D.归并排序6、计算机的总线包含地址总线、数据总线和控制总线。
某计算机CPU有16条地址总线,则该计算机最大的寻址空间为_(6)_字节。
A.32KB. 48KC.64KD.128K7、某页式存储管理系统中的地址结构如下图所示,则_(7)_。
页号页内地址页C.页的大小为4K,最多有1M页D.页的大小为8K,最多有2M页8、接收电子邮件时,通常使用的协议时_(8)_。
A.POP3B.SNMPC.FTPD.WWW9、下列元件中存取速度最快的是_(9)__。
A.CacheB.寄存器C.内存D.外存10、链表不具备的特点是_(10)__。
A.可随机访问任何一个元素B.插入、删除操作不需要移动元素C.无需先估计存储空间大小D.所需存储空间与线性表长度成正比11、在具有100个结点的树中,其边的数目为_(11)_。
A.101B.100C.99D.9812、PUSH 和 POP 命令常用于_(12)__操作。
java校招面试题目(3篇)
![java校招面试题目(3篇)](https://img.taocdn.com/s3/m/fcb864766fdb6f1aff00bed5b9f3f90f76c64dbf.png)
第1篇第一部分:基础知识1. Java基本概念(1)请解释Java中的面向对象编程(OOP)的特点。
解析:面向对象编程的特点包括封装、继承和多态。
封装是指将数据和对数据的操作封装在一个类中;继承是指允许一个类继承另一个类的属性和方法;多态是指同一个方法在不同对象上表现出不同的行为。
(2)简述Java中的四种访问控制符及其作用范围。
解析:Java中的四种访问控制符分别是public、protected、默认(不写)和private。
public可以访问任何类;protected可以在同一个包内和子类中访问;默认访问(不写)只能在同一个包内访问;private只能在类内部访问。
2. Java基本数据类型(1)请列出Java中的基本数据类型,并说明其特点和取值范围。
解析:Java中的基本数据类型包括byte、short、int、long、float、double、char和boolean。
byte和short为有符号整数类型,取值范围分别为-128到127和-32,768到32,767;int为基本整型,取值范围为-2,147,483,648到2,147,483,647;long为长整型,取值范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807;float和double为浮点数类型,取值范围分别为-3.4E38到3.4E38和-1.8E308到1.8E308;char为字符类型,取值范围为0到65,535;boolean为布尔类型,取值为true或false。
(2)简述Java中的自动装箱和拆箱。
解析:自动装箱是指将基本数据类型自动转换为包装类型(如int自动转换为Integer);自动拆箱是指将包装类型自动转换为基本数据类型。
在装箱和拆箱过程中,如果数据类型不匹配,会抛出ClassCastException异常。
3. Java关键字(1)请解释Java中的关键字final、static和synchronized。
Java基础面试题及答案(在后面)
![Java基础面试题及答案(在后面)](https://img.taocdn.com/s3/m/ad2b5ab90029bd64793e2c11.png)
JAVA基础部分-选择题(单选)1.在Java语言中,字符串“Java程序员”在内存中所占用的字节数是:()。
A.10B.7C.13D.142. (单选)下列表达式中,可以得到精确结果的是()。
A.double d1 = 3.0 - 2.6;B.double d4 = 2.5 * 1.5;C.double d2 = 30/300;D.double d3 = 1/2 + 0.5;3.(多选)所谓“水仙花”数是一个整数等于各位数字立方的和,例如:153 = 111+555+333,下面的程序用于输出2~1000内的水仙花数:下列选项中,空白处可以填入的代码是:()。
A.int s = 0, n1 = n; while (n1 > 0) { int t = n1 % 10; s += t * t * t; n1 /= 10; }B.int s = 0, n1 = n; while (n1 > 0) { int t = n1 / 10; s+= t * t * t; n1 %= 10; }C.int s = 0; for(int n1 = n; n1>0; n1 /= 10) { int t = n1%10; s += t * t * t; }D.int s = 0; for(int n1 = n; n1>0; n1 %= 10) { int t = n1 / 10; s += t * t * t; }4.下列语句序列执行后,k 的值是 ( )A.60B.5C.0D.545.设 a = 8,则表达式 a >>> 2 的值是:(无符号右移动)( )A.1B.2C.3D.46.下列程序在程序中插入下列哪一行代码可以编译通过: A static void doSomething(int[] args){}B static void doSomething(int... args){}C static coid doSomething(int...args,int x){}D static void doSomething(int x,int...args){}简答题1.现有一个长度为20的数组,数组内的数字0-9之间的任意数字,统计出数组中每个元素出现的次数?现有一个字符串"fdasafdasfdasa",现统计出子串"as"出现的次数.2.请描述冒泡排序算法的基本思想。
精选新版2020年JAVA程序员笔试面试考核题库完整版300题(含参考答案)
![精选新版2020年JAVA程序员笔试面试考核题库完整版300题(含参考答案)](https://img.taocdn.com/s3/m/e4d00930336c1eb91b375d13.png)
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.下面哪个Map是排序的?A. HashtableB. TreeMapC. HashMapD. WeakHashMapE. LinkedHashMap答案:E2.String s1=”Hello”表达式s1==”Hello”返回true or false答案:TRUE3.下列关于java程序结果错误的是A. 源文件可以没有 import 语句B. Package语句必须放在源文件的第一句C. 一个源文件可以有多个类定义D. 一个源文件可以定义多个public类答案:D4.将两个表连接在一起时,下面那一项通常是另外一个表的主键A. 外键B. 总控键C. 重复的组D. 主键答案:A5.EJB2.0 中定义了几种Enterprise Bean答案:Session bean, entity bean, message driven bean6.1. 保证在java应用程序中,一个类Class只有一个实例存在该使用什么设计模式答案:单例7.单选题答案:8.下面哪些赋值语句是错误的。
A. double d = 3.14D;B. double d = 5.3E12;C. double d = 3.14159;D. float f = 11.1;9."下面语句输出的结果是什么?int score = 9;switch (score){case 0:System.out.println();default: System.out.println(""Error"");case 3: System.out.println(""Good"");break;case 2: System.out.println(""Best"");}A. Error Good BestB. Error goodC. ErrorD. 没有任何输出答案:B10.定义整型变量:int n=456;,表达式的值为5的是:A. n/10B. n%10C. (n-n/100*100)/10D. n/10%10答案:CD11.如果从流中读取一个大数据量的XML文件并进行解析,最好使用哪种解析方式?A. 两种都可以,没有太大区别B. 两种都不可以C. DOM ParserD. SAX Parser答案:D12."下列语句顺序执行后,j的值是:int j=0;for(int i=5;i>0&j<10;i--)j+=i;A. 12B. 11C. 9D. 10答案:A13.如果要在JA V A中调用ORACLE的存储过程,需要使用下面哪个接口:A. CallableStatementB. StatementC. PreparedStatement14.Oracle中V ARCHAR2类型的最大长度是:A. 2000B. 3000C. 4000D. 1000答案:C15."Oracle中数值1234567.89如果放入Number(9,3)类型的变量中,存储的值是:A. 1234567.890B. 1234567.9C. 1234567.89D. 会报Numberic error答案:16."给出下面的不完整的类代码:class Person {String name, department;int age;public Person(String n) { name = n; }public Person(String n, int a) { name = n; age=a;}public Person(String n, String d, int a) {// doing the same as two arguments version of constructor// includeing assignment name=n, age=adepartment = d;}}下面的哪些的表达式可以加到构造方法中的”doing the same as…”处。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象的特征有哪些方面1. 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
11. 继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
18. 封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
22. 多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,26. 很好的解决了应用程序函数同名问题。
2、String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。
ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。
为了提高效率节省空间,我们应该用StringBuffer类3、int 和Integer 有什么区别Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。
Int是java的原始数据类型,Integer是java为int提供的封装类。
Java为每个原始类型提供了封装类。
原始类型封装类booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。
对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
4、String 和StringBuffer的区别JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String类提供了数值不可改变的字符串。
而这个StringBuffer类提供的字符串进行修改。
当你知道字符数据要改变的时候你就可以使用StringBuffer。
典型地,你可以使用StringBuffers来动态构造字符数据。
5、运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
6、说出Servlet的生命周期,并说出Servlet和CGI的区别。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service 方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
7、说出ArrayList,Vector, LinkedList的存储性能和特性ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean 和StatelessBean的区别。
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT 等技术实现。
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。
EntityBean被用来代表应用系统中用到的数据。
对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。
Session Bean 还可以再细分为Stateful Session Bean 与Stateless Session Bean ,这两种的Session Bean都可以将系统逻辑放在method之中执行,不同的是Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的Stateful Session Bean 的实体。
Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫Stateless Session Bean 的时候,EJB Container 并不会找寻特定的Stateless Session Bean 的实体来执行这个method。
换言之,很可能数个使用者在执行某个Stateless Session Bean 的methods 时,会是同一个Bean 的Instance 在执行。
从内存方面来看,Stateful Session Bean 与Stateless Session Bean 比较,Stateful Session Bean 会消耗J2EE Server 较多的内存,然而Stateful Session Bean 的优势却在于他可以维持使用者的状态。
9、Collection 和Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
10、&和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。
11、HashMap和Hashtable的区别。
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
12、final, finally, finalize的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
13、sleep() 和wait() 有什么区别? sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。
调用sleep 不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
14、Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
15、error和exception有什么区别?error 表示恢复不是不可能但很困难的情况下的一种严重问题。
比如说内存溢出。
不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。
也就是说,它表示如果程序运行正常,从不会发生的情况。
16、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
如果数据将在线程间共享。
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。