摘要: ArrayList是日常开发中经常使用到的集合,其底层采用数组实现,因此元素按序存放。其优点是可以使用下标来访问元素,时间复杂度是O(1)。其缺点是删除和增加操作需要使用System.arraycopy()来移动部分受影响的元素,时间复杂度为O(N)。同时ArrayList由于是采用数组来存放数据, 阅读全文
posted @ 2021-07-12 10:43 就行222 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 要自定义自己的类加载器来加载类,需要先对类加载器和类加载机制有一些基本的了解。 1、类加载器 类加载器ClassLoader的作用有两个: ①是用于将class文件加载到JVM。 ②是用于判断JVM运行时两个类是否相等。 2、类加载的时机 类的加载可分为隐式加载和显示加载。 隐式加载 隐式加载包括以 阅读全文
posted @ 2021-03-27 13:38 就行222 阅读(1399) 评论(0) 推荐(0) 编辑
摘要: 1、动态编译 动态编译,简单来说就是在Java程序运行时编译源代码。 从JDK1.6开始,引入了Java代码重写过的编译器接口,使得我们可以在运行时编译Java源代码,然后再通过类加载器将编译好的类加载进JVM,这种在运行时编译代码的操作就叫做动态编译。 静态编译:编译时就把所有用到的Java代码全 阅读全文
posted @ 2021-03-26 13:49 就行222 阅读(1207) 评论(1) 推荐(2) 编辑
摘要: 1、线程安全 多个线程对同一个共享变量进行读写操作时可能产生不可预见的结果,这就是线程安全问题。 线程安全的核心点就是共享变量,只有在共享变量的情况下才会有线程安全问题。这里说的共享变量,是指多个线程都能访问的变量,一般包括成员变量和静态变量,方法内定义的局部变量不属于共享变量的范围。 线程安全问题 阅读全文
posted @ 2021-02-25 18:54 就行222 阅读(863) 评论(3) 推荐(1) 编辑
摘要: 线程间的通信 JVM在运行时会将自己管理的内存区域,划分为不同的数据区,称为运行时数据区。每个线程都有自己私有的内存空间,如下图示: Java线程按照自己虚拟机栈中的方法代码一步一步的执行下去,在这一过程中不可避免的会使用到线程共享的内存区域堆或方法区。为了防止多个线程在同一时刻访问同一个内存地址, 阅读全文
posted @ 2021-01-21 00:37 就行222 阅读(663) 评论(0) 推荐(1) 编辑
摘要: 1、线程的创建与运行 (1)、继承或直接使用Thread类 继承Thread类创建线程: /** * 主类 */ public class ThreadTest { public static void main(String[] args) { //创建线程对象 My_Thread my_thre 阅读全文
posted @ 2020-12-25 19:37 就行222 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 1、进程与线程 1.1、进程 进程可以看作是程序的执行过程。一个程序的运行需要CPU时间、内存空间、文件以及I/O等资源。操作系统就是以进程为单位来分配这些资源的,所以说进程是分配资源的基本单位。 (1)、进程是动态的,程序是静态的 程序是静态的,它本身作为一种软件资源可以长期保存在磁盘(常说的硬盘 阅读全文
posted @ 2020-12-07 19:15 就行222 阅读(3480) 评论(0) 推荐(5) 编辑
摘要: 写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记。其观看地址如下:尚硅谷2020最新版宋红康JVM教程 1、垃圾 1.1、什么是垃圾 垃圾(Garbage)在Java语言中是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。 如果不及时对内存中的垃圾进行清理,那么这些垃 阅读全文
posted @ 2020-11-17 16:35 就行222 阅读(770) 评论(1) 推荐(4) 编辑
摘要: 写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记。其观看地址如下:尚硅谷2020最新版宋红康JVM教程 执行引擎是Java虚拟机中的核心组成部分。 执行引擎的作用就是解析虚拟机字节码指令,即执行一条条的代码流程,并得到执行结果。 我们可以先来看一下执行引擎在Java虚拟机中的位置, 可以 阅读全文
posted @ 2020-10-29 22:45 就行222 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记。其观看地址如下:尚硅谷2020最新版宋红康JVM教程 一、对象的实例化 在平常写代码的过程中,我们用class关键字定义的类只是一个类的模板,并没有产生类的对象,也没有分配内存。想要分配内存产生类对象,就要使用到一些创建对象的方式,比如常 阅读全文
posted @ 2020-10-28 16:02 就行222 阅读(451) 评论(0) 推荐(0) 编辑