专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 10道JDK面试题(附答案)

10道JDK面试题(附答案)

更新时间:2020-09-29 17:01:37 来源:动力节点 浏览3128次

JDK是学好java编程的第一步,也是零基础的新手们为以后学习java需要打下的扎实基础,在各大公司的java面试中,更是少不了对JDK相关知识的考察,所以今天总结了10道 JDK面试题,都是常考常见的基础知识,大家可以来学习下面的内容,为面试做好准备。

image.png

1、Java JDK是什么?

答:JDK全称Java Development ToolKit,是Java语言开发工具包。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(daojavac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。


2、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

答:字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于Reader Writer。在java.io包中还有许多其他的流,低层流与调层流,高层流主要是为了提高性能和使用方便。


3、String为什么用final修饰?

答:主要是为了”安全性“和”效率“的缘故,由于String类不能被继承,所以就不会被修改,这就避免了因为继承引起的安全隐患;String类在程序中出现的频率比较高,如果为了避免安全隐患,在它每次出现时都用final来修饰,这无疑会降低程序的执行效率,所以干脆直接将其设为final一提高效率;常量池的使用,大量使用字符串之后,可以共享字符串的内容,提高效率,节省存储空间。


4、序列化ID有什么用?为什么要进行序列化操作?

答:java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。原因:在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。


5、JDK与JRE的区别是什么?

答:Jdk是整个java开发的核心,包括java运行环境,java工具和java基础类,比如我们开发中用到的jar包。安装了jdk,电脑就拥有了支持java语言的功能,不仅可以开发java程序,也拥有了运行java程序的平台,jdk的安装是包含jre的。Jdk主要是开发人员在软件开发时使用的SDK,SDK提供了java的开发环境和运行环境。JRE包含了JVM标准实现及java核心类库。它包括了java虚拟机、java平台核心类和支持文件,但是jre是不包含开发工具的,比如编译器和调试器这些jre是没有的。但是它包含编译java源码的编译器javac,还包含了console等java调试和分析的工具软件,同时也包含了java程序编写所需的文档和demo例子程序。Jre的主要使用者是程序,也就是说,如果你的电脑只安装了jre,那么电脑就只能运行java程序,如果想从事java开发,那就需要安装jdk了,因为jre是可以独立安装的,它不包含jdk。


6、java JDK的版本都有什么?并简要加以说明。

答:(1)Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 javaPlatform,Enterprise Edition(Java EE)提供基础。

(2)Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。

(3)Java ME(Java Platform,Micro Edition)。这个版本以前称为J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于Java ME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。


7、在 jdk1.5 中,引入了泛型,泛型的存在用来解决什么问题?

答:泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。


8、Spring事务注解@Transactional可以作用在哪些地方?

答:@Transactional可以作用于接口、接口方法、类以及类方法上。当作用于类上时,该类的所有public方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。

虽然@Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。另外, @Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。

默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法并不会引起事务行为,即使被调用方法使用@Transactional注解进行修饰。


9、ThreadLocal是什么?有哪些使用场景?

答:ThreadLocal是线程本地存储,在每个线程中都创建了一个 ThreadLocalMap对象,每个线程可以访问自己内部ThreadLocalMap 对象内的value。

应用场景:经典的使用场景是为每个线程分配一个JDBC连接Connection。这样就可以保证每个线程的都在各自的Connection上进行数据库的操作,不会出现A线程关了B线程正在使用的Connection; 还有Session管理等问题。


10、常用的JDK类有哪些?请说出5个。

答:String、StringBuffer、Integer、ArrayList、HashMap、Date、Object。

以上就是今天我们学习的JDK面试题,JDK是学习java的基础,是java零基础的小伙伴们在初期就需要学习的内容。希望这10道 JDK面试题大家可以好好学习,并顺利通过面试。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>