JVM
临地
天天向上
展开
-
线程池、参数和常见线程池
本文将讲解线程池参数、参数之间的关系以及线程池以一个怎么样的策略执行新增到线程池的线程,最后会举例常见的线程池是怎么样应用这些参数和流程的。文章较长,可以根据目录选择想看的知识,若有错误请指出。 1.线程池概述 线程池,顾名思义就是一个装线程的池子,池子里的线程可以重复理用,降低产生和销毁线程的开销。举个例子,没有线程池使用线程的时候,就像开水龙头洗手,每次洗手都需要开水龙头,洗完手水就会流进下水道。而线程池就像在水盆洗手,每次洗手只需要重复理用水盆的水就好了(手太脏的当我没说)。 2.线程池参数原创 2020-06-12 18:24:00 · 254 阅读 · 0 评论 -
JVM结构
Java虚拟机结构1:Class文件格式编译后被Java虚拟机所职行的代码使用了一种平台中立(与平台无关的)的二进制格式表示,经常(但不是绝对)以文件格式存储,这种格式就是Class文件格式;2:数据类型可用于变量赋值,参数传递,方法返回和运算操作;原始类型(primitive type): 存在原始值与之对应;引用类型(reference type: 存在引用值对应;编译器应该在编译期间尽...原创 2018-06-24 21:46:18 · 80 阅读 · 0 评论 -
Java方法初始化过程(不完整)
初始化过程: 1. 初始化父类中的静态成员变量和静态代码块 ; 2. 初始化子类中的静态成员变量和静态代码块 ; 3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;...原创 2018-06-30 22:12:37 · 269 阅读 · 0 评论 -
Java垃圾回收方式
两个最基本的java回收算法:复制算法和标记清理算法复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法标记清理:一块区域,标记可达对象(可达性分析),然后回收不可达对象,会出现碎片,那么引出标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象两个概念:新生代和年老代新生代:初始对象,生命周期短的永久代:长时间存在的对象整个java的垃圾回收是新生代和年老...转载 2018-07-02 00:30:00 · 177 阅读 · 0 评论 -
JVM结构(2)运行时数据区
目录:1.pc寄存器2.Java虚拟机栈3.Java堆4.方法区5.运行时常量池6.本地方法栈1.pc寄存器Java虚拟机支持多线程,每一条线程都有自己的pc寄存器。一个Java虚拟机线程在同一时刻只会执行一个方法,成为线程的当前方法。2.Java虚拟机栈每一条Java虚拟机线程都有私有的Java虚拟机栈,这个栈与线程同时创建;用于存储局部变量以及过程结果,同时在方法调用与返回中起作用(引用存储)...原创 2018-06-27 00:51:26 · 153 阅读 · 0 评论 -
String , StringBuffer , StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字...转载 2018-06-29 00:10:24 · 83 阅读 · 0 评论 -
二进制中 1 的个数 - 牛客剑指offer 10
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。public class Solution { public int NumberOf1(int n) { int sum=0; while(n!=0){ sum++; n=n&(n-1); } return...原创 2018-07-06 23:13:23 · 127 阅读 · 0 评论