100道Java面试题常见面试题及答案汇总.pdf
《100道Java面试题常见面试题及答案汇总.pdf》由会员分享,可在线阅读,更多相关《100道Java面试题常见面试题及答案汇总.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、100道最新Java面试题,常见面试题及答案汇总除了掌握扎实的专业技能之外,你还需要一份Java程序员面试宝典才能在万千面试者中杀出重围,成功拿下。ffer。小编特意整理了 100道Java面试题,送给大家,希望大家都能顺利通过面试,拿下高薪。赶紧码住吧一文末有福利Q1:Java内部类和子类之间有什么区别?答案:内部类是指在一个外部类的内部再定义一个类,内部类对外部类有访问权限,可以访问类中定义的所有变量和方法。子类是从父类(superclass)中继承的类,子类可以访问父类所有public和protected的字段和方法。Q2:Java语言中有哪些常见的访问说明符,有什么意义?答案:Java
2、中的访问说明符是放在类名之前,用于定义访问范围的关键字,常见的访问说明符有以下几类:Public:公共,能被项目中的任何一个Class、Method,Field访问。Protected:受保护,能被同类或子类访问,不能从外部访问。Default:默认,只能被同一个包的Cgss、Method.Field访问。Private:私有,只能被本类访问。Q 3:静态方法和静态变量的目的是什么?答案:静态变量被类的所有实例共用,静态类只能访问类的静态变量,或调用类的静态方法。Q 4:什么是数据封装及其意义?答案:封装是面向对象编程中用于在单个单元中组合属性和方法。封装可以帮助程序员遵循模块化方法进行软件开
3、发,每个对象都有自己的一组方法和变量,并且可以独立于其他对象来执行其功能。另外,封装也有数据隐藏的目的。Q 5:什么是singleton class(单例类)?并给出其用法的实际例子。答案:单例类只能有一个实例,必须自己创建自己的唯一实例,必须给所有其他对象提供这一实例。单例使用场景的最佳实践是由于某些驱动程序限制或由于许可问题的限制只能连接数据库。Q 6:什么是循环?Java中有哪些循环?答案:循环用于编程中重复执行语句,Java中的循环有三类:1、for循环for循环用于执行指定重复次数的语句,当程序员明确知道循环次数可以使用for循环。2、While循环当语句满足条件时开始进行重复执行,
4、直到语句不再满足条件退出循环。While循环中在执行语句之前先检查是否满足条件。3、do while循环Do while和while循环基本类似,唯一不同的是d。while是先执行语句再检查条件,也就是说do while循环至少会执行一次语句。Q 7:什么是无限循环?如何声明无限循环?答案:无限循环是指无条件执行,无限运行。无限循环可以由定义中断语句块来结束。Q8:continue和break语句有什么区别?答案:break和continue都是循环中的重要关键词,break语句是结束整个循环过程,continue语句只结束本次循环,而不是终止整个循环的执行。Break:1 for(count
5、er=0;counterZ System.out.prtntln(counter);34 i f (counters)S6 break;Continue:1 for(counter-0;counterL System.out.pnntln(counter);34 if (counter-4)56 continue;78 910 System.outprtntln(*Thts w ill not get printed when counter ts 4);Q9:Java中的double和float变量有什么区别?答案:float是单精度浮点数,内存中占用4字节,douBle是双精度浮点数,内存
6、中占用8字节。Q10:Java中的Final关键字是什么意思?请举例说明答案:final是Java中的关键字,有“无法改变”、“终态”的 含 义final类不能被继承,没有子类,final类中的方法默认是final的,且不能被子类的方法覆盖,但可以被继承final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法。下面的例子中,const_val被声明且赋值为常量100:Private Final int const_val=100而当一个方法被声明为final之后,它不能被子类覆盖,而且会比其他方法都快。Q 11:举例说明什么是三元运算符?答案:三元运算符,也
7、称为条件运算符,根据布尔值来决定将哪个值分配给变量,它被表示为?:在下面的示例中,如果rank为1,status=Done,否则status=Pending1 public closs condtrtonTest Z public static void moin(string args口)(.String status;J Int rank;)status-(rank 1)7 Done Pending;Q 12:如何在Java中生成随机数?答案:使用Math.random()可以生成0.1至UI.0范围内的随机数字,然后通过数学方法实现生成符合要求的随机数。Q13:举例说明什么是defaul
8、t switch case答案:在switch语句中,如果没有case条件匹配,那么它会就会执行default后面的语句。在下面的例子中,当score既不是1也不是2时,就会执行default之后的语句。1 p u b l i c c l a s s S M t c h E x a m p l e (Z m t s c o r e=4;p u b l i c s t a t i c v o i d m a t n C S t n n g c r g s d)4 s w i t c h (s c o r e)5 c a s e 1:6 S y s t e m.o u t.p r i n t l
9、n C S c o r e i s 1 );7 b r e a k;8 c a s e 2:9 s y s t e m.o u t.p r i n t l n f S c o r e i s ”);L O b r e a k;1:d e f a u l t1 2 S y s t e f n _ o u t.p r i n t l r(D e f(3 u l t C a s e ).1 3 )1 41 5 Y UQ14:Java中所有派生类的基类是什么答案:java.lang.objectQ15:Java中的main()方法可以返回任何数据吗?答案:java中的main()方法不能返回任何数据,
10、它的返回类型始终是void。Q1 6:什么是Java Packages?其意义是什么?答案:为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。包的作用:1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。Q 1 7:我们可以声明一个抽象类,但是没有任何抽象方法吗?答案:是的,我们可以声明一个抽象类,且不包含
11、任何抽象方法,但是一旦一个类中含有一个抽象方法,那么该类必须声明为抽象。Q18:Java中的抽象类和接口有什么区别?答案:抽象类和接口之间的主要区别在于,抽象类可以拥有任意范围的成员数据,同时也可以拥有自己的非抽象方法,但是接口方式中,它仅能够有静态、不能修改的成员数据,同时它所有的方法都必须是抽象的。抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。一个类可以实现多个接口,但它只能扩展一个抽象类。Q 1 9:接口对抽象类的性能影响是什么?答案:与抽象类相比,接口性能较慢。一个类只能扩展一个抽象类,却能实现许多接口,随着
12、接口在类中的实现,也会给开发人员带来额外负担。Q20:Java中导入包时,其子包是否会被导入?答案:在Java中导入包时,其子包不会被导入,如果有需要,开发者必须单独导入。开发者需要单独导入它们。Q21:类中的main方法可以声明为private?答案:Java中main方法必须是public,如果是private,那么它虽然在编译时不会出错,但是在运行时会出错。Q 2 2:我们能不能通过引用向函数传递参数?答案:不能,我们只能通过引用将值传递给函数。Q 23:对象在java中如何序列化?答案:序列化是指把Java对象转换为字节序列的过程,只能将支持java。.Serializable接口的对
13、象写入流中,每 个serializable对象的类都被编码。Q24:Java中的trycatch是用于异常处理吗?答案:try后面往往会跟着catch或finally,try抛出的任何异常都会被捕获在catch中,在代码终止前的要执行的任务放在finally中。Q 25:有没有什么办法在出现异常时跳过finally?答案:当在try中出现异常时,如果存在catch,会先被catch捕获,否则会执行到finally。异常发生时肯定会执行finally,除非在try的末尾有强制中止代码:System.exit(O);Q 26:什么时候类的构造函数会被调用?答案:每次用new来创建对象时,都会调用构
14、造函数。例如,下例中new创建了两个对象,构造函数也被调用了两次。z345678910il1213M15yp u b l i c c l a s s c o n s t _ e x a m i?l e c o n s t _ e x a m D l e()S y s t e m o u t.p r i n t l n(I n s i d e c o n s t r u c t o r*)p u b l i c s t a t i c v o i d m a i n f S t r i n g a r g s O)c o n s t.e x a r r p l e c l=n e w c o n
15、 s t.e x a r r p l e Q;c o n s t _ e x a m p l e c 2-r)e w c o n s t.e x a t r p l e O,Q27:一个类可以有多个构造函数吗?答案:是的,一个类可以有多个具有不同参数的构造函数,创建对象的构造函数取决于创建对象时传递的参数。Q 28:我们可以覆盖类的静态方法吗?答案:我们不能覆盖静态方法,静态方法属于一个类而不是单个对象,并且在编译时解析(而不是在运行时)。Q 29:在下面的例子中,输出是什么?01234,6r89012-4。67Q1111111111ZZ2227-22、J 三 国 3 J O YO publi
16、c votd dtsployResultO 45 SystecB.out.prtntln(Prtnttng from supercloss*);67 S?)public class subclass extends superclass public void dtsplayResultO System.out.prtntlnCOtsplaytng froffl subclass):super.dtsplayResultf);)public sta tic votd aatnfStrtng argsQ)subclass oi)j-ner subclass。;obj displayResult(
17、);)答案:输出为:Displaying from subclassDisplaying from superclassQ30:String是Java的数据类型吗?答案:String不是Java的原始数据类型,Java中创建一个string时,实际上是创建了Java.Lang.String类的对象这个对象可以使用String类的所有内置方法。Q 31:下面的示例中,共创建了多少个String对象?|String s l-MI am Java Expert*,2-S trtng am C Expert,;答案:共创建了两个java.Lang.String类的对象。s i和s3是对同一个对象的引用
18、。Q 32:为什么Java中的String被称为Immutable?答案:Java中,string对象是不可变的,一旦赋值不可更改,如果更改,则会创建一个新对象。在下面的示例中,str是 值 为“Value One”的字符串对象:.String str-Value One*.当分配一个新值时,将创建一个新的String对象,并将引用移动到新对象。:str-New Value*.Q 33:数组和向量之间有什么区别?答案:数组是对相同原始类型的数据进行组合,本质上是静态的,而矢量本质上是动态的,并且可以容纳不同数据类型的数据。Q 34:什么是多线程?答案:多线程是一个编程概念,可以在单个程序中以并
19、发方式执行多个任务。同一个进程的多个线程堆栈共享,有助于程序的性能改进。Q 35:为什么在ava中使用Runnable Interface?答案:Runnable接口在Java中用于实现多线程应用程序,Java.Lang.Runnable接口由一个支持多线程的类来实现。Q36:Java中实现多线程的两种方法是什么?答案:1、通过使用Java.Lang.Runnable Interface,通过Run()方法来启用多线程。2、编写一个扩展Java.Lang.Thread类的类。Q 37:当数据需要进行大量更改时,String和StringBuffer谁是更好的选择?答案:StringBuffer
20、s本质上是动态的,我们可以改变StringBuffer对象的值,而String是不可变的,每次数据更改都会创建一个新的String对象,增加额外开销,所以在数据更改很多的情况下,StringBuffer是一个更好的选择。Q 38:每个switch语句后使用break的目的是什么?答案:switch使用break可以在执行完这个语句后中断,如果不使用break,那么它将把所有情况都执行一遍。Q 39:如何在Java中完成垃圾回收?答案:Java中,对象不被引用时,垃圾回收就会发生,对象会被自动销毁,调用System.gc 0方法或Runtime.gc()方法。Q 40:可以在Main()方法前执
21、行代码?答案:如果我们要在类加载时,对象创建之前执行语句,可以在类中使用静态代码块,这样即使在main方法中创建对象之前,此静态代码块中的语句都将在加载类时执行一次。Q41:一个类可以同时既是父类也是子类吗?请举例说明?答案:如果使用了继承层次结构,那么这个类就可能既是一个类的父类也是另一个类的子类,如下例中的大陆类既是世界类的子类,同时也是国家类的父类。1 public class world 23.45 67 public class continenet extends world(8U )13 public class country extends continent Q 42:如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 100 Java 试题 常见 答案 汇总
限制150内