java初级面试题(个人总结)

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:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘

扫描二维码关注公众号,回复: 4232677 查看本文章

    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

猜你喜欢

转载自blog.csdn.net/zhou_zi_lin/article/details/84497246