面试2
Posted lenlen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试2相关的知识,希望对你有一定的参考价值。
API.
每天重复同样东西。我值不要太重。
聊思路,不说代码问题。
代码原则问题最关键。
解决问题,不是发泄情绪。
业务商量,技术上自己解决。+
分布式架构
ORM
IOC 控制反转 DI 依赖注入
AOP
除非在创建初期就需要有值使用构造注入。其他情况基本都试用设置注入
设值注入:p命名空间注入,节点注入。
构造注入
控制反转(ioc)
真实面试题案例总结:
(1)数据库优化方法。
1.选取最适用的字段属性
2.使用连接(JSON)来代替子查询
3.使用联合来代替手动创建的临时表
4.事务
5.锁定表
6.使用主外键
7.使用索引
8.优化的查询语句
9.符合三大范式的建表规范
(2)sql语句优化方法
1.查询语句进行优化,避免全表查询,
2.避免where语句中进行null值判断
3.避免where子句中使用!=或<>
4.避免在where中使用or来连接条件
5.in和not in慎用
6.避免全表查询
7.避免在where语句中进行表达式操作
8.避免在where中进行函数操作
9.不要在where中等于操作
10.索引
11.尽量使用数字型字段,若只含树脂信息尽量不要设计为字符型
(3)非自动框架和自动框架的区别。
https://blog.csdn.net/paomian_zhong/article/details/81610576
(4)什么是单例模式。
整个程序中只允许有唯一的一个对象(这个类只能实例化一次)
(5)maven是什么用。
管理项目结构,统一管理jar包,集成项目。
(6)一个类中可以调用静态方法吗? 可以
在静态方法可以调用普通方法吗? 不能
(7)控制反转是什么。
将本来A与B的控制权移交到外部,通过外部容器保证双方的交互,降低计算机代码之间的耦合度。
(8)面向切面的编程是什么。
AOP即面向切面编程,是OOP编程的有效补充
使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑
这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来的效果。
(9)什么是垃圾回收机制。 分袋回收
(10)hashmap集合属于线程安全的吗。 不是
hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。
(11)和jdbc对比为什么使用mybatis。
JDBC是java提供的一个操作数据库的API.
Mybati是一个支持普通SQL查询,存储过程和高级映射的优秀持久框架
Mybatis是对JDBC的封装。Mybatis有以下优点:
优化获取和释放
SQL统一管理,对数据库进行存储操作
生成动态SQL语句
能够对结果集进行映射
(12)65465464654561378946.1231889用哪个数据类型存储 String
(13)string是基本数据类型吗? 不是
(14)java书籍 设计模式之禅 java从入门到精通
(15)全国最大的开源平台 开源中国
(16)多线程使用start还是run start
(17)使用了哪些缓存。 redis
(18)什么是JDK。
jdk是 Java 语言的软件开发工具包.
(19)前端,后台是谁来定义接口。 后台
送命题!!!:
上海题:
(20)请问,spring的ioc是基于java的什么技术实现的。
IOC基于JAVA的反射机制实现的。
(21)JVM运行原理
(22)jvm哪些内容组成
http和https协议区别
java的多态
悲观锁乐观锁
分布式和集群
哪些微服项目。
事物的隔离级别,传播机制
新闻网站的数据库设计
S T R I N G
写出算法空格消失
redis存储过程和优化
redis哪些地方使用
合理高效使用redis
mangoDB和redis的区别
你知道的数据结构
set集合是唯一的,内部如何判断
简述jdk1.8的新特性和1.9发布时间
java的servlet生命周期,和方法
servlet的程序结构
三种方式实现冒泡排序
线程死锁
线程实现方式
sleep和wait的区别
如何判断子类或实现类
设计模式共有几种,使用场景
njax
搭建注意事项
spring AOP思想源在哪里。
spring用到哪些设计模式
boss直聘,智联招聘看技术和需求。
事务的隔离级别和传播机制~10.22
事务隔离级别 脏读 不可重复读 幻读
读未提交
(read-uncommitted) 是 是 是
不可重复读
(read-committed) 否 是 是
可重复读
(repeatable-read) 否 否 是
串行化
(serializable) 否 否 否
事务的传播机制:
1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。
2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘
3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。
4、PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。
5、PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
6、PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
7、PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
事务的并发问题
1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据
2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。
3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。
小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表
声明式事务中怎么用
一、简答题(共9道,前8道题每道题10分,第9道题20分,共100分)
1.spring框架的核心技术有哪些,分别简述。
ioc 控制反转
di 依赖注入
aop 面向切面
2.你觉得使用MyBatis有什么好处?
Mybatis是对JDBC的封装。Mybatis有以下优点:
优化获取和释放
SQL统一管理,对数据库进行存储操作
生成动态SQL语句
能够对结果集进行映射
3.Spring中在什么时候涉及到了哪些设计模式。
工厂模式
spring中beanfactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean的对象。
单例模式
beanfactory
代理模式
spring的proxy模式在aop中体现。
4.Spring容器中是以什么样的形式存储bean的?hashmap
5.Spring中bean的作用域有几种,默认是什么?
singleton 在Spring IOC容器中仅存在一个bean实例。bean以单例方式存在
prototype 每次容器中调用bean时,返回一个新的实例
request 每次HTTP请求都会创建一个新的bean,该作用域仅适用于webapplicationcontext环境
session 同一个HTTP Session共享一个bean,不容session使用不同bean,金适用于Webapplicationcontext环境
globalsession 一般用于portlet应用环境,该作用域金适用于Webapplicationcontext环境
默认是singleton
6.事务分为几种,在Spring中提倡大家使用哪种事务?
编程式事务 声明式事务
声明式事务提倡
7.在MyBatis中多表查询需要注意哪些事项?
property:类中的属性名
colunm:表中的字段名称
注意看数据库主外键关系
8.Spring中常用的注解有哪些,使用场景是什么?
@Component 所有受Spring管理组件的通用形式,不推荐使用
@Controller 表示层的bean层
@Service 对应业务层(service层)
@Repository 对应数据访问层的bean(dao层)
@autowired @Qualifier 两个联合使用
9.MyBatis使用哪些标签可以完成动态查询?
<select></select>
<if></if>
<where></where>
<trim></trim>
<choose></choose>
<when></when>
10.Spring的IOC是基于JAVA的什么技术实现的?
反射
1.别改需求
2.出问题解决,别动架构。
3.工作汇报,及时汇报。
空窗期:没有项目没有正事可做。
1.内部培训(技术分享会)。
2.外部培训(培训机构培训)
内部培训人员比较紧密,外部培训专业。内部要认真听,外部听要留存档。
3.codereview(代码回溯) 回顾项目各个模块各个功能,然后发现代码中的不足。各抒己见,产生争执然后解决。
4.琐碎的事情:1.项目维护 2.新技术学习(个人学习) 3.外出团建 4.交换代码学习
浏览过的文献,分仔细。自行制作ppt
提供完整安装包以及步骤。
专门记录学习时遇到的问题和解决方案。
HotSpot 虚拟机
http://localhost:15672
栈帧按顺序的保存有传递给被调函数的参数,返回调用函数的地址,调用函数frame pointer地址,被调函数的局部变量,以及在被调函数中会使用到的保存寄存器的旧值。栈帧必须包含以上所有数据。
以上是关于面试2的主要内容,如果未能解决你的问题,请参考以下文章