随笔分类 -  Java面试题

摘要:操作系统中线程状态: 1 新建 2 就绪 3 运行 4 阻塞 5 死亡 Java中线程状态: 1 新建 2 可运行 3 阻塞 4 等待 5 有时限等待 6 死亡 阅读全文
posted @ 2023-03-07 21:55 程长新 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1 corePoolSize:核心线程数 最多保留的线程数目 2 maximumPoolSize:最大线程数 核心线程数+救急线程数 3 keepAliveTime:生存时间 针对救急线程 4 unit:时间单位 针对救急线程 5 workQueue:阻塞队列 6 threadFactory:线程工 阅读全文
posted @ 2023-03-06 09:13 程长新 阅读(42) 评论(0) 推荐(0) 编辑
摘要:spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不起作用了,常见情况如下: 抛出检查异常导致事务不能正确回滚 spring事务默认只对非检查异常进行回滚,即运行时异常。检查异常就是程序编译时必须处理的。 解决办法:可以通过配置@Transcational的属性rollb 阅读全文
posted @ 2023-02-27 19:29 程长新 阅读(417) 评论(0) 推荐(0) 编辑
摘要:底层数据结构,1.7和1.8有什么区别 1.7:数组+链表 1.8:数组+(链表 | 红黑树) 为什么要用红黑树 当链表过长时查询效率太低,树化可以提高查询效率 为什么不是一开始就用树,而是达到一定条件再树化 TreeNode占用空间比普通链表占用空间大 树化阈值为何是8 为了让树化概率更小,因为正 阅读全文
posted @ 2023-02-19 11:48 程长新 阅读(16) 评论(0) 推荐(0) 编辑
摘要:#{}是预编译处理,是占位符;${}是字符串替换、是拼接符。 mybatis在处理#{}时,会将sql中的#{}替换为?,调用PreparedStatement来赋值,可以有效防止SQL注入。 在处理${}时,就是简单将${}替换为变量的值 ,调用Statement来赋值。 阅读全文
posted @ 2023-02-19 11:28 程长新 阅读(28) 评论(0) 推荐(0) 编辑
摘要:starter可以使我们少定义一些配置 比如我们使用spring+springMvc进行开发时,如果需要引入mybatis等框架,还需要再去xml中定义mybatis需要的bean。 使用starter可以让我们开箱即用,只进行简单的属性配置就可以(使用默认配置时,直接不需要配置),就只可以直接进行 阅读全文
posted @ 2023-02-12 22:37 程长新 阅读(99) 评论(0) 推荐(0) 编辑
摘要:1 前端控制器dispatcherServlet接收到用户请求 2 dispathcherServlet调用处理器映射器handlerMapping 3 handlerMapping根据url找到对应处理器返回给dispatcherServlet(可以根据xml配置、注解进行查找) 4 dispat 阅读全文
posted @ 2023-02-12 22:25 程长新 阅读(19) 评论(0) 推荐(0) 编辑
摘要:Spring是一个IOC容器,用来存放管理Bean,使用依赖注入实现控制反转。也是一个桥梁,可以很方便地整合各种框架。还提供了AOP机制,弥补了OOP的代码重复问题,更方便将不同类不同方法中的共同处理抽取成切面,比如日志、异常等。 SpringMVC是spring对web框架的一个解决方案,提供了一 阅读全文
posted @ 2023-02-12 22:10 程长新 阅读(164) 评论(0) 推荐(0) 编辑
摘要:ArrayList是fail-fast的典型代表,遍历的同时不能修改,尽快失败 原理是arrayList中有一个修改次数变量,每次修改list这个变量都会+1 获取迭代器时将arrayList中的修改次数变量赋值给迭代器中的变量,之后每次遍历前都要比较这两个变量是否相同,不同则抛出并发修改异常 Co 阅读全文
posted @ 2023-02-10 11:24 程长新 阅读(19) 评论(0) 推荐(0) 编辑
摘要:Spring中的Bean默认是单例模式的,框架并没有对bean进行多线程的封装。所以单例bean是线程不安全的。 如果Bean是有状态的(有状态即有数据存储功能),则需要我们自己来保证线程安全。 最简单的方法即改变Bean作用域,将单例变为原型,即'singleton'改为'protopyte',这 阅读全文
posted @ 2023-02-07 23:11 程长新 阅读(547) 评论(0) 推荐(1) 编辑
摘要:事务这个概念是数据库层面的,Spring只是基于数据库中的事务进行了扩展,以及提供了一些能让程序员更加方便操作事务的方式。 Spring中有两种使用事务的方式,一种是编程式的,一种是申明式的,@Transactional注解就是申明式的。 比如我们可以在某个方法上增强@Transactional注解 阅读全文
posted @ 2023-02-01 23:02 程长新 阅读(89) 评论(0) 推荐(0) 编辑
摘要:spring是一个容器框架,用来装javaBean(java对象),也是一个中间层框架(万能胶)可以起到连接作用,比如将mybatis、springMVC等粘合在一起运用,可以让我们的开发更快、更简洁。 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。 IOC **ioc 阅读全文
posted @ 2023-01-31 23:09 程长新 阅读(182) 评论(0) 推荐(0) 编辑
摘要:并发:多个任务会相互干扰,同一时间点只有一个任务运行,交替执行。 并行:多个任务互不干扰,在同一时间点共同执行,在时间上是重叠的。 串行:在同一时间点只有一个任务运行,在时间上不可能重叠,任务挨个运行。 阅读全文
posted @ 2023-01-31 17:58 程长新 阅读(556) 评论(0) 推荐(0) 编辑
摘要:守护线程:为所有非守护线程提供服务的线程。任务一个守护线程都是整个JVM中所有非守护线程的保姆。 守护线程就是整个进程中一个默默无闻的小喽喽,它的生死无关重要,但它依赖整个进程而运行;哪天其他线程都结束了,程序要结束了, 理都没理守护线程,就把它中断了。 注意:由于守护线程的终止是自身无法控制的,所 阅读全文
posted @ 2023-01-31 17:49 程长新 阅读(236) 评论(0) 推荐(0) 编辑
摘要:当多个线程访问同一个对象时,如果不用做额外的控制,调用这个对象的行为都可以获得正确的结果,就说这个对象是线程安全的。 线程安全准确地说是内存安全,堆是共享内存,可以被所有线程访问。 在每个进程的内存空间都会有一块特殊的公共区域,即堆(内存)。进程内的所有线程都可以访问到该区域,这就是造成问题的潜在原 阅读全文
posted @ 2023-01-30 23:08 程长新 阅读(58) 评论(0) 推荐(0) 编辑
摘要:锁池 所有需要竞争同步锁的线程都会放在锁池当中,比如某个对象的同步锁被其中一个线程得到,则其它线程需要在锁池中等待,当前面的线程释放掉同步锁后锁池中的线程去竞争同步锁,得到锁的线程进入就绪队列等待CPU资源分配。 等待池 当调用wait()方法后,线程会放到等待池中,等待池中的线程不会去竞争同步锁。 阅读全文
posted @ 2023-01-30 22:35 程长新 阅读(34) 评论(0) 推荐(0) 编辑
摘要:**线程的生命周期:**创建-->就绪-->运行-->阻塞-->死亡 线程的状态: 新建状态(New):新创建了一个线程对象 就绪状态(Runable):其它线程调用了该线程的start方法。该状态的线程都在可运行线程池中,等待获取CPU使用权 运行状态(Running):就绪状态的线程获取到了CP 阅读全文
posted @ 2023-01-30 09:30 程长新 阅读(78) 评论(0) 推荐(0) 编辑
摘要:**可达性分析法:**从GC Roots开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任务引用链相连时,则证明此对象是不可用的,此时虚拟机就判断是可回收对象。 可以作为GC Roots的对象有: 虚拟机栈中引用的对象 方法区中类静态属性引用的对象 方法区中常量引用的对象 阅读全文
posted @ 2023-01-29 22:23 程长新 阅读(46) 评论(0) 推荐(0) 编辑
摘要:Java中的所有异常都来自顶级父类Throwable Throwable下有两个子类,Exception和Error Error是程序无法处理的错误,一旦出现程序就会被迫停止运行 Exception是程序可以处理的错误,可以分为两种RunTimeException运行时异常和CheckedExcep 阅读全文
posted @ 2023-01-29 22:17 程长新 阅读(101) 评论(0) 推荐(0) 编辑
摘要:类加载器 顶级类加载器:BootStrapClassLoader 负责加载%JAVA_HOME%路径下lib文件夹中的jar包和class文件 扩展类加载器:ExtClassLoader 负责加载%JAVA_HOME%路径下lib文件夹下ext文件夹中的jar包和class文件 系统类加载器,线程上 阅读全文
posted @ 2023-01-29 09:47 程长新 阅读(51) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示