模拟面试总结3

1、String、StringBuffer、StringBuilder的区别

  String 字符串常量、StringBuffer 字符串变量(线程安全)、StringBuilder 字符串变量(非线程安全)

参考链接:

https://www.cnblogs.com/goody9807/p/6516374.html

2、int和Integer的区别

  Integer是int的包装类,int则是java的一种基本数据类型 

参考链接:

https://www.cnblogs.com/guodongdidi/p/6953217.html

3、Object类里面的方法

  构造函数,hashCode() 和 equals() 函数用来判断对象是否相同,wait(), wait(long), wait(long,int), notify(), notifyAll() 线程等待和唤醒。toString() 和 getClass(),clone(),finalize() 用于在垃圾回收。

参考链接:

https://baijiahao.baidu.com/s?id=1623176133818131097&wfr=spider&for=pc

4、接口和抽象类的区别

  抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。

  接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。

参考链接:

http://www.importnew.com/12399.html

5、线程的生命周期

  在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态

参考链接:

https://www.cnblogs.com/sunddenly/p/4106562.html

6、MySQL的事务隔离级别

补充:

  1、SQL规范所规定的标准,不同的数据库具体的实现可能会有些差异

  2、mysql中默认事务隔离级别是可重复读时并不会锁住读取到的行

  3、事务隔离级别为读提交时,写数据只会锁住相应的行

  4、事务隔离级别为可重复读时,如果有索引(包括主键索引)的时候,以索引列为条件更新数据,会存在间隙锁间隙锁、行锁、下一键锁的问题,从而锁住一些行;如果没有索引,更新数据时会锁住整张表。

  5、事务隔离级别为串行化时,读写数据都会锁住整张表

   6、隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大,鱼和熊掌不可兼得啊。对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed,它能够避免脏读取,而且具有较好的并发性能。尽管它会导致不可重复读、幻读这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。

参考链接:

https://blog.csdn.net/dagailv/article/details/79905894

7、合并分支和Git工作流

参考链接:

https://www.cnblogs.com/zsh-blogs/p/10622753.html

8、排序算法

插入、快排

参考链接:

https://blog.csdn.net/hellozhxy/article/details/79911867

9、Redis基本数据类型

String、Hash、List、Set、Zset

参考链接:

https://www.cnblogs.com/zsh-blogs/p/10630444.html

10、GET请求参数长度限制

Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。

Google (chrome)

URL最大长度限制为8182个字符。

参考链接:

https://blog.csdn.net/a460550542/article/details/72511343

11、Restful风格接口

参考链接:

https://www.cnblogs.com/wangwiz/p/restful.html

12、单例设计模式、设计模式及其作用

单例模式、工厂模式、策略模式、观察者模式、迭代器模式

参考链接:

https://blog.csdn.net/kefengwang/article/details/81430694

13、跨域问题前后端解决方案

(1)利用SpringMVC @CrossOrigin注解

(2)使用nginx作为反向代理

(3)修改浏览器配置解决跨域

(4)使用jsonp解决跨域

(5)CORS解决跨域 

参考链接:

https://blog.csdn.net/cuixiaogang110/article/details/81948173

https://blog.csdn.net/qq_43486273/article/details/83272500

14、native关键字

用于Java调用其他语言类库

参考链接:

http://www.cnblogs.com/Qian123/p/5702574.html#_labelTop

原文地址:https://www.cnblogs.com/zsh-blogs/p/10757207.html