《java基础面试题答案.doc》由会员分享,可在线阅读,更多相关《java基础面试题答案.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ava基础1:jdk,jre,jvm分别是什么JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java虚拟机JDK是Java Develop Kit,Java的开发工具包2:3:public,protect和private区别public人缘好,跟谁都好,protect只和熟人好,private比较自闭不过他们是三胞胎class是他们的爹谁大你看着办吧4:this有两种用法publicclassTestprivateStringname;privateintage;publicTes
2、t()publicTest(Stringname)/this代表这个类声称后的对象,在内部可以取得这个类的属性this.name=name;publicTest(Stringname,intage)/这是第二中用法,跟第一种概念不一样,他值调用这个类的具有一个参数的构造方法this(name);/this代表这个类声称后的对象,在内部可以取得这个类的属性this.age=age;publicStringgetName()/this代表这个类声称后的对象,在内部可以取得这个类的属性returnname;publicvoidsetName(Stringname)/this代表这个类声称后的对象,在
3、内部可以取得这个类的属性,这里的是外部变量,跟是内部的属性,存放地质是不一样的。this.name=name;publicStringgetRealName()/类内部所以可以引用内部方法,把堪称是这个类声称后的对象在内部的调用就方便理解多了returnthis.getName()+John;5:Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的
4、,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 中类型表示范围如下:byte:8位,最大存储数据量是255,存放的数据范围是-128127之间。short:16位,最大数据存储量是65536,数据范围是-3276832767之间。int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。fl
5、oat:32位,数据范围在3.4e-451.4e38,直接赋值时必须在数字后加上f或F。double:64位,数据范围在4.9e-3241.8e308,赋值时可以加d或D也可以不加。boolean:只有true和false两个取值。char:16位,存储Unicode码,用单引号赋值。6:解释一下=号,他比较的是一个对象在内存中的地址值,比如2个字符串对象String s1 = new String(str);String s2 = new String(str);如果用=号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。equals的情况比较复杂,它是java.
6、lang.Object类中的一个方法。因为java中所有的类都默认继承于Object,所以所有的类都有这个方法。在Object类源码中是这样写的。public boolean equals(Object obj) return (this = obj);他同样使用=号进行内存地址的比较。但是许多java类中都重写了这个方法,比如String。public boolean equals(Object anObject) if (this = anObject) return true; if (anObject instanceof String) String anotherString =
7、(String)anObject; int n = count; if (n = anotherString.count) char v1 = value; char v2 = anotherString.value; int i = offset; int j = anotherString.offset; while (n- != 0) if (v1i+ != v2j+) return false; return true; return false; String里的方法,如果=号比较不相等,还会进行一下值的比较。所以equals方法具体的作用要看当前的那个类是如何实现重写父类中该方法的
8、。如果没有重写该方法,那么他和=号等价。1.2. this关键字含义,用法3. java中的基本数据类型4. =和equals的区别5. break和continue的区别6. switch里的参数7. final,finally和finalize的区别8. Collection和Collections的区别9. String,StringBuffer,StringBuild区别10. List、Map、Set三个接口,存取元素是,各有什么特点面向对象11. 面向对象特征分别是什么12. 重写和重载的区别13. 继承和多态的区别14. 抽象类和接口区别高级15. 进程线程的区别16. 启动一个
9、线程是用run()还是start()区别17. sleep()和wait()区别18. 线程的状态19. Error ,RuntimeException, Excception区别扩展20. Java的垃圾回收机制21. 内存泄露举例22. Java中的强引用和软引用区别23. 简述守护线程24. java与c+进程怎么通信编程运行结果1.运行结果原理class A /*父类构造方法*/ public A() System.out.println(A constructor); /*父类静态块*/ static System.out.println(A static Block); /*父类非
10、静态块*/ System.out.println(A non-static Block); /*父类静态方法*/ public static void printStaticMethod() System.out.println(A print Static Method); /*父类普通方法*/ public void printNormalMethod() System.out.println(A print Normal Method); class B extends A /*子类1构造方法*/ public B() System.out.println(B constructor);
11、 /*子类1静态块*/ static System.out.println(B static Block); /*子类1非静态块*/ System.out.println(B non-static Block); /*子类1静态方法*/ public static void printStaticMethod() System.out.println(B print Static Method); /*子类1普通方法*/ public void printNormalMethod() System.out.println(B print Normal Method); class C exte
12、nds A /*子类2构造方法*/ public C() System.out.println(C constructor); /*子类2静态块*/ static System.out.println(C static Block); /*子类2非静态块*/ System.out.println(C non-static Block); /*子类2静态方法*/ public static void printStaticMethod() System.out.println(C print Static Method); /*子类2没有override父类的普通方法*/public class
13、 Test public static void main(String args) A a1 = new B(); A a2 = new C(); a1.printStaticMethod(); a1.printNormalMethod(); a2.printStaticMethod(); a2.printNormalMethod(); A print Static MethodA print Normal Method2.代码块执行结果原理staticinttesttry()intret=0;tryret =1;returnret;finally/ ret=3;System.out.println(ret);/先执行try里的代码,在执行try的return之前,要先执行final字句结果是3 finallyblock会在return之前执行如果 int a = testtry()那a 的值是1,输出3 编程序1. 创建多线程的两种方法举例2. 线程同步3. 冒泡排序4. 快速排序