java高级面试题的难点有哪些

介绍

这篇文章主要介绍了java高级面试题的难点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

java可以用来干什么

java主要应用于:1。网页开发;2。Android开发;3。客户端开发;4。网页开发;5。企业级应用开发;6。Java大数据开发;7。游戏开发等。

本教程操作环境:windows7多系统,java10版,戴尔G3电脑。

<强> 1。jsonp的原理是什么

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

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

<强> 2。线程类中的启动和运行方法有什么区别

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

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

<强> 3。jvm的类加载机制

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

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

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

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

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

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

⑥使用:完成相应调用

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

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

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

<强> 4。请求转发和重定向的区别?

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

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

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

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

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

<强> 5. jdk1.7 - 1.11新特性以及λ表达式使用

jdk1.7新特性:

①新增了G1GC

②新增了与资源不尝试用试着赶上最后来关闭资源,会自动关闭。

③新增开关支持字符串类型

jdk1.8新特性:

①新增λ表达式,匿名内部类的简写和流的各种功能要会用。

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

③新增日期类API,如LocalDate jdk1.9

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

jdk11

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

感谢你能够认真阅读完这篇文章,希望小编分享的“java高级面试题的难点有哪些”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

java高级面试题的难点有哪些