• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






金天黑日

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

03 2022 档案

 
线程基础知识08 线程的等待和唤醒
摘要:1 简介 目前,JAVA提供了三种线程等待唤醒的机制。 1)synchronized + Object的wait()和notify()方法 2)Lock的lock()方法和unlock()方法+await()和signal()方法 3)LockSupport的park()和unpark()方法 2 阅读全文
posted @ 2022-03-31 19:40 金天黑日 阅读(240) 评论(0) 推荐(0)
线程基础知识07 线程中断机制
摘要:1 简介 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend, Thread.resume方法 都已经被废弃了。 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了 阅读全文
posted @ 2022-03-26 15:59 金天黑日 阅读(98) 评论(0) 推荐(0)
线程基础知识06 synchronized---使用javap查看相关指令
摘要:1 示例-简单同步代码块 public class SychTest9 { public static void main(String[] args) { Object o = new Object(); synchronized (o){ System.out.println("aaa"); } 阅读全文
posted @ 2022-03-24 22:43 金天黑日 阅读(90) 评论(0) 推荐(0)
线程基础知识05 synchronized类锁和对象锁演示
摘要:1 简介 synchronized在方法内,同步代码块,传入对象,使用的是对象锁,传入class对象,使用的是类锁 作用于普通方法,也是对象锁,当前对象 作用于静态方法,是类锁 2 同步方法示例 2.1两个synchronized 修饰的普通方法 public class SychTest1 { < 阅读全文
posted @ 2022-03-24 17:06 金天黑日 阅读(80) 评论(0) 推荐(0)
idea插件Jclasslib---查看字节码指令
摘要:1 简介 学习一个jvm的知识的时候总要去研究一些字节码指令,但是每一次都把class文件打开到jclasslib里面很是麻烦,后来google发现有人已经写好了这个插件Jclasslib。我们通过Jclasslib可以查看类的字节码指令 2 安装 File => Settings => Plugi 阅读全文
posted @ 2022-03-22 18:17 金天黑日 阅读(277) 评论(0) 推荐(0)
线程基础知识02-CompletableFuture
摘要:1 简介 Futrue可以监视目标线程调用call的情况,当你调用Future的get()方法以获得结果时,调用方的线程就被阻塞,直到目标线程的call方法结束并返回结果。 线程的实现方式有几种方式,继承Thread类,实现Runnable接口,线程池,callable这种方式。 callable和 阅读全文
posted @ 2022-03-22 17:33 金天黑日 阅读(145) 评论(0) 推荐(0)
JAVA基础知识-String.format
摘要:转https://blog.csdn.net/anita9999/article/details/82346552 1 简介 String提供了format方法帮助我们对一个或者多个字符串进行格式化 2 先来个例子看看效果 public static void main(String[] args) 阅读全文
posted @ 2022-03-15 17:11 金天黑日 阅读(171) 评论(0) 推荐(0)
IDEA插件:lombok
摘要:1 安装插件lombok File => Settings => Plugins => Marketplace。在 Marketplace 中搜索 lombok 并安装,安装成功后 lombok 会显示在 installed 标签下 2引入依赖 <dependency> <groupId>org.p 阅读全文
posted @ 2022-03-15 16:25 金天黑日 阅读(164) 评论(0) 推荐(0)
线程基础知识01-几个概念
摘要:1 进程、线程、管程 1.1 进程 我们在电脑上打开微信就开启了一个进程,打开一个腾讯视频又是一个进程。 1.2 线程 一个进程中可以有一个和多个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存,从而极大地提高了程序的运行效率。多个线程执行进程中的不同的任务。 比如qq,我发送文件 阅读全文
posted @ 2022-03-14 19:47 金天黑日 阅读(65) 评论(0) 推荐(0)
spring源码写注释
摘要:转:https://blog.csdn.net/z_c8819/article/details/105258015 1.从GitHub上下载spring项目 https://github.com/spring-projects/spring-framework 当然也可以使用git进行下载: git 阅读全文
posted @ 2022-03-12 21:55 金天黑日 阅读(649) 评论(1) 推荐(0)
IDEA翻译插件translate
摘要:1、打开File->Setting 2、plugins->Browse repositories 3、输入“translate”,选择排序“Downloads” 4、在排行榜上部的“Translation”,点击“install”,等安装之后选择重启IDEA即可 5、使用,上部的翻译按钮为使用翻译功 阅读全文
posted @ 2022-03-11 15:01 金天黑日 阅读(2982) 评论(0) 推荐(0)
线程基础知识 03 synchronized锁(对象在内存的布局和加上锁后对象在内存中的变化)
摘要:1 线程不安全演示 public class ThreadAndLockTest1 { private static int a = 0; public static void main(String[] args) throws InterruptedException { CountDownLa 阅读全文
posted @ 2022-03-09 16:02 金天黑日 阅读(79) 评论(0) 推荐(0)
线程基础知识 04 synchronized锁的四种状态和升级
摘要:转https://www.cnblogs.com/mingyueyy/p/13054296.html 1 轻量级锁和重量级锁简要说明 线程调度本来是由操作系统来管理的。现在,操作系统上跑了一个虚拟机JVM,JVM可以启动JVM级别的线程,实际上还是落实到操作系统级别的线程。 JVM自己能够搞定的锁叫 阅读全文
posted @ 2022-03-09 15:10 金天黑日 阅读(246) 评论(0) 推荐(0)
工具-使用org.openjdk.jol查看对象在内存中的布局
摘要:1 添加依赖 <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version> </dependency> 2 查看对象的内存布局 public class 阅读全文
posted @ 2022-03-08 15:53 金天黑日 阅读(449) 评论(0) 推荐(0)
线程基础知识09-JAVA的可见性和有序性问题
摘要:1 CPU中的三级缓存及可见性问题 1.1 简介 1.2 缓存行Cacheline 1.3 可见性问题-缓存一致性协议 2 JAVA中的有序性问题 2.1 指令重排简介 2.2 as-if-serial语义 2.2.1 数据依赖 2.2.2 控制依赖 2.3 指令重排示例 2.3.1 代码 2.3. 阅读全文
posted @ 2022-03-07 16:57 金天黑日 阅读(163) 评论(0) 推荐(0)
@Configuration
摘要:1.源码 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Configuration { @AliasFor(annotation = Com 阅读全文
posted @ 2022-03-06 16:33 金天黑日
线程基础知识-CountDownLatch
摘要:转:https://blog.csdn.net/hbtj_1216/article/details/109655995 1 概念1.1 简介 CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经 阅读全文
posted @ 2022-03-06 16:29 金天黑日 阅读(98) 评论(0) 推荐(0)
ThreadLocal
摘要:1 简介 ThreadLocal提供了线程内存储变量的能力。 2 ThreadLocal的应用场景 如下图,方法1调用方法2,方法2调用方法3,方法3调用方法4 如果我们想要在方法4中使用方法1中的一个变量sa,可以怎么做? 1)通过参数传递 在某些情况下可以,但是如果中间某个方法(如method2 阅读全文
posted @ 2022-03-04 20:30 金天黑日 阅读(99) 评论(0) 推荐(0)
JAVA引用类型
摘要:1.简介 在JDK1.2之后,Java对引用的概念做了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)四种,这四种引用的强度依次递减。 1)强引用(StrongRe 阅读全文
posted @ 2022-03-04 20:23 金天黑日 阅读(60) 评论(0) 推荐(0)
Spring02---IOC-Debug查看Bean的实例化过程
摘要:1 简介 springIOC它是对bean进行管理。 我们通常可以通过xml、properties、yml、注解等来配置bean的信息 spring读取这些配置信息,解析,生成BeanDefinition(用来存储Bean的定义信息) 根据beanDefinition来创建对象,设置属性....,最 阅读全文
posted @ 2022-03-03 10:19 金天黑日 阅读(998) 评论(0) 推荐(0)
Spring03-IOC-循环依赖的实现(Debug查看spring解决循环依赖的过程)
摘要:1 什么是循环依赖 如下,有类A和B,A中有一个类型为B的属性b,B中有一个类型为A的属性a,A和B相互依赖 public class A { private B b; public B getB() { return b; } public void setB(B b) { this.b = b; 阅读全文
posted @ 2022-03-03 10:18 金天黑日 阅读(182) 评论(0) 推荐(0)
Spring04-AOP(Debug查看执行流程)
摘要:1 AOP的几个核心技术 AOP-面向切面编程的实现的核心技术:jvm运行期间对字节码进行修改或者动态生成新的字节码文件(asm技术)。 2 AOP的几个核心概念 AOP在运行期间我们要对class文件做修改或者生成新的。AOP就定义了一套规范,包括了切面、切点、连接点、通知、织入等等这些内容。 ( 阅读全文
posted @ 2022-03-03 10:18 金天黑日 阅读(1261) 评论(0) 推荐(1)