华为的Java面试题

1.IP地址的编码分为哪俩部分?
IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
2.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。
循环链表,用取余操作做
3.不能做switch()的参数类型是:
switch的参数不能为实型。
4. static有什么用途?(请至少说明两种)
a.限制变量的作用域
b.设置变量的存储域
7. 引用与指针有什么区别?
a 引用必须被初始化,指针不必。
b 引用初始化以后不能被改变,指针可以改变所指的对象。
c 不存在指向空值的引用,但是存在指向空值的指针。
8. 描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性
9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
全局变量储存在静态数据库,局部变量在堆栈
10. 什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1
11. 堆栈溢出一般是由什么原因导致的?
没有回收垃圾资源
12. 什么函数不能声明为虚函数?
constructor
13. 冒泡排序算法的时间复杂度是什么?
O(n^2)
14. 写出float x 与“零值”比较的if语句。
if(x>0.000001&&x<-0.000001)
16. Internet采用哪种网络协议?该协议的主要层次结构?
tcp/ip 应用层/传输层/网络层/数据链路层/物理层
17. Internet物理地址和IP地址转换采用什么协议?
ARP (Address Resolution Protocol)(地址解析協議)

 

第二篇:华为java笔试面试题20xx-_-

华为Java笔试题+数据库题123

一、 单项选择题

1.Java是从( )语言改进重新设计。

A.Ada B.C++ C.Pasacal D.BASIC 答案:B

2.下列语句哪一个正确( )

A. Java程序经编译后会产生machine code

B. Java程序经编译后会产生byte code

C. Java程序经编译后会产生DLL

D. 以上都不正确 答案:B

3.下列说法正确的有( )

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D. 一个class只能定义一个constructor 答案:C

4.提供Java存取数据库能力的包是( )

A.java.sql B.java.awt C.java.lang D.java.swing

5.下列运算符合法的是( )

A.&& B.<> C.if D.:= 答案:A

6.执行如下程序代码

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

后,C的值是( )

A.0 B.1 C.-1 D.死循环 答案:C

7.下列哪一种叙述是正确的( )

A. abstract修饰符可修饰字段、方法和类

B. 抽象方法的body部分必须用一对大括号{ }包住

C. 声明抽象方法,大括号可有可无

D. 声明抽象方法不可写出大括号 答案:D

8.下列语句正确的是( )

A. 形式参数可被视为local variable

B. 形式参数可被字段修饰符修饰

C. 形式参数为方法被调用时,真正被传递的参数

D. 形式参数不可以是对象 答案:A

9.下列哪种说法是正确的( )

A. 实例方法可直接调用超类的实例方法

B. 实例方法可直接调用超类的类方法

C. 实例方法可直接调用其他类的实例方法

D. 实例方法可直接调用本类的类方法 答案:D

二、 多项选择题

1.Java程序的种类有( )

A.类(Class) B.Applet C.Application D.Servlet

2.下列说法正确的有( )

A. 环境变量可在编译source code时指定

B. 在编译程序时,所能指定的环境变量不包括class path

C. javac一次可同时编译数个Java源文件 答案:A

D. javac.exe能指定编译结果要置于哪个目录(directory) 答案:BCD

3.下列标识符不合法的有( )

A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD

4.下列说法错误的有( )

A. 数组是一种对象

B. 数组属于一种原生类

C. int number=[]={31,23,33,43,35,63}

D. 数组的大小可以任意改变 答案:BCD

5.不能用来修饰interface的有( )

A.private B.public C.protected D.static 答案:ACD

6.下列正确的有( )

A. call by value不会改变实际参数的数值

B. call by reference能改变实际参数的参考地址

C. call by reference不能改变实际参数的参考地址

D. call by reference能改变实际参数的内容 答案:ACD

7.下列说法错误的有( )

A. 在类方法中可用this来调用本类的类方法

B. 在类方法中调用本类的类方法时可直接调用

C. 在类方法中只能调用本类中的类方法

D. 在类方法中绝对不能调用实例方法 答案:ACD

8.下列说法错误的有( )

A. Java面向对象语言容许单独的过程与函数存在

B. Java面向对象语言容许单独的方法存在

C. Java语言中的方法属于类中的成员(member)

D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同 答案:ABC

9.下列说法错误的有( )

A. 能被java.exe成功运行的java class文件必须有main()方法

B. J2SDK就是Java API

C. Appletviewer.exe可利用jar选项运行.jar文件

D. 能被Appletviewer成功运行的java class文件必须有main()方法 答案:BCD

三、 判断题

1.Java程序中的起始类名称必须与存放该类的文件名相同。( ) 答案:正确

2.Unicode是用16位来表示一个字的。( ) 答案:正确

3.原生类中的数据类型均可任意转换。( ) 答案:错误

1、给定如下JAVA 程序片断: class A{ public A(){ system.out.println(“A”); } } class B extends A{ public B(){System.out.println(“B”);} public static void main(String[] args){ B b=new B();} } 上述程序将( ).(选择一项)

A、 不能通过编译

B、通过编译,输出为: A B

C、通过编译,输出为: B

D、通过编译,输出为: A

2、某一 java程序中有如下代码: Datalnputstream din=new DataInputstream(new BufferedInputstream (new FileInputstream(“employee.dat”) )); 假设在employee.dat文件中只有如下一段字符:abcdefg。则:System.out.println(din)在屏幕上打印().(选择一项)

A、A

B、B

C、97

D、98

3、给定java代码片段,如下: int i=0,j=-1; switch(i){ case 0,1:j=1; case 2:j=2; } System.out.print("j="+j); 编译运行,正确的是()。(选择一项)

A、程序编译出错

B、j=1

C、j=2

D、j=0

4、在Java中,下面关于构造函数的描述正确的是()。(选择一项)

A、类必须有显式构造函数

B、它的返回类型是void

C、它和类有相同的名称,但它不能带任何参数

D、以上皆非

5、 在JAVA编程中,Swing包中的组件处理事件时,下面()是正确的。(选择一项)

A、 Swing包中的组件也是采用事件的授权得理模型来处理事件的

B、 Swing包中组件产生的事件类型,也都带有一个J字母,如:JmouseEvent

C、Swing包中的组件也可以采用事件的传递处理机制

D、 Swing包的组件所对应的事件适配器也是带有J字母的,如:JmouseAdapter

6、Public class EqTest { public static void main(String args[]){ EqTest e=new EqTest(); } EqTest(){ String s="Java"; String s2="java"; //在这儿放置测试代码 {System.out.println("相等");} else {System.out.println("不相等");} } } 在上面的Java代码的注释行位置,放置()测试代码能输出“相等”结果。(选择一项)

A、if(s==s2)

B、if(s.equals(s2))

C、if(s.equalsIgnoreCase(s2))

D、if(s.noCaseMatch(s2))

7、 在类的说明符中,被指定为私有的数据可以被以下()访问。(选择一项)

A、程序中的任何函数

B、其他类的成员函数

C、类中的成员函数

D、派生类中的成员函数

8、 在JAVA编程中,以下()命令用来执行java类文件。(选择一项)

A、javac

B、java

C、appletviewer

D、以上所有选项都不正确

9、Java中,下面的方法可以正确的创建一个Swing标签组件是()(选择两项)

A、ImageIcon icon = new ImageIcon(

B、ImageIcon icon = new ImageIcon(

C、ImageIcon icon=new ImageIcon(

D、JLabel label=new JLabel(SwingConstants.LEFT);

10、分析下面的用Java语言编写的trythis()方法: public void trythis(){ try{ System.out.print("a"); problem(); }catch(RuntimeException e){ System.out.print("b"); }catch(Exception e){ System.out.print("c"); }finally{ System.out.print("d"); } System.out.print("e"); } 当该方法被调用时,如果其中的problem()方法引发一个RuntimeException类的异常,那么输出结果将是()。(选择一项)

A、abcde

B、abd

C、abde

D、abe

11、 public class MyClass1{ public static void main (String argv[]){} _____ class MyInner {} } 在以上java代码中的横线上,可放置()修饰符。(选择三项)

A、public

B、private

C、static

D、friend

12、public class test3{ public static void main(String args[]){ for{int I=0;I<3;I++}{ for{int j=3; j>0;j--}{ If(I==j) continue; System.out.print}n(“I=”+I+”j=”+j) } } } } 上面的JAVA代码编译运行后,下列选项中,()会出现在输出结果中,(选择三项)

A、I=0 j=3

B、I=0 j=0

C、I=2 j=2

D、I=0 j=2

E、I=1 j=2 13、如下Java代码段,体现了()概念。(选择一项) ..... public void aMethod(String s){....} public void aMethod(int i){.........} public void aMethod(int I,float f){.....} .....

A、多继承

B、重载

C、重写

D、多态

14、java语言中,下列时处理输出操作的所有类的基础的是()(选择一个)

A、DataOutput

B、OutputStream

C、BufferedOutputStream

D、IOStream

15、在jave中,类Worker是类Person的子类,Worker的构造方法中有一句”super()”, 该语句 ( )。(选择一项)

A、a) 调用类Worker 中定义的super()方法

B、b) 调用类Person中定义的super()方法

C、c) 调用类Person的构造函数

D、d) 句法错误

16、在Java中,关于final关键字的说法正确的是()。(选择两项)

A、如果修饰变量,则一旦赋了值,就等同一个常量

B、如果修饰类,则该类只能被一个子类继承

C、如果修饰方法,则该方法不能在子类中被覆盖

D、如果修饰方法,则该方法所在的类不能被继承

17、在Java中,下列选项表示字符”a”值的是().(选择一项)

A、'a'

B、"a"

C、new Character(a)

D、\000a

18、给定java代码片段,如下: Integer a = new Integer(3); Integer b = new Integer(3); System.out.println(a==b); 运行后,这段代码将输出()。(选择一项)

A、true

B、false

C、0

D、1

19、Java程序中读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于10,使用throw

语句显式地引发异常,异常输出信息为“something’s wrong!”,语句为()。(选择一项)

A、if (I>10) throw Exception(“something’s wrong!”);

B、if (I>10) throw Exception e (“something’s wrong!”);

C、if (I>10) throw new Exception(“something’s wrong!”);

D、if (I>10) throw new Exception e (“something’s wrong!”);

20、42.给定两个java程序,如下:Text.java的编译运行结果是(). (选择一项) pubilc interface Face{ int count=40; } pubilc class Text implements Face{ private static int counter; pubilc static void main(String[]args){ System.out.println(++counter); } }

A、40

B、41

C、0

D、1

21、39.给定一个Java程序代码,如下:运行编译后,输出结果是(). (选择一项) pubilc class Test{ int count = 9; pubilc void count1(){ int count = 10; SYstem.out.println("count1"+count); } pubilc void count2(){ SYstem.out.println("count2"+count); } pubilc static void main(String args[]){ Test t =new Twst(); t.count1(); t.count2(); } }

A、count1=9 count2=9

B、count1=10 count2=9

C、count1=10 count2=10

D、count1=9 count2=10

22、37.给定java代码如下:要使用这段代码能够编译成功,横线处可以填入().(选择两项) pubilc int count(char c,int i,double d){ return______; }

A、c*i

B、c*(int)d

C、(int)c*d

D、i*d

23、 在 JAVA编程中,Java编译器会将Java程序转换为()。(选择一项)

A、字节码

B、可执行代码

C、机器代码

D、以上所有选项都不正确

24、在J2EE中,下列元素经过排序的集合类是()。(选择一项)

A、LinkedList

B、Stack

C、Hashtable

D、TreeSet

25、9) 分析下面的Java程序: public class yy { public static void main(String[] ards) throws Exception { try { throw new Exception(); }catch(Exception e){ System.out.println("Caught in main()"); } System.out.println("nothing"); } } 输出结果为()。(选择一项)

A、Caught in main() nothing

B、Caught in main()

C、nothing

D、没有任何输出

26、编译并运行下面的Java代码段: char c='a'; switch (c) { case 'a': System.out.println("a"); default: System.out.println("default"); } 输出结果是()。(选择一项)

A、代码无法编译,因为switch语句没有一个合法的表达式

B、a default

C、a

D、default

27、在Java中,执行下面的语句后,c的值为()。(选择一项) String s= "Jessica "; char c=s.charAt(6);

A、null

B、' '

C、'c '

D、'a '

28、在J2EE中,下面的代码中出现编译错误的是()。(选择一项)

A、File f = new File("/","autoexec.bat");

B、DataInputStream din = new DataInputStream(new FileInputStream("autoexec.bat"));

C、InputStreamReader in = new InputStreamReader(System.in);

D、OutputStreamWriter out = new OutputStreamWriter(System.in);

29、38.在JavaSwing编程中,要获取每次选择的JComboBox对象的选项值,可以使用()类型的监听器. (选择两项)

A、ActionListener

B、ltemListener

C、KeyListener

D、SelectionListener

30、在Java中,下面关于包的陈述中正确的是()。(选择两项)

A、包的声明必须是源文件的第一句代码

B、包的声明必须紧跟在import语句的后面

C、只有公共类才能放在包中

D、可以将多个源文件中的类放在同一个包中

31、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用( )关键字。(选择一项)

A、不需要任何关键字

B、private

C、final

D、protected

32、包pack1的类class1中有成员方法: protected void method_1(){?}, private void method_2(){?}, public void method_3(){?}和void method_4(){?},在包pack2中的类class2是class1的子类,你在class2中可以调用方法()。(选择两项)

A、method_1

B、method_2

C、method_3

D、method_4

33、在Java语言中,小明在他的包mypackage中定义了类My_Class,在mypackage的子包mysubpackage中也有个类My_Class。小明用.import mypackage:引入包,执行其中的语句:My_Class NewClass=New My_Class();时,将发生()。(选择一项)

A、创建一个类mypackage.My_Class对象

B、创建一个类mypackage. Mysubpackage.My_Class的对象

C、该语句是错误的

D、创建一个类mypackage.My_Class的对象和一个类mypackage. Mysubpackage.My_Class的对象 34、41.在JavaSwing编程中,给定一个java程序main方法的代码片段如下: JFrame jf=new JFrame(); jf.getContentpane().setLayout(null); jf.setSize(200,200); jf.setVisible(true); //a 要在界面上显示如下组件,则应在A处填入(). (选择一项)

A、JTextArea text = text JTextArea(100,100);text.setBounds(10,10,150,100);jf.getContentpane().add(text);

B、JTextField text = text JTextField(100,100);JScrollpane text=new JScrollpane(text);jf.setBounds(10,10,150,100);jf.getContentpane().add(jp);

C、JTextArea text = new JTextArea(100,1);JScrollpane jp=new

JScrollpane(text);jp.setBounds(10,10,150,100);jf.getContentpane().add(jp);

D、JTextArea text = new JTextArea(100,100);JScrollpane jp=new JScrollpane(text);jp.setBounds(10,10,150,100);jf.getContentpane().add(jp);

35、在JAVA语言中,你的按钮要实现下面的功能:当鼠标按下按钮时,显示“鼠标已按下”;当释放按键时,显示“鼠标已释放”。你必须具体定义接口MouseListener的()方法。(选择两项)

A、mouseClicked

B、mouseEntered

C、mouseExited

D、mousePressed

E、mouseReleaseed

36、JAVA中,为了辨别用户关闭窗口的时间,要实现监听器接口()。(选择一项)

A、MouseListener

B、ActionListener

C、WindowListener

D、以上都要

37、在Java语言中,当一个类的某个变量声明为protected时下列说法正确的是()。(选择两项)

A、只有同一类中的成员才能访问它

B、不同包中的任何其他类都能够访问它

C、同包中的任何其他类能够访问它

D、不同包中的子类可以访问该变量

38、在Java事件处理模型中,当按下鼠标按钮时,处理()事件。(选择一项)

A、mouseReleased

B、mouseExited

C、mousePressed

D、mouseDown

39、 String s1=new String(“Hello”); String s2=new String(“there”); String s3=new String("0"); 上面是JAVA程序的一些声明,以下选项中能够通过编译的是()。(选择一项)

A、a) s3=s1+s2

B、b) s3=s1&s2

C、c) s3=s1||s2

D、d) s3=s1&&s2

40、在Java中,调用Math.random() 方法可能返回的结果是()。(选择一项)

A、132.34

B、0.342

C、29.34E10

D、1.0009

41、 在Java语言中,Panel默认的布局管理器是()。(选择一项)

A、BorderLayout

B、FlowLayout

C、GridLayout

D、GridBagLayout

42、public class MyClass1 { public static void main(String argv[]){} ______class MyInner{} } 在以上Java代码的横线上,可放置()修饰符。(选择两项)

A、public

B、private

C、implements

D、friend

43、在java中,下列赋值语句正确的是()。(选择二项)

A、char c='a';

B、char c="a";

C、char c=97;

D、char c=new Character('a');

44、与传统的过程编程不同,面向对象方法的主要思想是()。(选择两项)

A、真实反映用户的实际需求

B、将现实世界的一切抽象为实体或对象

C、将现实世界细分为一个过程化实现

D、将软件组织成为对象的集合,将数据结构和行为结合在一起

45、在Java中,根据你的理解,下列方法()可能是类Orange的构造方法。(选择3项)

A、Orange(){?}

B、Orange(?){?}

C、Public void Orange(){?}

D、Public Orange(){?}

E、Public Orange Constuctor(){?}

46、45.在Java中,()借口位于集合框架的顶层. (选择一项)

A、Map

B、Collection

C、Set

D、List

47、给定某java程序片段,如下: int i=1; int j=i++; if((i>++j)&&(i++==j)) i+=j; System.out.println(i); 该程序运行后,i的输出结果为()。(选择一项)

A、1

B、2

C、3

D、4

48、在Java中,假设我们有一个实现ActionListener接口的类,以下方法中()能够为一个Button类注册这个类。(选择一项)

A、addListener()

B、addActionListener()

C、addButtonListener()

D、setListener()

49、44.在JAVA中的布局管理器,以下说法中错误的是(). (选择一项)

A、FlowLayout以由上到下的方式从左到右排列组件

B、BorderLayout使用 "东"."西"."南"."北","居中"来指定组件的位置

C、GridLayout可以创建网格布局,网格布局中各组的大小可以任意调整

D、可以通过容器的setLayout方法为容器指定布局管理

50、研究下面的Java代码: public class testException{ public static void main(String args[]){ int n[]={0,1,2,3,4}; int sum=0; try { for(int i=1;i<6;i++) sum=sum+n[i]; System.out.println("sum="+sum); } catch(ArrayIndexOutOfBoundsExpception e) { System.out.println("数组越界"); } finally{System.out.println("程序结束");} } } 输出结果将是()。(选择一项)

A、10 数组越界 程序结束

B、10 程序结束

C、数组越界 程序结束

D、程序结束

【java大本营】1、在java中如果声明一个类为final,表示什么意思?

答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。

2、父类的构造方法是否可以被子类覆盖(重写)?

答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。

3、请讲述String 和StringBuffer的区别。

答:String 类所定义的对象是用于存放“长度固定”的字符串。

StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。

4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢?

答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。

5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。

答: Sleeping睡眠的意思 : sleep() 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。

waiting等待的意思: 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。

6、谈谈你对抽象类和接口的理解。

答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。

接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。