博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  面试

1

摘要:Spring事务的实现方式和原理以及隔离级别? 在使用spring的时候,事务有两种形式,一种是编程式,一种是声明式。@Transactional就是声明式事务。 首先,事务的概念是数据库层面的,spring只是基于此进行了扩展。 在一个方法上加了@Transactional注解后,会将这个代理对象 阅读全文

posted @ 2021-05-10 19:53 南国木棉 阅读(1281) 评论(0) 推荐(0) 编辑

摘要:Spring 是什么? 轻量级的 开源j2ee框架,它是一个容器框架,用来装javabean(Java对象),中间层框架,可以起一个连接作用,比如把Struts2和hibernate连接在一起使用,可以让我们的企业开发更快,更简捷。 Spring是一个轻量级的控制反转(ioc)和面向切面(aop)的 阅读全文

posted @ 2021-04-15 18:55 南国木棉 阅读(93) 评论(0) 推荐(0) 编辑

摘要:线程池中阻塞队列的作用?为什么是先添加队列而不是先创建最大线程? 1 一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度,就无法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续入队的任务。 阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使得线程进入wait状态,释放cp 阅读全文

posted @ 2021-04-12 21:16 南国木棉 阅读(3529) 评论(3) 推荐(2) 编辑

摘要:为什么用线程池?解释下线程池参数 1 、降低资源消耗;提高线程利用率,降低创建和销毁线程的消耗。 2 、提高响应速度;任务来了,直接有线程可以使用,而不是先创建,在执行。 3 、 提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。 1)corePoolSize 代表的最大线程数,也 阅读全文

posted @ 2021-04-12 20:43 南国木棉 阅读(363) 评论(0) 推荐(0) 编辑

摘要:首先解释下并发,并行,串行 串行:时间上不冲突,顺序执行。 并行:同时执行,但互不干扰。 并发:允许两个任务彼此干扰,统一时间点,只有一个任务在执行。 比如:A线程执行0.5秒,然后暂停,执行B线程0.5秒,然后再回来执行A0.5秒。 并发三大特性 原子性 可见性 有序性 原子性:指在一个操作中cp 阅读全文

posted @ 2021-04-11 13:54 南国木棉 阅读(603) 评论(0) 推荐(0) 编辑

摘要:ThreadLocal的原理和使用场景 每一个Thread对象,均含有一个ThreadLocalMap类型的成员变量,threadLocals,它存储本线程中所有的ThreadLocal对象及其对应值。 ThreadLocalMap对象由一个Entry对象构成。 Entry继承自weakRefere 阅读全文

posted @ 2021-04-11 10:51 南国木棉 阅读(1152) 评论(0) 推荐(0) 编辑

摘要:谈谈对线程安全的理解 线程安全可以理解为内存安全,堆是内存共享,可以被所有的内存访问。 当多个线程访问同一个对象时,如果不进行额外的同步控制或者其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象时线程安全的。 堆是进程和线程共有的空间,分全局堆和局部堆,全局堆就是所有没有分配的 阅读全文

posted @ 2021-04-10 14:39 南国木棉 阅读(947) 评论(0) 推荐(0) 编辑

摘要:sleep和wait的区别: 1 sleep是Thread的静态方法,wait是object方法。 2 sleep不会释放锁,wait会释放锁。 3 sleep不需要唤醒,而wait需要被唤醒。 yield 方法的作用是放弃当前cpu资源,将它让给其他的任务去占用cpu执行时间,但放弃的时间不确定, 阅读全文

posted @ 2021-04-10 14:26 南国木棉 阅读(84) 评论(0) 推荐(0) 编辑

摘要:线程的生命周期?线程有几种状态? 1 线程通常有五种状态,创建,就绪,运行,阻塞和死亡状态。 2 祖泽的情况又分三种 1)等待阻塞,当线程调用wait方法的时候, 2)同步阻塞, 当线程未拿到同步锁的时候。 3)其他阻塞,运行sleep或者join方法的时候。 新建状态(new):新创建了一个线程。 阅读全文

posted @ 2021-04-10 14:09 南国木棉 阅读(533) 评论(0) 推荐(1) 编辑

摘要:Gc如何判断对象可以被回收? 1 引用计数器:每一个对象有一个引用属性,新增一个引用时加一,引用释放时减一,计数为0的时候可以回收。 2 可达性分析:从GcRoot开始向下搜索,搜索所走过的路径被称为引用链,当一个对象到GcRoot没有任何引用链相连时,则证明此对象是不可用的,那么虚拟机就可以判定回 阅读全文

posted @ 2021-04-10 14:03 南国木棉 阅读(563) 评论(0) 推荐(0) 编辑

摘要:java异常体系 java中所有的异常都来自顶级父类ThrowAble。 ThrowAble下有两个子类,Exception和Error。 Error是程序无法处理的错误。一旦出现这个错误,程序将被迫停止运行。 Exception不会导致程序停止,又分为RunTimeException运行时异常和C 阅读全文

posted @ 2021-04-10 11:01 南国木棉 阅读(67) 评论(0) 推荐(0) 编辑

摘要:双亲委派模型 先看图 java自带三种类加载器, BootStrapClassLoader,ExtClassLoaer,AppClassLoader, 其中BootStrapClassLoader是最高级,ExtClassLoader是BootStrapClassLoader的子加载器,AppCla 阅读全文

posted @ 2021-04-10 10:43 南国木棉 阅读(45) 评论(0) 推荐(0) 编辑

摘要:java类加载器有哪些? jdk自带有三个类加载器: bootstrap,ClassLoader、ExtclassLoader、AppClassLoader。 BootStrapClassLoader 是ExtClassLoader的父类加载器,默认负责加载%JAVA_HOME%lib下jar包 和 阅读全文

posted @ 2021-04-10 10:08 南国木棉 阅读(1277) 评论(0) 推荐(0) 编辑

摘要:什么是字节码?采用字节码的好处是什么? java中的编辑器和解释器: java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟机的机器。这台虚拟的机器在 任何平台上都提供给编译程序一个的共同的接口。 编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来讲虚拟机代码转换为 阅读全文

posted @ 2021-04-10 09:56 南国木棉 阅读(1048) 评论(0) 推荐(0) 编辑

摘要:如何实现一个ioc容器 1 配置文件配置包扫描路径 2 递归包扫描获取.class文件 3 反射,确定需要交给ioc管理的类。 4 对需要注入的类进行依赖注入 配置文件中指定需要扫描的包。 定义一些朱姐,分别表示控制层,业务层,持久层,依赖注入主角,获取配置文件注解, 从配置文件中获取需要扫描包的路 阅读全文

posted @ 2021-04-08 21:45 南国木棉 阅读(745) 评论(1) 推荐(0) 编辑

摘要:ConcurrentHashMap原理,jdk7和jdk8的区别 jdk7 数据结构:RenntrantLock+Segment+HashEntry,一个Segment中包含了一个hashEntry 数组,每个HashEntry又是一个链表结构, 元素查询:二次hash,第一次hash定位带Segm 阅读全文

posted @ 2021-04-08 21:40 南国木棉 阅读(265) 评论(0) 推荐(0) 编辑

摘要:HashMap 和HashTable的区别?底层实现是什么? 区别: (1)HashMap方法没有synchroized修饰,线程非安全,HashTable线程安全 (2)HashMap允许key和value为null,而HashTable不允许 2 底层实现:数组+链表实现 jkd8开始链表高度到 阅读全文

posted @ 2021-04-08 21:19 南国木棉 阅读(677) 评论(0) 推荐(0) 编辑

摘要:ArrayList : 基于动态数组,连续的内存存储,适合下标访问(随机访问)。 扩容机制 一位内数组长度固定,超出长吨存数据时需要新建数组,然后将会老数组的数据拷贝到新数组, 如果不是尾部插入数据还会涉及到元素的移动(帮后复制一份,插入新元素),使用尾插法并指定 初始值可以极大提升性能,甚至超过l 阅读全文

posted @ 2021-04-08 20:52 南国木棉 阅读(58) 评论(0) 推荐(0) 编辑

摘要:hashCode简介 hashCod()作用 是获取哈希码,也称为散列码;他实际上是返回一个int整数,这个哈希码的作用是确定该函数哈希表中的索引位置。hashCode定义在JDK的Object.java中,Java中的任何类都包含有hashCode()函数。 散列表存储的是键值对,他的特点是:能根 阅读全文

posted @ 2021-03-25 20:46 南国木棉 阅读(41) 评论(0) 推荐(0) 编辑

摘要:List 是有序的,按对象进入的顺序进行保存的,可以重复,允许多个null元素对象,可以使用Iterator取出所有元素, 也可以使用get(Index)获取指定元素 Set是无序的,不可重复的,只能有一个null元素对象,取元素的时候只能用Iterator接口获取所有元素,在逐一便历各个元素。 s 阅读全文

posted @ 2021-03-25 20:18 南国木棉 阅读(47) 评论(0) 推荐(0) 编辑

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