Java SE面试题
自增变量
单例设计模式
枚举类型
返回常量对象的名字
静态代码饿汉式
静态代码块在类加载的时候执行
什么时候可能用到这种呢?
适用于这种需要读取一些初始化的信息才能创建对象的
饿汉式:
不存在线程安全问题
都是在类第一次加载初始化的时候创建对象!
懒汉式
有可能会有线程安全问题
为了效果加个休眠
可以用同步去解决
这样就保证了线程安全问题
这个还不是最优版,以为所有的线程进来都得经过锁的判断,但是前面的两个线程已经创建过了,没必要再去等待锁的问题
可以再改一下提高效率
这样写很复杂,还有一种写法,既能保持延迟加载,又能保证线程安全,还效率高
静态内部类
静态内部类什么时候加载呢?
类初始化和实例初始化
方法的参数传递机制
第一个不变是因为基本数据类型,是单独的
虽然告诉了地址,但是一变化会产生新的对象,所以原来的对象没有变
数组会变
递归与迭代
递归的阅读比较好,代码编辑上比较简单,但是运行效率不好
迭代高!可读性不好
成员变量与局部变量
也要考虑到作用域的问题!
SSM面试题
Spring Bean的作用域之间有什么区别
Spring 支持的常用数据库事务传播属性和事务隔离级别
默认值!purchase使用chekout的事务
到底是一本也买不成功,还是只能买一本?
在同一个事务里面
purchase使用checkout的事务
那么现在我们能不能让他买成功一本呢?把事务的传播行为改为requires_new
那么现在purchase使用自己的事务,不再用chekout的事务
可以买成功一本
purchase买1001和1002时是两个不同的事务!之间没有影响
脏读:当前事务读到了其他事务更新但是没有提交的事务
不可重复读:读了之后,改变了
幻读:读了之后,多了
读未提交
读已提交 **
可重复读
串行化
mysql默认:可重复读
改为读已提交
读已提交:别人提交过的,就可以读!
SpringMVC如何解决POST请求中文乱码问题、
加入过滤器!
只能解决post问题的请求!
现在改为get
又报错了
简单的谈一下SpringMVC的工作流程
当发请求后,由中央控制器拦截请求,找到处理器映射器HandlerMapping
找到HandlerExecutionChain包含了所有的处理器拦截器和处理器对象,返回给中央控制器
返回一个处理器适配器HandlerAdapter,我到底调用哪个处理器来适配请求,返回给中央控制器
调用处理器来处理请求Hanler(Controller),返回ModelAndView对象
它包含了模型数据和所有的视图
然后调用视图解析器来解析视图
把视图返回给中央控制器
渲染视图
相应对象
源码!
现在打完了断点,重新执行一下
MyBatis中当实体类中的属性名和表中字段名
有三种解决方案
1.写sql语句时起别名
2.在mybatis的全局配置中开启驼峰命名规则
3.在mapper映射文件中使用resultMap来自定义映射规则
Java高级
Linux常用服务类相关命令
Git分支相关命令
分布式版本
redis持久化
Mysql什么时候建立索引
JVM垃圾回收机制
项目面试题
redis在项目中的使用场景
elasticsearch与solr的区别
都是基于lucene搜索服务器基础之上开发
单点登录
购物车
消息队列