每 日 五 问

一.谈谈你对springmvc的理解?
SpringMVC是属于 framework 生态里的模块 它是在servlet基础上使用并构建MVC模式设计的一个web框架。它的主要目的是简化传统的servlet+jsp模式下的web开发模式。其次springMVC的架构设计是对java web MVC设计模式 做了一些增强和扩展主要体现在几个方面
(1)把传统的MVC 中的Controller拆分成前端控制器 DispatcherSrvlet和后端控制器Controller。
(2)把Model层拆分成 服务层service和业务层repository
(3)在视图层可以支持不同的视图Freemark,jsp等
所以springMVC天生就是为MVC模式设计的因此在开发MVC应用的时候会更加方便和灵活
最后springMVC的整体工作流程浏览器的请求首先会去经过SpringMVC里面的核心控制器叫DispatcherSrvlet它主要是把请求分发到对应的Controller中Controller中处理完业务逻辑之后会返回ModelAndView然后DispatcherSrvlet会寻找一个或者多个ViewResolver找到ModelAndView指定的视图把数据展示到客户端。
二.Integer a1=100; Integer a2=100; a1==a2 运行结果和原因
首先Integer a1=100;把一个int类型赋值给封装类型java会默认进行装箱操作调用Integer.valueof()方法把数字100包装成一个Integer类型其次在Intrger内部设计模式中用到了享元设计,享元模式是通过对象创建减少对对象的创建减少内存占用和提升性能Integer内部维护一个IntegerCache它缓存一个[-128,127]区间的数值,一旦调用Integer.valueof()方法就直接从cache获取Integer对象否则就会创建一个新的对象。
所以两个Integer对象值都是100,因为自动装箱机制会调用Integer.valueof()方法从IntegerCache中拿到两个完全相同的值所以返回结果为true
三.HashMap与HashTable的区别
它们都是基于Hash表实现的k-v结构的集合
HashTable是jdk1.0引入的一个线程安全的集合类因为所有数据访问的方法都加了一个Synchronized同步锁HashTable内部使用数组加链表 链表主要解决哈希冲突的问题。
HashMap是jdk1.2引入的一个线程不安全的集合类HashMap内部使用数组加链表 实现 jdk1.8对链表有了优化使用了红黑树当链表长度大于8数组长度大于64时候就会转化成一个红黑树提升数据查找性能
所以回答
可以分为从功能特性角度来说
(1)HashTable是线程安全的而HashMap不是。
(2)HashMap比HashTable性能更好因为HashTable使用全局同步锁保证线程安全对性能影响较大。
从内部实现角度来说
(1)HashTable使用数组加链表 HashMap使用数组加链表加红黑树
(2)HashMap初始容量为16 HashTable初始容量为11
(3) HashMap可以使用null作为key(因为HashMap会把null转化为0进行存储)而HashTable不可以
它们Key的散列算法是不同的HashTable直接使用key的hashcode对数组长度进行取模而HashMap对key的hashcode进行二次散列从而避免key的分布不均匀影响到性能。
四.MySQL 支持事务吗?
在缺省模式下,MySQL 是 autocommit 模式的,所有的数据库更新操作都会即时提交, 所以在缺省情况下, MySQL 是不支持事务的。但是如果你的 MySQL 表类型是使用 InnoDB Tables 或 BDB tables 的话, 你的MySQL 就可以使用事务处理,使用 SETAUTOCOMMIT=0 就可以使 MySQL 允许在非 autocommit 模式, 在非autocommit 模式下,你必须使用 COMMIT 来提交你的更改,或者用 ROLLBACK 来回滚你的更改。
五MySQL 有关权限的表都有哪几个?
MySQL 服务器通过权限表来控制用户对数据库的访问, 权限表存放在 MySQL 数据库里,由
MySQL_install_db 脚本初始化。这些权限表分别 user,db,table_priv, columns_priv 和 host 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicholas_giao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值