秋招冲冲
文章平均质量分 83
需要沉淀沉淀
念念不忘 必有回响
展开
-
Linux 进程管理
cpu用于计算执行优先级的因子数值越大表明进程是cpu密集型运算执行。TTY(完整的终端名称)终端设备,发起该进程的设备识别符号,如果显示‘?kill进程名称(通过进程名称杀死进程也支持通配符这在系统因负载过大而。ps-ef|grepxxx功能描述可以查看子父进程之间的关系。%CPU占用的CPU资源的百分比占用越高进程越耗费资源。TIME该进程占用CPU的运算时间注意不是系统时间。%MEN占用的内存使用率占用越高进程越耗费资源。.........原创 2022-07-31 22:34:00 · 292 阅读 · 0 评论 -
Spring-ApplicationContext refresh的流程
refresh的12个步骤 1.prepareRefresh //完成整体的准备工作 2.obtainFreshBeanFactory //2-6完成beanfactory的准备工作 3.prepareBeanFactory 4.postProcessBeanFactory 5.invokeBeanFactoryPostProcessors 6.registerBeanPostProcessors原创 2022-06-28 17:08:16 · 415 阅读 · 0 评论 -
JVM内存结构
1.哪些部分会出现内存溢出 ①不会出现内存溢出的区域-程序计数器 ②内存溢出的两种类型 Ⅰ出现OutOfMemoryError的情况 1️⃣堆内存耗尽-对象越来越多,又一直在使用,不能被垃圾回收 2️⃣方法区内存耗尽-加载的类越来越多,很多框架会在运行期间动态产生新的类 3️⃣虚拟机栈累积-每个线程最多原创 2022-06-24 11:52:10 · 672 阅读 · 0 评论 -
ThreadLocal
面试题:谈一谈对ThreadLocal的理解 1.ThreadLocal可以实现【资源对象】的线程隔离,让每个线程各用各的【资源对象】,避免 争用引发的线程 2.ThreadLocal同时实现了线程内的资源共享 3.其原理是,每个线程内有一个ThreadLocalMap类型的成员变量,用来存储资源对象 调用set方法,就是以ThreadLocal自己作为key,资源对象作为value,放入当前线程的原创 2022-06-20 21:36:07 · 189 阅读 · 1 评论 -
Hashtable和ConcurrentHashMap
1.Hashtable和ConcurrentHashMap都是线程安全的Map集合 2.Hashtable并发度低,整个Hashtable对应一把锁,同一时刻,只能有一个线程操作它 3.jdk1.8之前ConcurrentHashMap使用Segment+数组+链表的结构,每个Segment对应一把锁,若多个线程访问不同的Segment,则不会冲突 4.jdk1.8开始ConcurrentHashMap将数组的每个头节点作为锁,若多个线程访问的头节点不同原创 2022-06-19 22:00:41 · 219 阅读 · 0 评论 -
java中的悲观锁和乐观锁
1.悲观锁的代表是synchronized和Lock锁 ①其核心思想是:线程只有占有了锁,才能去操作共享变量,每次只有一个线程占锁成功,获取锁失败的线程,都得停下来等待 ②线程从运行到阻塞、再从阻塞到环形,涉及线程上下文切换,如果频繁发生,影响性能 ③实际上,线程在获取synchronized和Lock锁时,若锁已经被占用,都会做几次重试操作,减少阻塞的机会2.乐观锁的代表是AtomicInteger,使用cas(compareAndSetInt)来保证原原创 2022-06-19 21:25:10 · 1543 阅读 · 0 评论 -
lock vs synchronized lock和synchronized的异同
·语法层面 1.synchronized是关键字,源码在 jvm 中,用 c + +语言实现 2.Lock是接口,源码由 jdk 提供,用 java 语言实现3.使用 Synchronized 时,退出同步代码块锁会自动释放,而使用Lock时,需要手动调用unlock方法释放锁·功能层面1.二者均属于悲观锁、都具备基本的互斥、同步、锁重入功能2.Lock提供了许多synchronized不具备的功能...............原创 2022-06-15 20:46:24 · 145 阅读 · 0 评论 -
wait vs sleep wait和sleep的异同
·共同点:wait(),wait(long)和sleep(long)的效果都是让当前线程暂时放弃中央处理器的使用权,进入阻塞状态 ·方法归属不同 ①sleep(long)是Thread的静态方法 ②而wait(),wait(long)都是Object的成员方法,每个对象都有 ·醒来时机不同 ①sleep(long)和wait(long)的线程都会在等待相应毫秒后醒来原创 2022-06-14 22:27:34 · 137 阅读 · 0 评论 -
线程面试相关问题-线程有哪些状态 线程池 线程调用start方法是立即执行了吗 ?
线程有哪些状态? Java线程中一共有6种状态,分别为:NEW、RUNNABLE、WAITING、TIMED_WAITING、BLOCKED、TERMINATED,其中RUNNABLE包含READY和RUNNING状态,详情可见下图: 线程调用start方法是立即执行了吗 ? 线程不是马上执行的;准确来说,调用start( )方法后,线程的状态从 new 的状态 变成 “READY(就绪)”状态,而不是“RUNNING(运行中)”状态。线程要等待CPU调度,不同的JVM有不同原创 2022-06-08 21:16:11 · 827 阅读 · 0 评论 -
设计模式面试相关问题
Java设计模式--单例模式_张志明(努力奋斗版)的博客-CSDN博客单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类 只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这是就会使用到...https://blog.csdn.n原创 2022-06-08 20:54:35 · 95 阅读 · 0 评论 -
HashMap面试相关问题-为啥hashmap要使用红黑树,为啥不直接采用红黑树,而是当大于8个的时候才转换红黑树?何时会退化为链表?为何要二次哈希?.....
为啥hashmap不直接采用红黑树,而是当链表长度大于8个的时候才转换红黑树?小于6个转为链表?_小小梁的实验室的博客-CSDN博客_hashmap为什么不直接用红黑树为啥hashmap不直接采用红黑树,而是当大于8个的时候才转换红黑树?_weixin_43968372的博客-CSDN博客_hashmap为什么不直接用红黑树为啥hashmap要使用红黑树? jdk1.7之前 只使用链表的话 如果链表太长会影响hashmap的性能为什么不直接采用红黑树? 时间:因为Map中原创 2022-06-08 14:59:47 · 729 阅读 · 0 评论 -
Java集合基础知识学习笔记
Java结合框架概述: 1.一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态的把多个对象的引用放入容器中 ·数组在内存存储方面的特点: .........原创 2022-03-15 21:34:57 · 1048 阅读 · 0 评论 -
fail-fast和fail-safe
fail-fast(快速失败) 当我们在遍历集合元素的时候,经常会使用迭代器,但在迭代器遍历元素的过程中,如果集合的结构被改变的话,就会抛出异常,防止继续遍历。这就是所谓的快速失败机制。即:一旦发现遍历的同时其它人来修改 则立即抛异常。java.util包下面的所有的集合类都是快速失败的 我们可以通过迭代器来遍历list,Iterator是一个接口, ArrayList内部类实现Iterator接口来实现相关方法 代码如下所示 其中expectedModCount记录了刚开始使用原创 2022-06-08 14:05:38 · 126 阅读 · 0 评论