源码分析
文章平均质量分 83
Albert_GW
追寻轮子制造之光
展开
-
并发编程-Java线程池
并发编程-Java线程池一、简述线程频繁的创建和销毁造成资源的浪费,如果是在并发情况下,这种频繁的操作会对性能影响非常大。为了避免线程的频繁创建与销毁,可以创建一定数量的线程集合,在需要使用时,从集合里获取线程;使用完后再将线程放回集合中,实现线程的重复利用。而这个集合就是要说的线程池。线程池可以提高响应速度(减少创建线程的时间)、降低资源消耗、便于进行线程管理二、常见的线程池newCachedThreadPoolnewFixedThreadPoolnewScheduledThreadPo原创 2022-03-30 19:00:00 · 534 阅读 · 0 评论 -
并发编程-Java线程
并发编程-Java线程一、概念并发:指一个处理器在同一个时间间隔内处理多个任务,是逻辑上的同时发生。并行:指多个处理器或是多核的处理器在同一时间间隔处理多个不同的任务,是物理上的同时发生。线程:线程是程序执行流的最小单元,是系统独立调度与分配CPU(独立运行)的基本单位。进程:进程是资源分配的基本单位,一个进程可以包含一个或多个线程。二、线程的状态计算机的线程可分为5个状态:NEW(新建): 新创建的线程对象,该线程状态会保持到调用start()方法前。RUNN原创 2022-03-30 11:54:21 · 401 阅读 · 0 评论 -
Java泛型
Java泛型一、概述泛型程序设计是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。在程序编码中一些包含参数的类。其参数可以代表类或对象等等。不管是类还是参数,泛型的参数在真正使用泛型时都必须作出指明。Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type p原创 2022-03-22 14:29:15 · 166 阅读 · 0 评论 -
SpringBoot 定时任务 @Scheduled
SpringBoot 定时任务 @Scheduled1、概述定时任务在实际应用中使用的比较多的,就像生活中的闹钟;而在开发实现上每个框架或者系统也都会有相应的支持。而@Scheduled注解就是Spring框架中的支持方案。如果仅仅是使用Spring的话,就需要在配置文件中配置相应的配置;但是SpringBoot就可见简化很多配置程序。2、实例先来个简单的案例,先使用IDEA或者其他方式秒创个SpringBoot的项目。1、先启用定时任务组件@EnableScheduling@SpringBo原创 2021-06-03 15:53:25 · 410 阅读 · 2 评论 -
剖析JDK源码-Random -(12)
剖析JDK源码-Random -(12)一、简述该类的实例用于生成伪随机数。该类使用原值为48位的种子,其使用线性同余公式进行修改。如果使用相同的种子创建两个Random,并且对每个实例进行相同的方法调用该序列,则它们将生成并返回相同的数字序列。通过调用私有方法next(int bits)方法可以提供多达32个伪随机生成位。java.util.Random是线程安全的。 但是,跨线程的同时使用java.util.Random实例可能会遇到争用,从而导致性能下降。但java.util.Random并不是加原创 2021-01-26 16:27:34 · 191 阅读 · 1 评论 -
剖析JDK源码-ThreadLocal-(11)
剖析JDK源码-ThreadLocal-(11)一、简述即便是第一次见,可以大概的猜一下这是一个什么类;ThreadLocal直译“线程+局部的”,显然是在描述或者表示的是线程局部性的东西。那究竟是什么东东呢?官方的中文术语是线程的局部变量。我们都知道全局变量和局部变量的区别,定义在类中方法体外的是全局的变量,该类中各个方法都能访问使用,而局部变量定义在方法中,只能在该方法内访问使用。那为什么要把一个局部的东西封装成一个类呢?为了解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很原创 2021-01-22 21:20:14 · 92 阅读 · 0 评论 -
剖析JDK源码-Callable-(10)
剖析JDK源码-Callable-(10)一、简述二、接口类的声明@FunctionalInterfacepublic interface Callable<V> {}原创 2021-01-17 18:19:24 · 110 阅读 · 0 评论 -
剖析JDK源码-Runnable-(9)
剖析JDK源码-Runnable-(9)一、简述Runnable直译就是“可运行的”,是实现多线程的关键,从上一篇的Thread就可以看出Thread是Runnable的一个实现类。在潜意识里,记得创建线程有三种方式:继承Thread、实现Runnable、实现Callable;嗯,既然Thread已经实现了Runnable,那通过继承Thread就可以创建进程,为什么还要抽离一个接口呢?二、接口类的声明和注解标记@FunctionalInterfacepublic interface Runn原创 2020-11-02 17:20:03 · 129 阅读 · 1 评论 -
剖析JDK源码-Thread-(8)
剖析JDK源码-Thread-(8)原创 2020-10-28 16:43:56 · 195 阅读 · 0 评论 -
剖析JDK源码-AbstractStringBuilder-(7)
剖析JDK源码-AbstractStringBuilder-(7)一、简述一个神秘的抽象类(在jdk API文档找不到的类)。通过工具查看,是StringBuffer和StringBuilder的直接父类;在jdk1.5时编写的,而StringBuffer是在jdk1.0时编写的,乍看像是先有儿后有父的疑惑;其实不然,AbstractStringBuilder是在开发StringBuilder时,将两者的共性抽离出来的。AbstractStringBuilder本身也是一个字符容器(字符串生成原创 2020-09-17 11:01:23 · 156 阅读 · 0 评论 -
剖析JDK源码-基本数据类型的装箱-(6)
剖析JDK源码-基本数据类型的装箱和拆箱 -(6)java基本数据类型有:byte、short、int、long、float、double、boolean、char。一、简述变量的声明就是申请内存来存储值。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。二、源码...原创 2020-09-14 22:16:46 · 114 阅读 · 0 评论 -
剖析JDK源码-StringBuilder-(5)
剖析JDK源码-StringBuilder-(5)一、简述对比StringBuffer源码:点击链接跳转 会发现StringBuilder 就是一个进化的StringBuffer。StringBuilder 类在 Java 5 中被提出,在解决了能随便修改字符串的值问题后,开发者又发现处理大量字符时,速度不太理想。所以就有了StringBuilder 这样的兄弟。StringBuilder 和StringBuffer一样能够被多次的修改,并且不产生新的未使用对象。但和StringBuffer不同原创 2020-08-30 23:03:34 · 129 阅读 · 0 评论 -
剖析JDK源码-StringBuffer-(4)
剖析JDK源码-StringBuffer-(4)一、简述在JDK1.0就被提出来,以便对字符串进行修改的操作,(单靠String只能不断的增加新的对象来保存修改后的字符串)。StringBuffer的另一个名字叫字符串缓冲区,也可以说它是一个容器。可以在不产生新的未使用对象情况下对字符串的值进行修改。可以安全地被多个线程使用。 这些方法在必要时进行同步,以便任何特定实例上的所有操作都按照与所涉及的各个线程所执行的方法调用顺序一致的顺序发生。二、源码public final class St原创 2020-08-30 20:47:21 · 319 阅读 · 0 评论 -
剖析JDK源码-String-(3)
剖析JDK源码-String-(3)一、简介原创 2020-08-09 12:37:26 · 251 阅读 · 0 评论 -
剖析JDK源码-Class-(2)
剖析JDK源码-Class-(2)一、简述隶属 java.lang包。在使用时无需手动导入,系统会在程序编译期间自动导入。在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。Class类的类表示正在运行的Java应用程序中的类和接口。 枚举是一种类,一个注释是一...原创 2019-12-16 15:53:56 · 281 阅读 · 0 评论 -
剖析JDK源码-Object-(0)
剖析JDK源码-Object-(0)一、简述隶属 java.lang包。此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。类 Object 是类层次结构的根类。当一个类没有直接继承某个类时,默认继承Object类,也就是说任何类都直接或间接继承此类。Object 类中能访问的方法在所有类中都可以调用。可以参考Class类。二、Object 的方法object源码:...原创 2019-11-23 01:01:14 · 244 阅读 · 0 评论 -
剖析JDK源码-Collection-(1)
剖析JDK源码-Collection-(0)一、简述Collection是最基本的集合接口类,。Java SDK不提供直接继承自Collection的类,但是提供继承自Collection的“子接口”的类。二、Collection的父类和子类...原创 2019-12-16 11:33:27 · 111 阅读 · 0 评论