常见的java面试问题有哪些?

先说说final的区别,最后是finalize。

最常被问到的问题。

第二,匿名内部类可以扩展其他类并实现接口吗?

三、静态嵌套类和内部类的区别,说的越多越好(有些面试问题很笼统)。

第四,&;和& & amp不同之处。

这个问题很少有人问。

第五,HashMap和Hashtable的区别。

常见问题。

第六,收藏与收藏的区别。

千万不能说一个是单数,一个是复数。

第七,什么时候使用assert。

API级别的技术人员可能会问这个。

第八,什么是GC?为什么会有GC?

基础。

第九,字符串s =新字符串(" XYZ ");创建了多少个stringobjects?

第十,Math.round(11.5)多少钱?什么是Math.round(-11.5)?

第十一,短s 1 = 1;s 1 = s 1+1;怎么了?短s 1 = 1;s 1+= 1;怎么了?

面试问题很变态,做好被虐的准备。

第十二,sleep()和wait()有什么区别?

线程的最爱。

第十三,Java有goto吗?

这是第十三个问题。如果哪个面试官问这个问题,我劝你不要进这家公司。

第十四,数组有length()方法吗?String有length()方法吗?

第五,超载和越权的区别。重载的方法可以改变返回值的类型吗?

常见问题。

第十六,集合中的元素不能重复,那么用什么方法来区分是否重复呢?是= =还是等于()?两者有什么区别?

第十七,给我一个你最常听到的运行时异常。

如果你不能回答这个问题,面试官会认为你没有实际编程经验。

第十八,错误和异常有什么区别?

第十九,list,set,map是否从集合接口继承?

第二十,抽象类和接口有什么区别?

常见问题。

第二十一,抽象方法可以同时是静态的、原生的和同步的吗?

第二十二,接口可以继承接口吗?抽象类可以实现接口吗?抽象类可以继承具体类吗?

第二十三,你是用run()还是start()来启动一个线程?

第二十四,构造函数可以被重写吗

第二十五,可以继承字符串类吗?

第二十六,当一个线程进入一个对象的同步方法时,其他线程可以进入这个对象的其他方法吗?

第二十七,try {}中有一个return语句,那么这个try之后的finally {}中的代码是否会立即执行,什么时候执行,return之前还是之后?

第二十八,编程问题:用最高效的方法计算2乘8等于多少?

有C背景的程序员特别喜欢问这种问题。

第二十九,两个对象有相同的值(x.equals(y) == true),但是可以有不同的哈希码。这是正确的吗?

第三十,当一个对象作为参数传递给一个方法时,这个方法可以改变对象的属性,返回改变后的结果。那么,这个是值传递还是引用传递呢?

第三十一,swtich可以作用于byte,long,String吗?

第三十二,编程问题:写一个单体。

好吧,先说说那个。

答:

先说说final的区别,最后是finalize。

Final-Modifier(关键字)如果一个类被声明为Final,就意味着它不能再派生新的子类,也不能作为父类继承。因此,一个类不能同时声明为abstract和final。将变量或方法声明为final可以确保它们在使用中不会被更改。声明为final的变量必须在声明时被赋予一个初始值,并且在以后的引用中只能读取不能修改。声明为final的方法也只能使用,不能重载。

Finally—提供一个Finally块,以便在异常处理期间执行任何清理操作。如果抛出异常,将执行匹配的catch子句,然后控制将进入finally块(如果有)。

完成--方法名称。Java技术允许使用finalize()方法在垃圾收集器从内存中清除对象之前进行必要的清理。当确定对象未被引用时,垃圾回收器调用此方法。它是在Object类中定义的,所以所有的类都继承它。子类覆盖finalize()方法来组织系统资源或执行其他清理任务。在垃圾收集器删除该对象之前,会对其调用finalize()方法。

第二,匿名内部类可以扩展其他类并实现接口吗?

匿名内部类是没有名字的内部类。您不能扩展其他类,但是一个内部类可以被另一个内部类实现为接口。

三、静态嵌套类和内部类的区别,说的越多越好(有些面试问题很笼统)。

嵌套类(通常是C++),内部类(通常是JAVA)。Java内部类和C++嵌套类最大的区别就是有没有对外部的引用。详见/articles/services/view.asp?id = 704 & amppage=1

注意:静态内部类是指1创建一个没有外部类对象的静态内部类的对象,2不能从静态内部类的对象访问外部类对象。

第四,&;和& & amp不同之处。

& amp是位运算符。& amp& amp是布尔逻辑运算符。

第五,HashMap和Hashtable的区别。

都属于Map接口的类,实现了唯一键到特定值的映射。

HashMap类没有被分类或排序。它允许一个空键和多个空值。

Hashtable类似于HashMap,但是不允许空键和空值。它也比HashMap慢,因为它是同步的。

第六,收藏与收藏的区别。

Collections是java.util下的一个类,包含了各种关于集合操作的静态方法。

集合是java.util下的一个接口,是各种集合结构的父接口。第七,什么时候使用assert。

断言是包含布尔表达式的语句,在执行时假设为真。如果表达式的计算结果为false,则报告Assertionerror。它用于调试目的:

断言(a & gt0);//如果& lt= 0

断言有两种形式:

断言表达式1;

assert expression 1:expression 2;

Expression1应该总是产生一个布尔值。

Expression2可以是任何产生值的表达式。该值用于生成显示更多调试信息的字符串消息。

默认情况下,断言是禁用的。要在编译时启用断言,您需要使用source 1.4标记:

javac-source 1.4 Test.java

要在运行时启用断言,可以使用-enableassertions或-ea标记。

要选择在运行时禁用断言,可以使用-da或-disable assessments标记。

要在系统类中启用断言,可以使用-esa或-dsa标记。您还可以在包的基础上启用或禁用断言。

断言可以放在正常情况下不会到达的任何地方。断言可以用来验证传递给私有方法的参数。但是,断言不应该用于验证传递给公共方法的参数,因为无论断言是否启用,公共方法都必须检查它们的参数。但是,您可以在公共和非公共方法中使用断言来测试后置条件。此外,断言不应该以任何方式改变程序的状态。

第八,什么是GC?为什么会有GC?(基础)。

GC是一个垃圾收集器。Java程序员不必担心内存管理,因为垃圾收集器会自动管理它。若要请求垃圾回收,可以调用下列方法之一:

System.gc()

Runtime.getRuntime()。gc()

第九,字符串s =新字符串(" XYZ ");创建了多少个stringobjects?

两个对象,一个是“xyx”,另一个是指向“xyx”的引用对象S。

第十,Math.round(11.5)多少钱?Math.round多少钱(-11.5)?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;