• JVM系列(二):JVM的类加载子系统

    作者: 陆金龙       发表时间: 2022-11-20 05:39
    关键词:类加载器  ClassLoader  
        类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。 1.类加载过程   从大的方面包含三个阶段:加载、连接(验证、准备、解析)、初始化。    1.1 类的加载阶段 通过一个类的全限定名来获取定义此类的二进制字节流。可以从ZIP包中读取(JAR、WAR),从网络中读取(Applet),运行时计算生成(动态代理技术),由其他文件生成(由JSP文件生成Class类),从数据库中读取等等。 将这个字节...
  • JVM系列(一):JVM与Java体系结构

    作者: 陆金龙       发表时间: 2022-11-19 20:11
    本文基于尚硅谷-宋红康的《JVM从入门到精通》培训视频整理。 主要内容: Java与JVM简介 Java及JVM的发展历程 虚拟机与Java虚拟机 JVM整体结构 Java代码执行流程 JVM的架构模型 JVM的生命周期     典型的虚拟机架构,分为基于栈的指令集架构和基于寄存器的指令集架构两种方式。JVM是基于栈的架构模型。     JVM、Java、开发框架、应用程序的关系如下:      ...
  • JVM系列笔记目录

    作者: 陆金龙       发表时间: 2022-11-19 18:36
        JVM主要的几大部分内容包括:1.内存与垃圾回收  2.字节码与类加载  3.性能监控与调优。 1.JVM与Java体系结构 2.JVM的类加载子系统 3.JVM的运行时数据区及线程 4.程序计数器 5.Java虚拟机栈 6.本地方法栈与本地方法接口 7.堆 8.方法区 9.直接内存 10.执行引擎 11.垃圾回收原理 12.垃圾回收器
  • Java笔记5:多线程

    作者: 陆金龙       发表时间: 2022-09-23 22:41
    5 多线程   5.1 使用Runnable实例创建线程 // 通过实现Runnable接口来创建线程类 public class RunnableTask implements Runnable { private int i ; // run方法同样是线程执行体 public void run() { for ( ; i < 100 ; i++ ) { // 当线程类实现Runnable接口时, // 如果想获取当前线程,只能用Thread.currentThread()方法。 Sys...
  • Java笔记6:反射

    作者: 陆金龙       发表时间: 2022-09-23 22:17
    6.3.1 反射获取类的信息 @Repeatable(Annos.class) @interface Anno {} @Retention(value=RetentionPolicy.RUNTIME) @interface Annos { Anno[] value(); } // 使用4个注解修饰该类 @SuppressWarnings(value="unchecked") @Deprecated // 使用重复注解修饰该类 @Anno @Anno public class ClassTest { // 为该类定义一个私有的构造器 private...
  • Java笔记6:类加载

    作者: 陆金龙       发表时间: 2022-09-23 22:05
    6.1 类的加载和初始化 class Tester { static { System.out.println("Tester类的静态初始化块..."); } } public class ClassLoaderTest{ public static void main(String[] args) throws ClassNotFoundException{ ClassLoader cl = ClassLoader.getSystemClassLoader(); // 下面语句仅仅是加载Tester类 cl.loadCla...
  • Java笔记4:泛型

    作者: 陆金龙       发表时间: 2022-09-23 21:22
    本文根据 李刚《疯狂Java讲义》第9章源码整理。 第9章 泛型 9.1.3 Java7 泛型的菱形语法 // Java自动推断出ArrayList的<>里是String List<String> books = new ArrayList<>(); 9.3.2 设定类型通配符的上限 List<? extends Shape> shapes // 同时在画布上绘制多个形状,使用被限制的泛型通配符 public void drawAll(List<? extends Shape&...
  • Spring框架的AOP

    作者: 陆金龙       发表时间: 2022-04-06 19:48
    关键词:AspectJ  动态代理  InvocationHandler  
    AOP就是实现横切的工具。有静态和动态两种不同的AOP。Spring AOP实现了其他完整的AOP实现的部分功能。 1.AOP相关概念 连接点(JointPoint):用来定义在程序的哪里通过AOP加入新的逻辑。典型的联结点有:调用一个方法、类初始化、对象初始化等。 通知(Advice):在某特定的连接点处运行的代码称为通知。有在连接点之前执行的前置通知、在连接点之后执行的后置通知等。 切入点(PointCut):切入点是一组连接点,定义某一个通知该何时执行。例如一个典型的连接点是方法调用,一个典型的切入点是对某一个类所有方法调用的集合。 织入(Weav...