Java开发工程师面试题库.docx
《Java开发工程师面试题库.docx》由会员分享,可在线阅读,更多相关《Java开发工程师面试题库.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 .面向对象有哪些特征?答:继承、封装、多态.JDK与JRE的区别是什么?答:JDK是java开发时所需环境,它包含了 Java开发时需要用到的API, JRE是Java的运行时环境,JDK包含了 JRE,他们是包含关系2 . Java有哪几种基本数据类型?答:8 种,分别是 int、byte short long double、flot char、boolean.二二和equals比较有什么区别?答:=是向3中的操作符,equals是Java中Object对象提供的对象比较Api。它们的区别是二二比较的是左右两边对象的内存地址,而equals比较的是左右对 象的值答:语法糖你怎么理解强、软
2、、弱、虚引用?答: !这 里 写 图 片 描(hs:/img-Ly9ibG9nLmNzZG4ubmV0L2plbmplbmJhMjY4OQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA=/dissolve/70)34. switch是否能用在long上?答:可以,switch支持int、byte short char以及对应的包装类,和String 类型switch case支持哪几种数据类型?答:如上String的底层实现是怎样的?答:char数组,以及字符串常量池String是可变的吗?为什么?答:不可变,java中的字面量字符串都存放在字符串常量
3、池中,无法改变, 只能引用为什么不能用+拼接字符串?答:因为如果用十号拼接字符串JVM编译时会进行优化,转变为StringBuilder 拼接。单个表达式使用问题不大,但是如果是多个表达式或者在循环内使用会频 繁创建StringBuilder对象大大降低性能StringBuffer 和 StringBuilder 有什么区别?答:前者线程安全效率低,后者线程不安全效率高,Stringjoiner 有什么用?答:用于做字符串拼接的工具类X java间隔符是,Stringjoiner joinerl = new StringJoinerC,);joinerl.add(T).add(”2)add(”
4、3”);System.out.println(joinerl.toString();/l,2,3以开头中间的间隔符是,以结尾Stringjoiner joiner2 = new Stringjoiner(“六joiner2.add(l,1).add(2,).add(31);System.out.println(joiner2.toString();/l,2,3拼接sql的in条件的时候,使用这个就方便很多了Stringjoiner joiner3 = new StringJoinerC,joiner3.add(T).add(”2“);42 .普通类和抽象类有什么区别?答:抽象类被abstrac
5、t所修饰,.静态内部类和普通内部类有什么区别?答:普通内部类持有外部外部类的应用,可以调用外部类的属性及方法,而 静态内部类没有持有外部内引用,无法调用外部内的方法及属性。静态内部类可 以有静态成员(方法,属性),而非静态内部类则不能有静态成 员(方法,属性)。 非静态内部类能够访问外部类的静态和非静态成员。静态内部类不能访问外 部 类的非静态成员,只能访问外部类的静态成员。实例化方式不同:1 .静态内部类:不依赖于外部类的实例,直接实例化内部类对象2 .非静态内部类:通过外部类的对象实例生成内部类对象.静态方法可以直接调用非静态方法吗?为什么?答:不能,因为静态方法的加载顺序优先于非静态方法
6、,且静态方法属于类, 无需对象实例,非静态方法则需要类的实例才能调用.静态变量和实力变量有什么区别?答:静态变量属于类,无需创建对象通过类名即可调用,而实例变量需要类创建实例才可以调用。加载角度而言只要JVM加载了静态变量所处的类,静态 变量就以及可以使用,为分配了空间。而实例变量需要创建对象之后才会为其分 配空间43 .内部类可以访问其外部类的成员吗?答:非静态内部类可以,因为它持有者外部内的引用。44 .接口和抽象类有什么区别?答:接口没有构造方法,抽象类有。抽象类中可以有普通成员变量;接口中 没有普通成员变量。抽象类中可以包含非抽象普通方法;接口中的所有方法必须 都是抽象的,不能有非抽象
7、的方法。一个类可以实现多个接口,用逗号隔开,但 只能继承一个抽象类;接口不可以实现接口,但可以继承接口,并且可以继承多 个接口,用逗号隔开。45 .接口里面可以写方法实现吗?答:可以,jdkl.8之后可以写接口的默认方法实现. Java中的UUID是什么?答:生成一串随机的数字,它保证对在同一时空中的所有机器都是唯一的. Java类初始化顺序是怎样的?答:如下!img(hs:/img- 0cHM6Ly9ibG9nLmNzZG4ubmV0L3h5YWppYQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA=/dissolve/70)!img(hs:/img
8、-0/fill/I0JBQkFCMA=/dissolve/70). hashCode有什么作用?答:hashcode在java中用于表示对象的唯一码。hashcode也用在Hash数 据结构中,用来计算对象存放在Hash中的位置(存储地址)!-两个相等对象的equals方法一定为true,但两个hashcode相等的对象 不一定是相等的对象一. hashCode 和 identityHashCode 的区别?答:1. Object类中的hashCode方法会返回一个hash码,只有指向同一个对象 的引用变量调用才会返回相同值,而String类中放宽了要求,对象里的值相等也 返回相同值2. id
9、entityHashCode方法是System类中的方法,调用该方法时,不管类中 是否重写了 Object类中的hashCode方法,者E执行Object类中的hashCode方 法,返回一个hashCode值。所以只有指向同一个对象的引用变量调用才会返回 相同值什么是Hash冲突?答:两个对象都放入同一个hash容器中,且计算出的hash值都相同。也称 为hash碰撞,此时的解决办法是再hashJava常用的元注解有哪些?答:*Target*:描述了注解修饰的对象范围- METHOD:用于描述方法-PACKAGE:用于描述包- PARAMETER:用于描述方法变量- TYPE:用于描述类、接
10、口或enum类型- *lnherited*:使被它修饰的注解具有继承性- *Retention*:表示注解的运行时期范围- RetentionPolicy.SOURCE注解将被编译器丢弃- RetentionPolicy.CLASS注解在class文件中可用,但会被VM丢弃- RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息Documented*:使用javadoc工具为类生成帮助文档时是否要保留其 注解信息Java泛型中的T、R、K、V、E分别指什么?答:-? 一不确定的Java类型,是一个通配符泛型-T表示确定的Java类型-K、
11、V Java 中的键值对 key、value-E 日ement (在集合中使用,因为集合中存放的是元素,也表示Collection 容器中的类型)Java源码中的Class代表这个类型所对应的类,而Class表示类型不确 定的类。53. Java金额计算怎么避免精度丢失?答:使用BigDecimal进行与金钱相关的计算Java语法糖是什么意思?答:通过提供简单的编写方式在编译时完成对复杂操作的转换。通常是指Java 中的简单语法,在编译时期还原成基础语法。54. transient关键字有什么作用?答:将不需要序列化的属性前添加关键字transient,序列化对象的时候,这public, pr
12、ivate, protected,默认的区别什么?答:它们是java中的权限修饰符,public可以在任何地方访问,private仅仅 只能在本类中访问,protected可以在本类以及本类的子类中访问,默认则代表 可以在本包中访问short sl=l; sl+=l;有错吗? sl=sl+l;有错吗?答:short在和int类型进行计算的时候会转换为int类型,原因是Java中精 度小于int的*数值运算*的时候都回被自动转换为int后进行计算。计算后的结 果也是int,再将int类型赋值给short类型当然会报错,所以、sl=sl+l是错误 的然而sl+=l是java底层采用了编译语法糖的形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 开发 工程师 面试 题库
限制150内