博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 面试题目小结(未完待续)
阅读量:6573 次
发布时间:2019-06-24

本文共 1949 字,大约阅读时间需要 6 分钟。

hot3.png

1.JVM的组成部分

09130436_O4po.png

参考:http://thw.iteye.com/blog/953869

q  Class Loader 类加载器

q  Execution Engine 执行引擎

执行引擎也叫做解释器(Interpreter) ,负责解释命令,提交操作系统执行。

q  Native Interface 本地接口

q  Runtime data area 运行数据区

2.线程安全和非线程安全的区别

线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是低依靠线程同步。

3.servlet是否是线程安全的

servlet是否线程安全是由它的实现来决定的,如果它内部的属性或方法会被多个线程改变,它就是线程不安全的,反之,就是线程安全的。(不要使用全局共享变量,不会造成线程不安全)

4.synchronized和lock的区别

主要相同点:Lock能完成Synchronized所实现的所有功能。主要不同点:Lock有比Synchronized更精确的线程予以和更好的性能。Synchronized会自动释放锁,但是Lock一定要求程序员手工释放,并且必须在finally从句中释放。synchronized修饰方法时 表示同一个对象在不同的线程中 表现为同步队列如果实例化不同的对象 那么synchronized就不会出现同步效果了。

5.HashMap和HashTable的区别

第一,继承不同。public class Hashtable extends Dictionary implements Mappublic class HashMap  extends AbstractMap implements Map第二Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。第三Hashtable中,key和value都不允许出现null值。在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。第四,两个遍历方式的内部实现上不同。Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。第五哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。第六Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

6. hibernate有那些缓存,怎么样使缓存失效。

 

7. ssh和spring mvc的区别

SSH框架流程

(1)SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。(2)struts封装的功能更多更全面,用法比较独有。springmvc比较接近原生servlet,灵活度高。而且因为springmvc的controller是单例的,以及没有大量的过滤器,性能要比struts2好。还有一点就是Spring有自己的JdbcTemplate,用来执行原生态的SQL语句。SSH中操作数据库使用的是Hibernate的数据映射,操作的是对象。(3)

8. mysql的有那些优化方法

9. 怎么理解多线程编程

转载于:https://my.oschina.net/ukapollo/blog/536578

你可能感兴趣的文章
DHCP
查看>>
电脑上怎样压缩图片大小
查看>>
新来的发一个帖子
查看>>
Nginx 支持webSocket 响应403
查看>>
lnmp安装
查看>>
FTP工作方式
查看>>
Linux文件和目录管理常用命令(中)
查看>>
Configure HUE to store data in MySQL
查看>>
我的友情链接
查看>>
Server2008 中AD的部署
查看>>
RabbitMQ 流控制学习
查看>>
Ubuntu16.04 ssh安及root登录
查看>>
一个工程两个target
查看>>
C语言dos程序源代码分享(进制转换器)
查看>>
php项目中常用的log日志记录方法
查看>>
LogParser 导入MSSQL
查看>>
左侧固定导航栏
查看>>
linux安装go环境并编写第一个go程序
查看>>
解决:laravel出现Please provide a valid cache path.
查看>>
兼容IE浏览器样式的html上传文件控件
查看>>