JAVA企业面试题简答题-及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一部分Java的类1、请解释Java语言的跨平台特性。Java的跨平台特性也被称为可移植性。他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。2、请列举JAVA语言的主要特点JAVA语言有很多特点,主要包括①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。4、请说明构造方法的作用和特征构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。5、什么事方法重载(overload)?方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。6、请列举Java语言中的权限访问修饰符,并说明每种权限的含义。Java语言中有四种权限访问修饰符,即public、protected、同包以及private.public表示公共权限,即任何包中都可以访问:protected表示受保护权限,即同包中可以访问,不同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问:private是私有权限,表示只能在本类中访问。7、请列举Java语言中的八种基本数据类型,并说明每种数据类型的含义及长度。Java语言的八种基本数据类型有:byte字节型,8位长度:short短整型,16位长度,int整型,32位长度:long长整型,64位长度:float单精度浮点型。32位长度:double双精度浮点型,64位长度:char字符型,16位长度:boolean型,表示逻辑值,有true和false两个值,分别表示真和假。8.什么叫引用类型,引用类型和基本数据类型有什么区别?Java语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用new调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使用。9.对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。10.String类是一个“不可变类”,请解释“不可变类”的含义。所谓的不可变类,就是当字符串初始化后,就不能够被改变。11.String类和StringBuffer类有什么区别?String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。12.StringBuffer和StringBuilder类有什么区别?StringBuffer是线程安全的字符串缓冲,而StringBuilder不是线程安全的。13.包装器类型包括哪些类,有什么作用?包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其成为引用类型。14.请说明Java语言中的值传递规则。基本数据类型传递的是值,引用类型传递的是引用,即虚地址。15.使用static修饰属性或方法后,属性和方法有什么特征?static修饰属性或方法后,属性和方法不在属于某个特定的对象,成为类对象,被所有此类的实例所共享,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。16.使用final修饰属性后,属性有什么特征?final修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。17.请说明操作符==的作用。==可以用来比较基本类型或者引用类型。比较基本类型时,==用来比较二进制的值,比较引用类型时,用来比较对象的虚地址。18请说明&&与&的区别和联系&&会发生短路问题,当第一个表达式的值为false时,将直接返回结果为false而不会判断第二个表达式的值。而&不会发生短路问题,即使第一个表达式的值是false,会判断第二个表达式的值。19.break语句能在什么场景使用。break语句可以再循环体中使用,也可以在switch的case语句中使用。20.for循环中的break语句和continue语句的使用。break可以用来中断循环,continue可以用来继续下一次循环。21请说明一个JAVA类中主要包含哪几个元素并说明每种元素的作用。JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据,方法用来定义对象的行为,构造方法可以用来创建对象,块能够用来在类加载时执行操作或者在每次实例化前执行通用操作,内部类作为类的一个成员存在,能够访问外部类的属性和方法。第二部分类之间的关系1、用代码表示A类关联B类的情况。ClassA{PrivateBb;PublicvoidsetB(Bb){This.b=b;}}2、请说明Java语言中数组的基本概念,数组的作用,以及数组的声明创建方式。数组是相同元素的集合,作为数据容器使用。声明创建一个int型数组:int[]x=newint[3];其中3是数组的长度,该数组能够存储3个int型变量。3、使用代码,创建一个长度为5的String型数组,并使用增强for循环迭代数组打印出数组中的元素。String[]sArray=newString[5];For(Strings:sArray){System.out.println(s);}4、说明Arrays类的作用。Arrays类是java.util包中的一个类,类中所有的方法都是static方法,这些方法都是数组对象的工具方法,能够对数组进行处理,如sort方法可以对数组元素进行排序。5、请使用简单代码展示A类依赖B类的含义。依赖关系指的是一种瞬间的关系。如果A依赖B,一般指的是A类的某个行为,需要B类对象作为参数。ClassA{Publicvoidf(Bb)}6、请说明依赖关系和关联关系的区别。依赖关系是一种瞬时关系,A依赖B,指的是A的某个行为的参数是B的类型,也就是说,A要想实现这个行为,必须依赖B的实例。A关联B,是一种长久的关系。是B作为A的属性存在,只要实例化一个A的对象,就会为这个A的对象实例化一个B的对象,作为它的属性使用,可以在A中任何需要使用B的地方使用B。7、继承有什么作用,Java语言中的继承有什么特点?继承主要为了能够重复使用父类中的成员,提高代码的重用率Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类。8、什么是方法覆盖(override)?并说明方法覆盖与方法重载(overioad)的区别。覆盖是发生在继承关系的子类中,当子类要修改从父类继承的某个方法的方法体时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖。而重载与继承没有关系,指的是在一个类中可以同时声明多个同名但不同参数的方法,称为重载。9、请说明什么是抽象类?抽象类有什么作用?抽象类是不能实例化的类,使用abstract修饰。抽象类往往用来做父类使用,定义一些子类的共同属性或行为。10、请说明抽象方法的含义,并说明抽象类与抽象方法的关系。抽象方法是没有办法体的方法,使用abstract修饰。抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。11、super关键字的两种用法。如super():表示调用父类中的每一参考的构造方法:又如super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();意思是调用父类中的f()方法。12、final类与final方法有什么作用?final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。13、什么是多态函数?多态函数有什么用?多态函数就是参数的类型是某个父类类型,具体为这个参数赋值的不同以使用该父类的任意子类的对象。使用多态参数,可以使程序的扩展性更好,即使%%%%的子类方法不需要任何修改,就能接受子类类型进行处理。14、Object类有什么特点?Object类是多有类的直接或间接的父类。15、Object类中的toString方法有什么用?toString方法可以把对象作为字符串返回。16、Object类中的equals方法和hashCode方法。Oject类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。17、接口有什么特点,与抽象类有什么区别?口的特点是不能定义变量,而且所有方法都是抽象方法。而抽象类中可以有变量,也不强制必须有抽象方法。18、类继承父类与类实现接口,有什么区别?类继承父类只是单继承,也就是一个子类最多只有一个父类;而类实现接口可以多实现,就是一个子类可以同时实现多个接口,并覆盖所有接口中的所有抽象方法。19、Comparable接口有什么作用Comparable接口定义了compareTo(Objecto)方法,可以用来实现对象的比较逻辑,这个接口常常在其他API中强制使用,用来规范对象的比较逻辑。第三部分异常处理1、什么是异常?异常和错误有什么区别?异常是一些不正常的事件,能够中断程序的正常执行例如才除0计算就是异常。和错误不同,异常是可以被处理的,而错误往往是不能够处理的,如内存溢出错误。2、nullPointException是什么异常?什么情况发生该异常?NullPointerExcepiton是空指针异常,当一个引用没哟被赋值,就是一null值如果这种情况下,使用该引用调用其属性或者方法,就会发生NullPointerException异常。3、说明try/catch/finally语句块的作用try语句块用来包含可能发生异常的语句,catch块用来捕获异常,finally用来包含必须执行的语句。4.如何使用语句抛出异常,抛出异常后如何处理

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功