随笔分类 - 编程语言
摘要:一、类加载过程 一个非数组类的加载阶段(加载阶段通过一个类的全限定名来获取描述此类的二进制字节流的动作)是可控性最强的阶段,这一步我们可以去完成还可以自定义类加载器去控制字节流的获取方式(重写一个类加载器的 loadClass() 方法),这个动作放到Java虚拟机外部去实现。数组类型不通过类加载器
阅读全文
摘要:一、类的生命周期 类的生命周期指的是:类从加载到虚拟机内存中开始,到卸载出内存为止。可以同一张图概括: 注意:加载、验证、准备、初始化和卸载必须按顺序开始,而解析阶段不一定,在某种情况下可以在初始化阶段之后再开始。 二、类加载过程 Class文件需要加载到虚拟机之后才能运行和使用,系统加载Class
阅读全文
摘要:代码1-1 新生代 Minor GC 博客1 博客2 一、新生代 Minor GC public class One { private static final int _1MB = 1024 * 1024; /** * VM参数:-XX:+UseSerialGC -verbose:gc -Xms
阅读全文
摘要:第三章 垃圾收集器与内存分配策略 3.1 概述 垃圾收集(Garbage Collection,GC),需要完成三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 3.1.1 哪些内存需要回收? 程序计数器、Java虚拟机栈、本地方法栈这三个区域随线程而生,随线程而灭(Java虚拟机栈中的栈
阅读全文
摘要:package JVM; import java.util.ArrayList; import java.util.List; public class test1 { static class OOMObject{} public static void main(String[] args) {
阅读全文
摘要:线程组中的一个线程出现异常,该线程停止运行,默认情况下其他线程仍然会继续执行。如果要实现线程组内的一个线程出现异常,其他线程也全部停止该怎么处理? 那么我们需要重新定义ThreadGroup,然后重写uncaughtException方法,处理异常。 class MyThreadGroup exte
阅读全文
摘要:在Java的多线程技术中,我们可以使用UncaughtExceptionHandler类对多线程中的异常进行“捕捉”。 setUncaughtExceptionHandler()的作用是对指定的线程对象设置默认的异常处理器。在Thread类中还可以使用setDefaultUncaughtExcept
阅读全文
摘要:1、线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中。 NEW状态是线程实例化后还从未执行start()方法时的状态; RUNNABLE状态是线程进入运行的状态; TERMINATED是线程被销毁时的状态; TIMED_WAITING状态代表线程执行了Thread.sleep
阅读全文
摘要:1、以下内容转自知乎某大神: 对象在class文件加载完毕,以及为各成员在方法区开辟好内存空间之后,就开始所谓的“初始化”。 步骤: 基类静态代码块、基类静态成员字段(并列优先级,按照代码中出现的先后顺序执行,并且只有在第一次加载类时执行) 派生类静态代码块、派生类静态成员字段(并列优先级,按照代码
阅读全文
摘要:内部类:内部类就是将一个类定义在另一个类里面或者一个方法里面。 内部类分为:成员内部类、局部内部类、匿名内部类和静态内部类。 1、成员内部类是最普通的内部类,它的定义在另一个类的内部。 class Circle { double radius = 0; public Circle(double ra
阅读全文
摘要:$Java$—单例设计模式(懒汉与饿汉)、 单例设计模式:简单地讲,就是保证一个类在内存中只能有一个对象。 1、饿汉模式——立即加载 饿汉模式就是在使用类的时候已经将对象创建完毕,从中文的语境上看,有“着急”的含义,所以称为饿汉模式。 我们看一下饿汉模式是如何保证单例设计的,思路如下: 不能让其他程
阅读全文
摘要:4.2.1 类ReentrantReadWriterLock的使用:读读共享 package ReentrantLock; import java.util.Calendar; import java.util.concurrent.TimeUnit; import java.util.concur
阅读全文
摘要:以下内容摘自Java程序设计(基础、编程抽象和算法设计) 在Java集合框架中,Map是一个接口,必须用实现了Map接口的具体类来创建对象。集合库中包含了两种这样的类:HashMap和TreeMap。我们今天只介绍HashMap。 方法: 1、创建对象: Map<Integer, Integer>
阅读全文
摘要:4.1 使用ReentrantLock类 在JKD1.5中,新增加了ReentrantLock类也能达到和synchronized关键字同样的效果,并且在扩展功能上更加强大,如嗅探锁定,多路分支通知等功能,在使用上也比synchronized更加灵活。 package ReentrantLock;
阅读全文
摘要:ArrayList类,是Java集合类之一,它是了一种与数组类似的工具。但是他比数组更加灵活,因为它的大小是不固定的。 1、指定ArrayList的元素类型 在Java中,集合类通过在其名字后面跟着由尖括号括起来的元素类名的方式来指定其所包含对象的类型,例如ArrayList<Integer>类(L
阅读全文
摘要:wait / notify package SynchronizedCass; /* * synchronized代码块也能将线程工作内存中的私有变量与公共内存的变量同步 */ public class t6 { public static void main(String[] args) { tr
阅读全文
摘要:在讲解volatile关键字的时候,我们先看一个简单的例子: package SynchronizedCass; public class t4 { public static void main(String[] args) { try { RunThread thread = new RunTh
阅读全文
摘要:1、首先查看显卡的情况 命令: nvidia-smi 功能:显示服务器上的GPU的情况 命令: nvidia-smi -l 功能:定时更新显示服务器上的GPU的情况 命令:watch -n 3 nvidia-smi 功能:设定刷新时间(秒)显示GPU使用情况 Fan:风扇速度 Temp:显卡温度 P
阅读全文
摘要:1、Arrays.sort(数组名) 对数组中的所有元素进行排序,并且是按照从小到大的顺序进行的。 Integer[] test = new Integer[n]; Arrays.sort(test); 2、Arrays.sort(数组名,起始下标,终止下标) 对数组中的部分元素进行排序,即从起始下
阅读全文
摘要:之前的技术栈是C/C++,后接触Java的输入输出,怕日后生疏,今天在这里记录一下下。 一、输入 Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(new BufferedInputStream(System.in)); 在输
阅读全文

浙公网安备 33010602011771号