java基础
1、String、StringBuffer以及StringBuild的区别?
答:这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面
运行速度:StringBuilder > StringBuffer > String
线程安全性:StringBuffer > StringBuilder
String最慢的原因:
String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
总结:
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
2、知道哪些集合?List与Map的区别以及遍历方式有哪些?
https://www.cnblogs.com/LittleHann/p/3690187.html
答:1.Interface Iterable
1.1 Interface Collection
1.1.1 Interface List(ArrayList、Vector、LinkedList)
1.1.2 Interface Set(HashSet、SortedSet(TreeSet)、EnumSet)
1.1.3 Interface Queue(PriorityQueue、Deque)
1.2 Interface Map(HashMap、Hashtable、SortedMap、WeakHashMap、IdentityHashMap、EnumMap)
HashSet集合判断两个元素相等的标准是两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法的返回值相等
LinkedHashSet元素输出顺序总是与添加顺序一致,由于LinkedHashSet是HashSet的子类,不允许添加重复元素
TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态
LinkedList同时表现出了双端队列、栈的用法
hashMap允许key为null,value为null,key允许重复
3、对象与引用的关系,分别存放在哪里?
一个引用可以指向多个对象
一个对象也可以被多个引用所指
对象存放在堆内存中
引用存放在栈内存中
4、对象在哪些情况下会被当做垃圾回收掉?
1.没有引用指向
2.只有弱引用指向并且不回收弱引用对象的话存储区无空间
3.虚引用指向的对象
满足以上任意条件则在gc时会回收
javaWeb
1、spring事务传播行为
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类似的操作。
---------------------
作者:hsgao_water
来源:CSDN
原文:https://blog.csdn.net/hsgao_water/article/details/52860380
版权声明:本文为博主原创文章,转载请附上博文链接!
2、spring控制事务的方式
1、编程式事务管理(基于Java编程控制,很少使用)
2、声明式事务管理(基于Spring的AOP配置控制)
3、基于XML配置(经常使用)
4、基于注解(配置简单,经常使用)
https://blog.csdn.net/m0_37354861/article/details/70212548
事务的四个特性:
原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性:指事务前后数据的完整性必须保持一致。
隔离性:指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。
持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即时数据库发生故障也不应该对其有任何影响。
事务隔离级别:(五种)
DEFAULT--使用后端数据库默认的隔离级别(Spring中的选择项)
READ_UNCOMMITED--允许你读取还未提交的改变了的数据。可能导致脏、幻、不可重复读
READ_COMMITTED--允许在并发事务已经提交后读取。可防止脏读,但幻读和不可重复读仍可发生
REPEATABLE_READ--对相同字段的多次读取是一致的,除非数据被事务本身改变。可防止脏、不可重复读,但幻读仍可能发生
SERIALIZABLE--完全服从ACID的隔离级别,确保不发生脏、幻、不可重复读。这在所有的隔离级别中是最慢的,它是典型的通过完全锁定在事务中涉及的数据表来完成的
其中,MySQL默认采用REPEATABLE_READ隔离级别;Oracle默认采用READ_COMMITTED隔离级别
3、springboot中用到了哪些注解
@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@ComponentScan
@Repository
@Service
@Controller
@ResponseBody
@RestController
@Component
@ComponentScan
@Bean
@AutoWired
@RequestMapping
4、spring是什么?
spring是一个轻量级开源的设计层面的框架。主要用于业务逻辑和其他层的解耦问题。
一.Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。
二.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
三、在传统应用程序当中,我们如何来完成数据库事务管理?需要一系列“获取连接,执行SQL,提交或回滚事务,关闭连接”,
而且还要保证在最后一定要关闭连接,多么可怕的事情,而且也很无聊;如果采用Spring,我们只需获取连接,执行SQL,
其他的都交给Spring来管理了,简单吧。所以,Spring能非常简单的帮我们管理数据库事务。
四、Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。
五、Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
六、Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)
---------------------
作者:HDDLJJ
来源:CSDN
原文:https://blog.csdn.net/HDDLJJ/article/details/83004840
版权声明:本文为博主原创文章,转载请附上博文链接!
5、spring的工作原理
IOC
AOP
6、什么是IOC?
控制反转
7、什么是AOP?
面向切面编程
8、什么是DI?
依赖注入,IOC的具体实现
9、什么是GC?
垃圾回收
10、springBoot接口请求方式?
get
post
RESTful API
请求 header 获取
11、分布式是什么?
12、集群又是什么,如何实现,正向代理反向代理的优缺点?
13、SpringMvc用过没有?
14、springboot的热部署
springboot底层实现就是springmvc
15、xml的理解
数据库
1、索引有哪些种类?
Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。
https://www.cnblogs.com/yuan-shuai/p/3225417.html
2、内联接、外联接含义是什么?
内联求交集
左外链接
右外连接
交叉连接求笛卡尔积
3、delete与drop