查看原文
其他

有点难度的 10 道 Java 面试题

R哥 菜鸟架构 2018-08-26

↑ ↑ ↑点击上方 “Java面经” 关注我们↑ ↑ ↑ 



1、jvm对频繁调用的方法做了哪些优化?


java虚拟机最开始是通过解释器进行解释执行的,当虚拟机发现某个方法或者代码块的运行特别频繁时,就会把这些代码认定为”热点代码”,为了提高热点代码的执行效率,在运行时,虚拟机会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(JIT)。


2、常见的攻击手段有哪些?如何防范?


XSS、CSRF、SQL注入、DOS/DDOS等具体细节见历史文章。


3、restful api有哪些设计原则?


需要考虑的设计原则有:域名、版本、路径、动词、状态码、返回结果等等之后具体会形成文章。


4、hessian是做什么用的?它的传输单位是什么?


Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。


5、http中的post、get有什么区别?base64过后的字符串可以通过get传输吗?


区别: 

1、两种动作不一样,get是获取资源,post是提交资源 

2、get参数在URL中不安全,post是放在http body中的相对安全 

3、get传输字节数受限于URL长度,post无限制 

4、后台获取数据的方式get只能是QueryString,post可从InputStream中获取 base64编码后有+=特殊符号的会转码不能经get传输,如果是改进的base64会替换掉特殊符号可以用get传输。


6、常用的算法都有哪些分类,分别有哪些算法及应用场景?


一般有散列算法、对称算法、非对称算法。


7、死锁是什么?写一个死锁的例子?如何避免死锁?


死锁就是多线程相互等待对方释放锁造成的假死状态。


8、学用的序列化方案都有哪些,说说它们的优缺点?


序列化有对象序列化,JSON序列化,XML序列化等,像java自带序列化、kryo、protostuff、GSON、jackson、fastjson等之后形成文章。


9、什么是过滤器、拦截器、监听器,它们的顺序是怎样的?


监听器是容器启动和销毁时触发的动作,过滤器是进入servlet请求之前触发的工作,拦截器是像springmvc框架实现的内部的请求拦截器。 顺序:监听器>过滤器>拦截器。


10、servlet3.0有哪些新规范?


增加注解不需要web.xml配置、异步处理、可插性支持,性能增强等。


Java面经 海量面试题

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存