![](https://img-blog.csdnimg.cn/0b8209731d0b4feba18c7b61aa5a3a5a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础知识
文章平均质量分 86
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.
需要沉淀沉淀
念念不忘 必有回响
展开
-
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 评论 -
fail-fast和fail-safe
fail-fast(快速失败) 当我们在遍历集合元素的时候,经常会使用迭代器,但在迭代器遍历元素的过程中,如果集合的结构被改变的话,就会抛出异常,防止继续遍历。这就是所谓的快速失败机制。即:一旦发现遍历的同时其它人来修改 则立即抛异常。java.util包下面的所有的集合类都是快速失败的 我们可以通过迭代器来遍历list,Iterator是一个接口, ArrayList内部类实现Iterator接口来实现相关方法 代码如下所示 其中expectedModCount记录了刚开始使用原创 2022-06-08 14:05:38 · 126 阅读 · 0 评论 -
Java Native关键字 JNI
native:凡是带了native关键字的,说明java的作用范围达不到了,要回去调用底层c语言的库 会进入本地方法栈 调用本地方法接口JNIJNI作用:扩展Java的使用 融合不同的编程语言为Java所用 最初是为了融合C、C++在内存区域中专门开辟了一块标记区域 Native Method Stack 登记native方法 它在最终执行的时候通过JNI加载本地方法库中的方法比如: new Thread(()->{ },"aaa").star原创 2022-05-10 17:55:40 · 285 阅读 · 0 评论 -
JMM---Volatile关键字
JMM即Java Memory Model 它定义了主存、工作内存抽象概念,底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等JMM体现在以下几个方面·原子性-保证指令不会受到线程上下文切换的影响synchronized和Lock能够保证任一时刻只有一个线程执行该代码块,那么自然就不存在原子性问题了,从而保证了原子性。 ·可见性-保证指令不会受cpu缓存的影响volatile关键字可.........原创 2022-04-13 16:49:49 · 514 阅读 · 0 评论 -
JUC高并发编程
JUC简介 在Java中 线程部分是一个重点 , JUC也是关于线程的.JUC就是java.util.concurrent工具包的简称.这是一个处理线程的工具包JDK 1.5出现的原创 2022-04-08 22:27:37 · 548 阅读 · 0 评论 -
Java8新特性(lambda/Stream API/方法引用和构造器引用/Optional类)学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.原创 2022-03-26 19:06:46 · 593 阅读 · 0 评论 -
Java反射基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.Java Reflection原创 2022-03-25 19:40:15 · 364 阅读 · 0 评论 -
Java枚举类与注解基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.希望秋招顺利.原创 2022-03-15 15:13:14 · 740 阅读 · 0 评论 -
Java泛型基础知识学习笔记
写在前面:马上秋招,开个知识点记录贴,就当做课堂笔记吧.原创 2022-03-20 21:05:46 · 531 阅读 · 0 评论 -
Java常用类基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.希望秋招顺利.原创 2022-03-12 11:18:29 · 703 阅读 · 0 评论 -
JavaIO流基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.原创 2022-03-22 17:12:24 · 577 阅读 · 0 评论 -
Java异常处理基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.希望秋招顺利.原创 2022-03-08 11:13:21 · 200 阅读 · 0 评论 -
Java集合基础知识学习笔记
Java结合框架概述: 1.一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态的把多个对象的引用放入容器中 ·数组在内存存储方面的特点: .........原创 2022-03-15 21:34:57 · 1048 阅读 · 0 评论 -
JavaFile类基础知识学习笔记
写在前面:马上秋招,开个知识点记录贴,就当做课堂笔记吧.原创 2022-03-21 22:04:49 · 480 阅读 · 0 评论 -
Java多线程基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.希望秋招顺利.程序、进程、线程 1.程序(program)是为完成特定任务、用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象2.进程(process)是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程:有它自身的产生、存在和消亡的过程.------生命周期·如:运行中的微信、运行中的mp3播放器......原创 2022-03-10 10:56:05 · 352 阅读 · 0 评论 -
Java网络编程基础知识学习笔记
B站视频指路:尚硅谷Java入门视频教程(在线答疑+Java面试真题)_哔哩哔哩_bilibili写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.网络编程概述: ·Java是Internet上的语言 它从语言级上提供了对网络应用程序的支持 程序员很容易开发常见的网络应用程序 ·Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java的本机安装系统里,由JVM进行控制.并且Java实现了一个跨平台的网络库,程序...原创 2022-03-24 22:23:05 · 1705 阅读 · 0 评论 -
Java面向对象基础知识学习笔记
写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧.希望秋招顺利.原创 2022-02-26 20:43:20 · 868 阅读 · 0 评论