先看一段代码:

static class User{}public static void test(){final User user = new User();Thread thread = new Thread() {@Overridepublic void run() {try {System.out.println("Thread start execute");Thread.sleep(Long.MAX_VALUE);} catch (InterruptedException e) {e.printStackTrace();}m1(user);}};thread.start();return;}public static void m1(User user){//略....}public static void main(String[] args) {test();System.out.println("main end ...");}执行结果:
main end ...
Thread start execute

有同学会问 test方法执行完并返回了,方法中开启的线程还在sleep,并没有执行到m1(user);此时恰好执行垃圾回收,user指向的对象会作为垃圾对象被回收么?

执行过程见下图:

所以答案就是不会

本文是《从 0 开始带你成为JVM实战高手》内容总结,版权问题,特此声明。想学习老师专栏的同学可以扫描二维码:

购买成功后找我返现10元

JVM实战总结:一个多线程中对象引用的问题相关推荐

  1. 015、JVM实战总结:大厂面试题:什么情况下JVM内存中的一个对象会被垃圾回收?

    1.什么时候会触发垃圾回收? 新生代放不下了 2.被哪些变量引用的对象不能回收? 对象被方法的局部变量.类的静态变量给引用了,就不会回收他们. 可达性分析算法来判定哪些对象是可以被回收的.算法的思想: ...

  2. JAVA程序中怎么看线程的个数_一个文件中有10000个数,用Java实现一个多线程程序将这...

    18 推荐 运行结果: 编辑于 2015-07-16 17:20:57 回复(11) 12 自己重写了一下推荐答案,加了些注释方便理解 package threadpackage; import ja ...

  3. R语言dplyr包使用anti_join()函数返回在一个dataframe中存在而在另一个dataframe中没有匹配值的所有行实战

    R语言dplyr包使用anti_join()函数返回在一个dataframe中存在而在另一个dataframe中没有匹配值的所有行实战 目录

  4. python 多线程 类_Python中如何自定义一个多线程类呢?

    摘要: 下文讲述Python中自定义一个多线程类的方法分享,如下所示: 实现思路: 1.定义一个类继承threading.Thread 2.在自定义类中构造函数重写run方法 例: Python3中自 ...

  5. jvm性能调优实战 - 32一个10万并发的BI系统,如何定位和解决频繁Young GC问题?

    文章目录 Pre 模拟代码的JVM参数设置 示例Code 如何在windows上执行命令? 通过jstat观察程序的运行状态 Pre jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Y ...

  6. 多进程/多线程同时向一个文件中写入日志如何避免冲突?

    写入文件时都会调用函数 write,由于所有的系统调用都是原子的,所以该函数可以保证进程或者线程写入数据的过程中不会被其他进程或者线程打扰,即:数据中间插入别的进程的数据. 另外一个问题,由于 wri ...

  7. php7开发的项目怎么样,如何在PHP7项目中搭建一个多线程

    如何在PHP7项目中搭建一个多线程 发布时间:2021-03-05 15:31:22 来源:亿速云 阅读:93 作者:Leah 这期内容当中小编将会给大家带来有关如何在PHP7项目中搭建一个多线程,文 ...

  8. android设计一个多线程和画图的程序小球,Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例...

    本文实例讲述了Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能的方法.分享给大家供大家参考,具体如下: 1.布局界面 xmlns:tools="http://sc ...

  9. python实战:合并多个不同样式的excel的sheet到一个文件中

    python实战: 使用python实现合并多个excel到一个文件,一个sheet和多个sheet中 合并多个不同样式的excel的sheet到一个文件中 主要使用的库为openpyxl 1.安装o ...

最新文章

  1. 关于新技术的引入原则 ——从零开始学架构
  2. Google Capture The Flag 2018 (Quals) - Beginner's Quest - Reverse - Firmware
  3. 基于单片机的c语言倒计时程序,30秒倒计时c语言51单片机实现.doc
  4. POJ1942-Paths on a Grid
  5. 《Python快速入门》6大数据类型详解
  6. MaxCompute Spark 资源使用优化祥解
  7. 服务启动不了,显示 config 异常的问题排查
  8. 面向小姐姐的编程——JAVA面向对象之继承(二)
  9. Android开发之NDK开发之生成so库基础入门
  10. java 裁剪 pdf_java拆分pdf文档
  11. quartus 复制IP核
  12. 高效办公!Python 批量生成PDF文档
  13. 【MATLAB】极坐标绘图 ( Polar Chart 极坐标图 | MATLAB 绘图问题 1 )
  14. 常见的关系型数据库与非关系型数据库对比详解。
  15. u盘图片损坏怎么恢复
  16. 快速删除包含指定数字的数据
  17. 别轻易自责,专注力和自制力是稀缺资源
  18. Spring(2)自动装配
  19. BUUCTF-Web:[GXYCTF2019]Ping Ping Ping
  20. 三维激光点云到二维图像的投影

热门文章

  1. python列表是顺序表还是链表_Python数据结构与算法(链表使用详解)
  2. span标签的取值与赋值
  3. 一个简单51c语言程序,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
  4. docker php安装gd扩展_Linux安装redis及安装php-redis扩展
  5. oracle中pga指什么,oracle中pga内存分配原则
  6. quartz锁表misfire的处理策略设置
  7. android滚动条布局平分,让你的布局滚动起来—ScrollView
  8. Oracle用户密码使用特殊符号,例如(AND)、$(Dollar)、#(Pound)、*(Star)等
  9. supermap iserver端口介绍
  10. python基于SMTP发送邮件(qq邮箱)