收藏 分享(赏)

java面试题及答案.doc

上传人:cjc2202537 文档编号:1196262 上传时间:2018-06-17 格式:DOC 页数:12 大小:60KB
下载 相关 举报
java面试题及答案.doc_第1页
第1页 / 共12页
java面试题及答案.doc_第2页
第2页 / 共12页
java面试题及答案.doc_第3页
第3页 / 共12页
java面试题及答案.doc_第4页
第4页 / 共12页
java面试题及答案.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、java 基础1. 用代码示例一个多态的例子2. java 的基本数据类型包括哪些,String 是基本的数据类型吗 ? 3. int 和 Integer 有什么区别 4. String 和 StringBuffer 的区别 5. Collection 和 Collections 的区别。 6. s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 15. Math.round(11.5)等於多少 ? Math.round(-11.5)等於多少? 16. String s = new String(“xyz“);创建了几个 String Object? 1

2、7. 设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。18. Java 有没有 goto? 19. 启动一个线程是用 run()还是 start()? 20. 应用服务器有那些,列出你所知道的例子? 21. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类22. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用= 还是 equals()? 23. 它们有何区别? 24. 构造器 Constructor 是否可被 override? 25. 是否可以继承 String 类? 26. s

3、wtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上? 27. try 里有一个 return 语句,那么紧跟在这个 try 后的 finally 里的 code 会不会 28. 编程题: 用最有效率的方法算出 2 乘以 8 等於几? 29. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 30. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法? 31. 编程题: 写一个 Singleton 的示例。 32. 数组有没有

4、length()这个方法? String 有没有 length()这个方法? 33、排除错误interface Playable void play(); interface Bounceable void play(); interface Rollable extends Playable, Bounceable Ball ball = new Ball(“PingPang“); class Ball implements Rollable /SQL 部分1.一个表中的 Id 有多个记录,把所有这个 id 的记录查出来,并显示共有多少条记录数。-Student 表有三列,分别是姓名、课程、

5、成绩Name Curricula Mark 张三 语文 70李四 数学 80王朝 英语 59城南 马哲 70王朝 语文 90. . . . .2.查询每门学科成绩及格(Mark 60)的学生的名字?指定学科查询:select Name from Studentwhere Curricula =指定学科and mark 60不指定学科,按照学科排序3.查询出总分排名前三的学员名字?总分排名前三的学员名字:答案:1. 用代码示例一个多态的例子子类 Wind 和 Brass 重写了父类 Instrument 中的 play 方法,是多态的一种表现。package javaBasic;class In

6、strumentpublic Instrument()System.out.println(“default constructor Instrument()“);public void play()System.out.println(“Play instrument()“);class Wind extends Instrumentpublic Wind()System.out.println(“default constructor Wind()“);public void play(int i)System.out.println(“Play Wind() “ +i);class Br

7、ass extends Instrumentpublic Brass()System.out.println(“default constructor Brass()“);public void play(String s)System.out.println(“Play Brass() “ +s);public class e1 public static void main(String args) / TODO Auto-generated method stubInstrument i1=new Wind();Instrument i2=new Brass();i1.play();i2

8、.play();new Wind().play();new Wind().play(25);new Brass().play();new Brass().play(“Hello world“);2. java 的基本数据类型包括哪些,String 是基本的数据类型吗 ?java 的基本数据类型包括:布尔型 boolean,整型,字符型 char 和浮点型,其中整型包括:字节型 byte,短整型 short,整型 int,长整型 long其中浮点型包括:单精度 float,双精度 doubleString 不是基本数据类型,是 java 中的类,是对象数据类型3. int 和 Integer 有

9、什么区别int 是基本数据类型,而 Integer 是 int 的包装类,它里面定义了很多转换方法。4. String 和 StringBuffer 的区别 String 是用于处理不可变的字符串,而 String 是处理可变字符串的。不可变字符串一旦创建,其内容就不可以改变,既不能插入新字符也不能改变字符串长度,而可变字符串则可以进行此类操作。5. Collection 和 Collections 的区别。Collections 是个 java.util 下的类,此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。 Collection 是个 java

10、.util 下的接口,它是各种集合结构的父接口。6. class Instrumentpublic Instrument()System.out.println(“default constructor Instrument()“);public void play()System.out.println(“Play instrument()“);class Wind extends Instrumentpublic Wind()System.out.println(“default constructor Wind()“);public void play(int i)System.out.

11、println(“Play Wind() “ +i);class Brass extends Instrumentpublic Brass()System.out.println(“default constructor Brass()“);public void play(String s)System.out.println(“Play Brass() “ +s);public class e1 public static void main(String args) / TODO Auto-generated method stubInstrument i1=new Wind();Ins

12、trument i2=new Brass();i1.play();i2.play();new Wind().play();new Wind().play(25);new Brass().play();new Brass().play(“Hello world“); Instrument 中重载(Overload)了 play 方法package javaBasic;public class e7_OverrideTest class Instrumentpublic Instrument()System.out.println(“default constructor Instrument()

13、“);public void play()System.out.println(“Play instrument()“);public void play(int i)System.out.println(“Play instrument() “ +i);public void play(String s)System.out.println(“Play instrument() “ +s);public static void main(String args) / TODO Auto-generated method stubInstrument in=new e7_OverrideTes

14、t().new Instrument();in.play();in.play(48);in.play(“Override!“);8. error 和 exception 有什么区别?exception 是异常,异常是在一个程序执行过程中出现的一个事件,它中断了正常指令的运行,只要使用异常处理机制做相应的处理,程序还是能跳过异常继续执行的。而 error 是错误,它是偏离了可接受的代码行为的一个动作或一个实例,是 Throwable 的一个子集,它指的是一个合理的应用程序不能截获的严重的问题。大多数都是反常的情况。9. abstract class 和 interface 有什么区别?abstr

15、act class 是抽象类,抽象类不允许直接用来创建对象,它的作用是为一些相关的类提供公共基类和为下层相关子类提供一些公用方法的实现代码,减少代码冗余。Interface 接口可以看做一种特殊的抽象类,它定义的仅是实现某种特定功能的一组对外接口和规范,而这个功能的真正实现是在在继承这个接口的各类中完成的。接口可以创建对象。10. final, finally, finalize 的区别,试用 java 代码示例。final 用于声明属性,方法,类,表示属性不可变,方法不可覆盖,类不可继承等;finally在异常处理是出现,表示代码总是执行;finalize 是一种方法,在垃圾收集器执行的时候

16、会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收。package javaBasic;import java.io.IOException;final class Bookboolean checkedOut=false;Book(boolean checkOut)checkedOut=checkOut;System.out.println(“new book()“);public void checkIn()checkedOut=false;protected void finalize()if(checkedOut)System.out.println(“error:

17、book should be checkedOut!“);/class Phylics extends Book / error: final class Book cannot be inherited./ Phylics(boolean check)/ super(check);/ System.out.println(“Phylics“);/ /public class e10_differencesInFinalFinallyFinalize public static void main(String args) throws IOExceptionfinal int i=0;/i=

18、2; /error: final int i can not be assignedBook novel=new Book(true);novel.checkIn();new Book(true);System.gc(); /system calls the function of finalize();tryint j=System.in.read(); /input a int than system calls finallycatch(Exception e)System.out.print(“error“);e.printStackTrace();finallySystem.out.

19、println(“input test.“);11. 什么时候用 assert。 试给出例子assert 是为了支持 assertion 而增加的一个关键字, assertion 用于对一个 boolean 表达式进行检查一个正确程序必须保证这个 boolean 表达式的值为 true;如果该值为 false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion 用于保证程序最基本、关键的正确性。assertion 检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion 检查通常是关闭的。Assert 在单元测试里会用到。12. forward

20、 和 redirect 的区别13. GC 是什么? 为什么要有 GC?GC 是垃圾收集器,Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理,要请求垃圾收集。14. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?S1 是 short 短整型,1 是 int 整型变量,s1 + 1 也是整型变量,要把 int 转换为 short 会造成精度流失,需进行强制转换 s1 = short(s1 + 1);short s1 = 1; s1 += 1;在编译和运行时不出错。15. Math.round(11.5)等於多少

21、? Math.round(-11.5)等於多少?Math.round(11.5)等于 12Math.round(-11.5)等于-1116. String s = new String(“xyz“);创建了几个 String Object?2 个,一个是字符串池中的“xyz“对象,另一个是堆中的 String 对象17.设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。package javaBasic;public class ThreadTest2 private int j = 0;public static void main(String

22、 args) ThreadTest2 test = new ThreadTest2 ();Add add1 = test.new Add();Add add2 = test.new Add();Minus minus1 = test.new Minus();Minus minus2 = test.new Minus();Thread thread1 = new Thread(add1);Thread thread2 = new Thread(add2);Thread thread3 = new Thread(minus1);Thread thread4 = new Thread(minus2)

23、;thread1.start();thread2.start();thread3.start();thread4.start();System.exit(0);class Add implements Runnable public void run() / TODO Auto-generated method stubj+;System.out.println(Thread.currentThread().getName()+j);class Minus implements Runnable public void run() / TODO Auto-generated method st

24、ubj-;System.out.println(Thread.currentThread().getName()+j);18. Java 有没有 goto?goto 是 java 中的保留字,但现在没有在 java 中使用。19. 启动一个线程是用 run()还是 start()启动一个线程是用 start(),它使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JVM 调度并执行,但这并不意味着线程就会立即运行。20. 应用服务器有哪些,列出你所知道的例子?Websphere , weblogic , jboss . iis21. 接口是否可继承接口? 抽象类是否可实现(implem

25、ents)接口? 抽象类是否可继承实体类接口可以继承接口。抽象类可以实现接口,抽象类可以继承实体类,不过这个实体类必须有明确的构造函数。22. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用= 还是 equals()?用 iterator()方法,此方法返回 此 set 中的元素上进行迭代的迭代器, 23. 它们有何区别? =,如果是基本数据类型的话是比较两个数值是否相等如果是对象的话则是比较引用是否相同而 equals 则是比较两个对象的内容是否相同24. 构造器 Constructor 是否可被 override? 构造器不能被继承,所以不能重写 overriding

26、,但是可以重载 overloading25. 是否可以继承 String 类?String 类是 final 类,所以不能被继承。26. swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?Switch 作用于整数值, byte 类型可以自动转换成 int 型,所以可以使用,但是不能用于long 和 String。27. try 里有一个 return 语句,那么紧跟在这个 try 后的 finally 里的 code 会不会执行?一定会被执行的,finally 里的 code 会在 return 之前执行28. 编程题: 用最有效率的方法算出

27、 2 乘以 8 等於几?package javaBasic;public class e28 public static void main(String args) int i=8;System.out.print(i1);29. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果, 是值传递,Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。30. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报