java
hfutflx
这个作者很懒,什么都没留下…
展开
-
对象引用
上篇jvm堆的内存篇可达性分析算法中提到了引用的对象,这里介绍一下java中的各种引用类型以及对应的区别强引用:一般的Object obj = new Object() ,就属于强引用。软引用SoftReference:一些有用但非必需,用软引用关联的对象,特点是在系统将要发生oom之前,这些对象就会被回收,如下代码:User user = new User(1,"张三");SoftReference<User> soft = newSoftReference<U.原创 2020-08-08 20:44:04 · 171 阅读 · 0 评论 -
jvm内存详解:堆
首先记住一句话:几乎所有的对象都在堆上分配。原创 2020-05-08 22:01:12 · 179 阅读 · 0 评论 -
jvm内存详解:栈
首先,jvm的整体结构:图中3个步骤对应(了解即可):1、类装载子系统将编译后的class文件加载到运行时数据区(也就是大家常说的堆、栈这些区域)2、把对应的相关代码按照Java的指令进行各个区域的内存分配3、进行相关代码的运行重点关注运行时数据区,这个是我们jvm调优的依据(为了方便理解,以一个例子来分析):例:public class a{ public ...原创 2020-05-04 23:06:01 · 424 阅读 · 0 评论 -
java多线程创建3种方式
1、通过继承Thread类创建,重写该类的run()方法。Thread thread1 = new MyThread();class MyThread implements Thread(){@Overridepublic vod run(){//你的业务...}}2、通过实现Runnable接口,重写该接口的run()方法。并将Runnable的实现类对象传入...原创 2019-01-07 22:51:00 · 97 阅读 · 0 评论 -
java多线程interrupt()方法
线程a与线程b,在业务中,常常因为线程之前的业务关系,需要互相影响,甚至是a去中断b,Thread.interrupt()提供了这样一个操作。例子:package com.ThreadTest;public class ThreadInterruptedTest { public static void main(String[] args){ Syste...原创 2019-01-08 21:33:17 · 3408 阅读 · 0 评论