[TOC] 一、一段代码引发的思考 首选,看下面这段代码会输出什么结果? 我们在主线程休眠1s后将子线程用到的stop开关设为了true,这个时候子线程是不是应该停止while循环,输出i的最终结果呢? 运行结果: 最终结果是程序会在后台一直运行.. 这说明了我们在主线程中修改的内容对子线程是不可见 ...
分类:
编程语言 时间:
2020-05-22 14:26:58
阅读次数:
60
Js的GC机制 在 七种基本类型中的引用类型 的变量其占据内存空间大且大小不固定,在堆内存中实际存储对象,在栈内存中存储对象的指针,对于对象的访问是按引用访问的。在栈区中执行的变量等是通过值访问,当其作用域销毁后变量也就随之销毁,而使用引用访问的堆区变量,在一个作用域消失后还可能在外层作用域或者其他 ...
分类:
Web程序 时间:
2020-05-20 12:41:10
阅读次数:
76
去分析多线程就要分析线程栈。 先了解一下java虚拟机的结构: Class file是类文件。写完程序后源码扩展名.java,源码是不能被运行的,需要做编译,编译的命令叫javac。编译后class文件,首先会调用一个系统,叫Classloader sub-system. jdk目录下有一个java ...
分类:
编程语言 时间:
2020-05-19 18:24:01
阅读次数:
58
网上看到的关于Executor,Cores和Memory的分配相关博客,先记录下来,再汇总。 <1>第一篇 Spark处理多少数据是否需要多少内存 Spark处理1Tb数据不需要1Tb的内存。 具体需要多少内存是根据executor的core数量和每次读取数据集的block大小决定的。以读取hdfs ...
分类:
其他好文 时间:
2020-05-19 16:47:03
阅读次数:
82
应用程序以及相关数据将决定Java堆空间占用需求。通过静态内存,可“预测”下面的内存需求: 确定将会有多少不同的应用程序部署到预先计划的一个单独的JVM进程上,例如有多少个ear文件、war文件、jar文件等。在一个JVM上部署的应用程序越多,对本机堆的需求就越多。 确定有多少个类需要在运行时加载: ...
分类:
编程语言 时间:
2020-05-19 14:35:20
阅读次数:
69
数组 概念 同一种类型数据的集合。其实数组就是一个容器。数组的本质就是堆内存中的一块连续的存储空间。 定义 动态初始化命名:数据类型 [ ] 数组名 = new 数据类型 [数组的长度] int[] array = new int[5]; 静态初始化命名:数据类型 [ ] 数组名 = new 数据类 ...
分类:
编程语言 时间:
2020-05-18 12:07:51
阅读次数:
66
一:JVM中内存 JVM中内存通常划分为两个部分,分别为堆内存与栈内存,栈内存主要用运行线程方法 存放本地暂时变量与线程中方法运行时候须要的引用对象地址。 JVM全部的对象信息都 存放在堆内存中。相比栈内存,堆内存能够所大的多,所以JVM一直通过对堆内存划分 不同的功能区块实现对堆内存中对象管理。 ...
分类:
其他好文 时间:
2020-05-17 20:36:45
阅读次数:
133
并行和并发 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行。而垃圾收集程序运行在另一个CPU上。 新生代收集器 Serial收集器 Seri ...
分类:
其他好文 时间:
2020-05-16 15:12:56
阅读次数:
71
数组(容器) 数组是一组数据类型相同的数据的组合,将这些数据统一的管理起来 数组本身是一个引用数据类型,数组内存储的类型可以是基本类型,也可以是引用类型 数组的特点 数组是一个引用数据类型 数组是在堆内存中的一串连续的地址存在 数组在初始化时必须指定长度 堆内存的数组空间长度一旦确定,不能再发生改变 ...
分类:
编程语言 时间:
2020-05-15 18:11:40
阅读次数:
73