自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Java多线程笔记

概念程序:一段静态的代码 用来完成特定的任务,用某种语言编写的指令集合进程:程序的一次执行过程 或者是正在运行的程序,有生命周期线程:进程细化为多个线程 是一个程序内部的一条执行路径线程作为调度和执行单位 每个线程拥有独立的运行栈 和程序计数器线程的6种状态NEW:初始状态,线程被创建,但是还没有被调用start()方法;RUNNABLE:运行状态,BLOCKED:阻塞状态;WAITING:等待状态,表示线程进入等待,进入该状态表示当前线程需要其他线程做出特定动作(通知或中断)

2020-09-28 10:43:58 134

原创 排序算法

尚硅谷JAVA数据结构交换排序冒泡排序基本思想:通过对待排序序列从前向后,依次比较相邻元素的值,若发现逆序则交换第一次优化:排序过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行交换,就说明序列有序public class BubbleSort { public static void main(String[] args) { int arr[] = {3,9,-1,10,-2}; //·过程 从小到大 int temp = 0; //·优化:定义一个标识变量.

2020-09-23 22:40:49 130

原创 Redis学习

NoSQL概述NoSQL数据库的分类KV键值对:Redis;文档型数据库(Bson格式):MongoDB:基于分布式文件存储的数据库列存储数据库:HBase;分布式文件系统图关系数据库分布式数据库中的CAP和BASE传统的ACID分别是什么A(Atomicity) 原子性C(Consistency)一致性I(Isolation)隔离性D(Durability)持久性CAPC(Consistency)强一致性A(Availability) 可用性P(Partitio

2020-09-21 17:18:15 126

原创 JVM学习--垃圾回收器

垃圾回收器分类评估GC性能指标不同垃圾回收器概述Serial回收器:串行回收

2020-08-25 20:14:12 228

原创 JVM学习--垃圾回收的相关概念

System.gc() 的理解public class SystemGCTest { public static void main(String[] args) { new SystemGCTest(); System.gc();//提醒jvm的垃圾回收器执行gc,但是不确定是否马上执行gc //与Runtime.getRuntime().gc();的作用一样。 System.runFinalization();//强制调用使用

2020-08-24 21:21:03 101

原创 JVM学习--垃圾回收算法

什么是垃圾为什么需要GCjava垃圾回收机制垃圾回收相关算法标记阶段引用计数算法引用计数算法,对每个对象保存一个整型的引用计数器属性,用于记录对象被引用的情况。对于一个对象A,只要又任何一个对象引用了A,则A的引用计数器+1,当引用失效时,引用计数器-1,只要A的引用计数器的值为0,即表示A没有被使用,可以被回收优点:实现简单,垃圾对象便于识别,判定效率高,回收没有延迟性,缺点:- 需要单独的字段存储计数器,这样的作法增加了存储空间的开销- 每个赋值都需要更新计数器,

2020-08-22 20:26:03 112

原创 JVM学习--StringTable

基本特性public void test1() { String s1 = "abc";//字面量定义的方式,"abc"存储在字符串常量池中 String s2 = "abc"; s1 = "hello"; System.out.println(s1 == s2);//判断地址:true --> false System.out.println(s1);// System.out.printl

2020-08-22 12:02:28 181

原创 JVM学习--执行引擎

概述java代码编译执行的过程机器码、指令、汇编语言解释器JIT编译器

2020-08-22 10:24:29 124

原创 JVM学习--对象实例话布局与访问定位

对象实例化创建对象的方式new(最常见的方式)变形1:Xxx的静态方法变形2:XxxBuilder/XxxFactory的静态方法Class的newInstance():反射的方式,只能调用空参构造器,权限必须是publicConstructor的newInstance(Xxx):反射的方式,可以调用空参,带参的构造器,权限没有要求使用clone(),不调用任何构造器,当前类需要实现Cloneable接口,实现clone();使用反序列化,从文件中,网络中,获取一个对象的二进制流第

2020-08-22 10:23:54 197

原创 JVM学习--方法区

栈,堆,方法区的交互方法区的理解HotSpot中方法区的演进设置方法区大小与OOM方法区的内部结构

2020-08-20 21:10:41 112

原创 JVM学习--堆

概述一个JVM实例对应一个堆内存,堆区在JVM启动时被创建,其空间大小也就确定,但是可以调节堆内存的大小堆可以处于物理上不连续的内存空间,但是在逻辑上它应该被是为连续 的所有线程共享堆,(几乎)所有的对象实例以及数组都应该在运行时分配在堆上方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集 的时候才会被移除堆是GC执行垃圾回收的重点区域堆的核心概述内存细分JDK7及以前堆内存逻辑上分为三部分:新生区+养老区+永久区、JDK8及之后堆内存逻辑上分为三部分:新生区+养老区+元空间、

2020-08-19 14:54:21 118

原创 JVM学习--本地方法栈

基本概念

2020-08-18 21:50:18 74

原创 JVM学习--虚拟机栈

概述优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更过的指令栈是运行时单位,堆是存储的单位每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个栈帧(基本单位),对应一个个Java方法的调用,是线程私有的生命周期和线程一致主管java程序的运行,它保存方法的局部变量(8种基本数据类型,对象的引用地址)、部分结果,并参与方法的调用和返回栈不存在GC问题,存在OOM栈中可能出现的异常StackOverflowpublic class StackErrorTe

2020-08-18 21:32:51 162

原创 JVM学习--运行时数据区概述、线程、PC寄存器

概述灰色部分为线程私有(一个线程对应一个):程序计数器、本地方法栈、虚拟机栈红色部分为线程共享(一个进程对应一个):堆、方法区线程程序计数器(PC寄存器)PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令它是一块很小的内存空间,可以忽略不记,也是运行速度最快的存储区在JVM规范中,每个线程都有自己的程序计数器,是线程私有的,生命周期与线程的生命周期一致任何时间一个线程都只有一个方法在执行,也就是当前方法。程序计数器,会存储当前线程正在执行的

2020-08-17 21:50:34 286

原创 JVM学习--JVM类加载器

类加载器概述类加载器子系统负责从文件系统或网络加载Class文件ClassLoader只负责class文件的加载,运行有Execution Engine决定加载的类信息存放于一块成为方法区的内存空间,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量类加载过程**...

2020-08-17 18:14:02 255

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除