- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 面试题(框架篇)
Spring、Spring MVC、Spring Boot有什么区别Spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以方便整合各种框架,提供AOP机制弥补OOP的代码重复问题,更方便将不同类不同方法中的共同处理抽取成切面、自动注入给方法执行,如日志、异常等。Spring MVC是Spring对web框架的一个解决方案,提供一个总的前端控制器Servlet,用来接受请求,然后定义了一套路由策略(url到handle的映射)及适配执行handle,将handle结果使用..
2021-09-15 23:05:31 139
原创 面试题(MySQL篇)
ACID靠什么保证A(原子性):由undo log日志保证,记录需要回滚的日志信息,事务回滚时撤销成功执行的sql;C(一致性): 尤其他三大特性保证,程序代码要保证业务上的一致性;I(隔离性):由MVCC来保证;D(持久性):由内存+redo log来保证,mysql修改数据同时在内存和redo log记录这次操作,宕机的时候可以从redo log恢复。redo log刷盘在系统空闲时进行,并不是写了之后马上进行。MySQL的索引索引是帮助MySQL高效获取数据的数据结.
2021-09-15 22:49:00 138
原创 面试题(JVM篇)
GC如何判读对象可以被回收引用计数法:给对象分配一个空间保存被引用的次数。(JVM一般不会用)(A引用B,B引用A,这两个对象永远不会被回收)根搜索法(可达性分析):从GC Roots开始向下搜索,搜索走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连,证明此对象是不可用的,虚拟机就会判断是可回收对象。GC Roots的对象:虚拟机栈中引用的对象;方法区中类静态属性引用的对象;方法区中常量引用的对象;本地方法栈中native方法引用的对象。可达性分析中的不可达对象并不..
2021-09-15 20:11:03 111
原创 面试题(线程并发篇)
CountDownLatch和Semaphore的区别和底层原理CountDownLatch表示计数器,可以给CountDownLatch设置一个数字,一个线程调用CountDownLatch的await()将会阻塞,其他线程可以调用CountDownLatch的countDown()方法对CountDownLatch中的数字减一,数字减成0之后,所有await的线程都将被唤醒。对应的底层原理是,调用await()方法的线程会利用AQS排队,数字减为0,则会将AQS中排队的线程依次唤醒。Sema.
2021-09-15 19:22:15 347
原创 面试题(Java基础篇)
JDK、JRE、JVM的区别和联系JDK:Java开发工具,JDK=JRE+Java工具JRE:Java运行时环境,JRE=bin(JVM)+lib(类库)JVM:Java虚拟机,JVM拿到.class文件调用lib类库解释class文件翻译成机器码,映射到操作系统HashMap和HashTable的区别、底层实现是什么?HashMap没有synchronized修饰,线程不安全,HashTable线程安全。HashMap允许key和value为null,HashTable不.
2021-09-15 16:45:24 116
原创 Error and Exception
java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull(Ljava/lang/Object;Ljava/util/function/Supplier;)V原因在于jar包冲突,版本不兼容,只保留和SpringFramework版本相同的Spring-test的依赖.java.lang.IllegalStateException: Failed to load ApplicationContext配置文件出错ja
2021-09-10 19:48:28 58
原创 位运算符与位移运算符
目录& 按位与运算符 | 按位或运算符 ^ 按位异或运算符<< 左移运算符 >> 右移运算符 正数的原码、反码、补码均一样。负数的反码=原码的符号位不变,其他位取反。负数的补码=反码+1。计算机的运算都是以补码的方式来运算的。& 按位与运算符 同时为1,结果为1,否则为0。案例演示2&32的补码为0000 00103的补码为0000 00112&a...
2021-05-01 18:53:51 161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人