Java面试笔试题大汇总
(完整版)华为java笔试面试题

华为Java笔试题+数据库题一、单项选择题 1.Java是从( B)语言改进重新设计。
A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确(B ) A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 3.下列说法正确的有(C ) A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 4.提供Java存取数据库能力的包是( A) A.java.sql B.java.awt C.ng D.java.swing 5.下列运算符合法的是( A) A.&& B.<> C.if D.:= 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是(C ) A.0 B.1 C.-1 D.死循环 7.下列哪一种叙述是正确的( D) A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 8.下列语句正确的是( C) A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 9.下列哪种说法是正确的(A ) A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 二、多项选择题 1.Java程序的种类有(BCD ) A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有( BCD) A.环境变量可在编译source code时指定 D. javac.exe能指定编译结果要置于哪个目录(directory) 3.下列标识符不合法的有( ACD) A.new B.$Usdollars C.1234 D.car.taxi 4.下列说法错误的有(BCD) A.数组是一种对象 B.数组属于一种原生类 C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 5.不能用来修饰interface的有(ACD ) A.private B.public C.protected D.static 6.下列正确的有(ACD ) A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容 7.下列说法错误的有( ACD) A.在类方法中可用this来调用本类的类方法 B.在类方法中调用本类的类方法时可直接调用 C.在类方法中只能调用本类中的类方法 D.在类方法中绝对不能调用实例方法 8.下列说法错误的有(ABC ) A. Java面向对象语言容许单独的过程与函数存在 B. Java面向对象语言容许单独的方法存在 C. Java语言中的方法属于类中的成员(member) D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同 9.下列说法错误的有(BCD ) A.能被java.exe成功运行的java class文件必须有main()方法 B. J2SDK就是Java API C. Appletviewer.exe可利用jar选项运行.jar文件 D.能被Appletviewer成功运行的java class文件必须有main()方法 三、判断题 1.Java程序中的起始类名称必须与存放该类的文件名相同。
Java经典面试笔试题及答案

1.什么是对象序列化,为什么要使用?所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上。
好处:方便远程调用。
2.值传递与引用传递的区别?所谓值传递就是把一个对象的值传给一个新的变量,但是系统会给这个新的变量开辟一个新的内存空间。
不会改变原有的值所谓引用传递就是把一个对象在堆中保存的数据传递给一个变量,此时新的变量与原有的变量对应同一个内存存储空间,当新的变量修改对象的属性时,内存中的数据也会修改。
3.接口与抽象类的区别?1:接口里面不可以实现方法体,抽象类可以实现方法体。
2:接口可以多继承接口,抽象类不可以。
3:接口需要被子类实现,抽象类是要被子类继承(单一继承)。
4:接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性.5: 接口中不能存在静态方法,但属性可以和final,抽象类中方法中可以有静态方法,属性也可以。
4.谈谈继承,为什么要使用继承?所谓继承就是找出几个类中共同的部分,提取出来作为父类。
而子类只需要继承父类,就可以共享父类的方法。
使用继承能够减少重复的代码。
5.方法重载的好处?所谓重载就是在一个类中可以定义多个相同的方法,但是方法的参数类型和参数的个数以及顺序要不同。
重载的好处就是能够让我们很快的掌握该方法的功能,我们只要要记住该方法就能很快的理解该方法的参数以及参数的作用6.项目中印象最深的部分?我觉得在该项目中我体现到了反射技术的强大之处,原来我一直不清楚反射是一种什么样的技术,只知道一些概念上的知识,经过这个项目之后,终于知道该怎样灵活运用反射,以及在什么时候运用。
谈谈你对面向对象的理解与认识?我觉得使用面向对象这种思维的方式比较符合我们人类的思想,不需要去学习一些什么新的思考方式,就按照现实生活做的一些故事就能让人理解该内容的知识以及他们的作用。
我的看法就是:1:当加入新的功能的时候不会修改原有的代码。
(面向接口编程) 2: 当我们写的一个类可以重复的运用在其他项目中。
JAVA软件工程师面试笔试试卷

JAVA软件工程师面试笔试试卷JAVA软件工程师笔试试题(考试时间:120分钟试卷分值:150分)一、逻辑推理题【10分】1、甲、乙、丙、丁四位同学中有一位同学为海啸灾区捐款1000元,当老师询问时,她们分别这样回答:甲:这1000元不是我捐的乙:这1000元是丁捐的丙:这1000元是乙捐的丁:这1000元不是我捐的这四人中只有一个人说了真话,由此可见这1000元是谁捐的( A)。
【2分】A.甲 B.乙 C.丙 D.丁2、甲、乙、丙三人是同一家公司的员工,她们的未婚妻A、B、C也都是这家公司的职员。
知情者介绍说:“A的未婚夫是乙的好友,并在三个男子中最年轻;丙的年龄比C的未婚夫大。
”依据该知情者提供的情况,我们能够推出三对组合分别是(D )。
【3分】A.甲—A,乙—B,丙—CB.甲—B,乙—A,丙—CC.甲—C,乙—B,丙—AD.甲—A,乙—C,丙—B3、甲乙丙丁四人的车分别为白色、银色、蓝色和红色。
在问到她们各自车的颜色时,甲说:“乙的车不是白色。
”乙说:“丙的车是红色的。
”丙说:“丁的车不是蓝色的。
”,丁说:“甲、乙、丙三人中有一个人的车是红色的,而且只有这个人说的是实话。
”如果丁说的是实话,那么以下说法正确的是(B):【2分】A.甲的车是白色的,乙的车是银色的 B.乙的车是蓝色的,丙的车是红色的C.丙的车是白色的,丁的车是蓝色的 D.丁的车是银色的,甲的车是红色的二、基础理论题【20分】1. Java是一种先__编译______后__解释_____运行的语言。
(提示:填编译或者解释)【1分】2. 栈是____________先进后出_____的线性表,队列是__先进先出__________的线性表。
【2分】3. 面向对象的基本特征____封装____,_继承________,__多肽________。
【3分】4. 事务包含4个基本特征,即ACID,它们分别指__________,__________,__________,__________【2分】5. Math.round(11.5)等于_12.0_____。
java笔试题大全带答案(经典11题)

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工程师笔试题一、选择题(可多选)。
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... a ){}B: public void show( String... a , String[] aa){}C: public void show( String... a ){}D: public void show( String a, double b , String... a){}11、关于接口的使用,正确的是:public interface Usb {}public abstrace class Interface {}A: public interface Usb1 extends Usb {}B: public interface Usb1 implements Usb {}C: public interface Usb1 extends Interface {}D: public interface Usb1 implements Interface {}12、以下哪个不是Collection的子接口?A: List B: Set C: SortedSet D: Map13、对Map 的用法,正确的有:A: new java.util.Map().put("key" , "value") ;B: new java.util.SortedMap().put("key" , "value") ;C: new java.util.HashMap().put( null , null ) ;D: new java.util.TreeMap().put( 0 , null ) ;14、对于异常处理,一下描述哪个是正确的:A: 捕获异常是一种积极的异常处理方式,通过try 、catch 等关键字来实现B: try 必须跟catch 连用,而finally 是可以没有的C: catch 之后的( ) 用于接收异常对象,因此需要指定异常类型和变量名称,比如catch( Exception e )D: 在JDK 1.7 中,允许在catch 中捕获多个类型异常,如catch( NullPointerException e1 | ClassCastException e2 )E: 对于finally 代码块而言,仅当执行try 语句并没有触发异常时才执行,如果发生异常则进入catch 代码块,不再执行finally 代码块15、Hashtable 和HashMap 的区别是:A: Hashtable 是一个哈希表,该类继承了AbstractMap,实现了Map 接口B: HashMap 是内部基于哈希表实现,该类继承AbstractMap,实现Map接口C: Hashtable 线程安全的,而HashMap 是线程不安全的D: Properties 类继承了Hashtable 类,而Hashtable 类则继承Dictionary 类E: Hashtable 直接使用对象的hashCode ,而HashMap 重新计算hash值。
中科软java程序员笔试题面试题

编程语言方面。
(满分100分)一、选择题1、public class test{String s = new String (“Hello”);Notify(s);System.out.println(s);}Public static void notify(String s){S += “world”;}What is the return ?(5分)A . The program runs and prints “Hello”B . As error causes compilation to fail.C . The program tuns and prints “Hello world!”D . The program runs but aborts with 按exception2 .Public class test{public static String output = "";public static void foo (int i){try{if(i==1){throw new Exception e;}}}}A . 14323B . 24313C . 13423D .132433 .If (x>0) { System.out.println(“first”);}else if (x>-3) { System.out.println(“second”); }else { System.out.println(“third”); }Which range of a value would prim the string “”(5分)A . x > 0B . x > -3C . X <= -3D . X <= 0 & x > -34.以下代码输出是()Public class Test{Static int value =19;Public static void main(String[] args)throws Exception{Test().printValue();}Private void printValue(){int value =69;System.out.println(this.value);}}二、简答1、说明MVC各层的作用,请尽量列举各层所采用的技术或者框架2、什么情况下会使用java序列化,如何实现java序列化?3、哪些框架或技术里用到了拦截器或者过滤器,其作用是什么?4、AJAX中的XMLHttpRequest对象在IE和Firefox中分别如何创建5、jquery的选择器有哪几种?请简单说明其含义6.列举JSP中的内置对象,7.JSP如何获取HTML FORM 中的数据?(15分)8.介绍在jsp中如何使用JavaBean。
JAVA笔试题--基础很全有答案

JAVA笔试题--基础很全有答案第一组1.下列不可作为java语言修饰符的是(D)A)a1B)$1C)_1D)112.有一段java应用程序,它的主类名是a1,那么保存它的源文件名可以是(A)A)a1.javaB)a1.claC)a1D)都对3.整型数据类型中,需要内存空间最少的是(D)A)hortB)longC)intD)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、defaultString;B、publicfinaltaticnativeintw()C、abtractdoubled;D、abtractfinaldoublehyperbolicCoine()11.关于以下application的说明,正确的是(C)1.claStaticStuff2.{3.taticint某=10;4.tatic{某+=5;}5.publictaticvoidmain(Stringarg[])6.{7.Sytem.out.println(“某=”+某);8.}9.tatic{某/=3;}10.}A、4行与9行不能通过编译,因为缺少方法名和返回类型B、9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:某=5D、编译通过,执行结果为:某=312.关于以下程序代码的说明正确的是(D)1.claHaStatic{2.privatetaticint某=100;3.publictaticvoidmain(Stringarg[]){4.HaStatich1=newHaStatic();5.h1.某++;6.HaStatich2=newHaStatic();7.h2.某++;8.h1=newHaStatic();9.h1.某++;10.HaStatic.某--;11.Sytem.out.println(“某=”+某);12.}13.}A、5行不能通过编译,因为引用了私有静态变量B、10行不能通过编译,因为某是私有静态变量C、程序通过编译,输出结果为:某=103D、程序通过编译,输出结果为:某=10213.以下选项中循环结构合法的是(C)A、while(inti<7){i++;Sytem.out.println(“ii“+i);}B、intj=3;while(j){Sytem.out.println(“ji“+j);}C、intj=0;for(intk=0;j+k!=10;j++,k++){Sytem.out.println(“ji“+j+“ki”+k);}D、intj=0;do{Sytem.out.println(“ji“+j++);if(j==3){continueloop;}}while(j<10);14.类Tet1定义如下:1.publicclaTet1{2.publicfloataMethod(floata,floatb){}3.4.}将以下哪种方法插入行3是不合法的。
Java经典面试题及答案(200题)

Java经典面试题及答案(200题) Java经典面试题200道Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。
简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
2. == 和 equals 的区别是什么?「== 解读」对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都为 true。
「equals 解读」equals 本质上就是 ==,只不过 String 和 Integer 等重写了equals 方法,把它变成了值比较。