技术文章 > 面试题 >  java面试题 > 正文

java高级面试题的难点分析

小妮浅浅

在高级java题目的作答时,对于知识点的原理不停留在表面的定义,而是要对原理执行的具体流程具体分析。对于各种程序的运行机制和使用步骤,也需要明确的掌握。再进一步的讲,对于一些软件使用的版本特点也会有所涉及。本篇对于java高级面试题进行了搜集和整理,下面我们来看详细试题。

1.jsonp的原理是什么

JavaScript 是一种在 Web 开发中经常使用的前端动态脚本技术。在 JavaScript 中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于 JavaScript 代码能够访问的页面内容做了很重要的限制,即 JavaScript 只能访问与包含它的文档在同一域下的内容。

jsonp的最基本的原理是:动态添加一个<script>标签,使用 script 标签的 src 属性没有跨域的限制的特点实现跨域。首先在客户端注册一个 callback, 然后把 callback 的名字传给服务器。此时,服务器先生成 json 数据。然后以 javascript 语法的方式,生成一个 function , function 名字就是传递上来的参数 jsonp。最后将json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。客户端浏览器,解析 script 标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里。

2.Thread 类中的 start 和 run 方法有什么区别

start方法被用来启动新创建的线程,而run一般是线程对应的业务逻辑。

另一方面start方法内部调用了run方法,这和直接调用run方法的效果不一样。当你调用run方法的时候,只会是在原来的线程中调用,没有新的线程启动,start方法才会启动新线程。

3.jvm的类加载机制

jvm的类加载过程一共有以下几个步骤:

①加载:将二进制.class文件加载进jvm虚拟机

②验证:验证字节码文件是否符合Jvm规范,不会对jvm造成损害

③准备:为类变量分配内存,设置类变量的初始值

④解析:将常量池中的符号引用替换为直接引用

⑤初始化:调用类的构造器,将类初始化

⑥使用:完成相应调用

⑦卸载:被垃圾回收器回收

其中,②~④三个步骤统称为连接.

jvm的类加载器采用双亲委派模型,在类加载时不会先直接调用自己的类加载器,而是去尝试调用其父类加载器,父类加载器处理不了会向上传递,直到顶层的bootstrap类加载器也完成不了时,才会使用该类的类加载器,这样可以保证安全,避免我们哪天自己定义了一个叫Object的类,被jvm混淆。

4.请求转发和重定向的区别?

1)请求转发是一个请求一次响应,而重定向会是两次请求两次响应。

2)请求转发地址栏不变化,而重定向会显示后一个请求的地址。

3)请求转发只能转发到本地项目其他servlet,而重定向不只能重定向到本项目其他servlet,还能定向到其他项目。

4)请求转发是服务器端行为,只需要给出转发的servlet路径,而重定向需要给出request URI,即包含项目名。

5)请求转发带值,重定向不带值。

5.jdk1.7-1.11新特性以及lambda表达式使用

jdk1.7新特性:

①新增了G1GC

②新增了try with resouce 不用try catch finally来关闭资源,会自动关闭.

③新增switch支持String类型

jdk1.8新特性:

①新增lambda表达式,匿名内部类的简写和stream的各种功能要会用.

②改变了原有HashMap,ConcurrentHashMap结构.

③新增日期类API,如LocalDate

jdk1.9

引入了var  可以像写前端js那样 直接声明一个变量var而不需要定义它的类型,比如 var x = new ArrayList<Integer>();

jdk11

引入了ZGC,垃圾回收暂停时间比G1GC更短。

以上就是java高级面试题的一些分享,对于知识点的原理和分析考察都非常细致,在复习的时候注意理解。处于初级阶段的小伙伴,也可以顺便了解一下以后需要学习的方法。更多Java试题指路:java面试题

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 java集合类面试题
 java易错点区分的面试题合集
 java中io流面试题的整理
 java中级面试题的考点
 java基础面试题及答案
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
推荐视频
视频教程分类