自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初识 GC 回收

文章目录GC [垃圾回收]作用区域:堆、方法区【特殊堆】年轻代的GC一般用复制算法 。GC一般有两种: 轻GC (又称:普通GC),和重GC (又称:全局GC)注:轻GC一般发生在 新生代和幸存区,重GC一般发生在老年代GC算法的评判标准GC的算法:可达性引用计数法注:这个引用计数法很少被使用。标记-清除法标记-压缩法复制算法复制算法最佳使用场景:对象存活度比较低得时候。新生区!保守式GC与准确式GC总结:维度分析分代收集算法分代收集算法GC [垃圾回收]作用区域:堆、方法区【特殊堆】堆里面一般分区:

2022-04-24 15:52:58 1870

原创 JVM常用参数

JVM常用参数当堆须要扩展的时内存不够会报 OutOfMemeryError: Heap(堆内存溢出) ,这时可能设置堆大小参数-Xms=1M设置堆的最小大小多线程。-Xmx=8M设置堆的最大大小优化。-Xmn=3M设置年轻代的大小,若是设置太大会致使老年代过小,因此官方推荐为整个堆的3/8大小。-XX:HeapDumpPath=D:\Java\dump设置堆转储文件dump的地址。-XX:+HeapDumpOnOutOfMemoryError当发生堆

2022-04-24 15:46:47 183

原创 初识 JVM 堆

堆 heap一个JVM只有一个堆内存,堆内存的大小是可以调节的。类加载器读取了类文件后,一般会把什么东西放到堆中?类、方法、常量、变量,保存我们引用类型的真实对象堆内存中还要细分未三个区域:新生区(伊甸园区【eden space】) young/new养老去 old永久区 perm新生区还可以细分为三个区伊甸园区幸存0区幸存1区一个对象 经历了GC后没有被回收 将进入幸存区。幸存区其中一个满了会和另一个幸存区互换位置 也就是 from 和to达到一定次数GC [轻

2022-04-24 15:45:35 351

原创 双亲委派机制

双亲委派机制加载器等级1. APP 应用程序加载器2. EXT 扩展类加载器3. BOOT (最终执行)【根加载器 或者叫启动类加载器】注:APP–> EXT --> BOOT (最终执行)类加载步骤步骤一:类加载器收到类加载的请求。步骤二:将这个请求委托给父类加载器去完成。一直向上委托,直到启动类加载器(根 加载器)。步骤三:启动加载器检查是否能够加载当前这个类 。能加载就结束,使用当前的加载器。否则,抛出异常,通知子加载器进行加载。步骤四:重复步骤三。注:如果最终到 应

2022-04-24 15:44:21 120

原创 Native关键字

native 关键字说明:凡是带了 native 关键字的,说明 java的作用范围达不到了,会去调用底层 C语言的库!也就是说 native 方法 会进入本地方法栈。调用本地方法库 通过 JNIJNI作用扩展JAVA 的使用,融合不同的编程语言为Java所用。最初是想融合 C 和 C++JAVA 最开始的时候 C 和 C++ 市场很大,想要立足,必须要调用 C和C ++ 的程序。JAVA 在内存区域中 专门 开辟了一块标记区域 本地方法栈【Native Method stack】,用

2022-04-24 15:43:26 285

原创 三种主流的JVM

目前市面上三种主流的JVMSUN、BEA和IBMSUN的JVM [HotSpot]这个JVM是大家在开发过程中普遍用的比较多的一个。关于GC回收,SUN的JVM的GC回收由两个部分组成,一个是频繁GC,一个是Full GC。那如何提高编写程序的效率呢?其实答案很简单,就是减少FULL GC的次数,如40多分钟一次FULL GC,更好的话就是加大频繁GC一次的回收量。如果是计算机专业的人应该还知道,想提高效率的其他方式就是必须学好数据结构、算法分析和编译原理.BEA的JVM [JRo

2022-04-24 15:42:55 1709

原创 初识JVM

初识JVMPC寄存器程序计数器:Program Counter Register每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向一条指令的地址,也即将要执行的指令代码 ),在执行引擎读取下一条指令,是一个非常小的内存空间,机会可以忽略不计方法区方法区 Method Area:static 、final、class、常量池方法区是被所有线程共享的。所有字段和方法字节码,以及一些特殊的方法,如构造函数,接口代码也在此定义,简单说,所有定义的方法的信

2022-04-24 15:42:19 76

原创 初识Jprofile

Jprofile 找到性能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题

2022-04-22 14:00:37 1814

原创 阿里出品 easyExcel[基于poi] 入门小结及优化

文章目录阿里出品 easyExcel[基于poi] 入门小结及优化常用maven依赖常见问题常用注解`@ContentLoopMerge` 用于设置合并单元格的注解`@ContentRowHeight` 用于设置行高`@ContentStyle` 设置内容格式注解`@HeadRowHeight`设置标题行行高`@HeadStyle` 设置标题样式`@ExcelIgnore` 不将该字段转换成Excel`@ExcelIgnoreUnannotated` 没有@ExcelProperty注解的字段都不转换`@

2022-03-24 16:28:07 1579

原创 Lambda表达式

Lambda表达式基本概念理解 functional interface (函数式接口) 是学习java8 lambda表达式的关键所在函数式接口定义:任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口public interface Runnable{ public abstract void run();}对于函数式接口,我们可以通过lambda表达式来创建该接口对象为什么要用lambda 表达式避免匿名内部类定义过多可以让你的代

2021-02-02 17:16:02 52

原创 单例模式

单例模式主要:构造器私有 (别人无法new 这个对象,保证内存中只有咱这一个对象)饿汉模式主要:上来就 new 出来这个对象类加载的方式是按需加载,且只加载一次。 因此,在上述单例类被加载时,就会实例化一个对象并交给自己的引用,供系统使用。换句话说,在线程访问单例对象之前就已经创建好了。再加上,由于一个类在整个生命周期中只会被加载一次,因此该单例类只会创建一个实例,也就是说,线程每次都只能也必定只可以拿到这个唯一的对象。因此就说, 饿汉式单例天生就是线程安全的 。缺点:有可能浪费内存。/

2021-02-01 14:16:47 56

原创 面向对象(OOP)七大原则

面向对象(OOP)七大原则开闭原则对 扩展 开放 , 对 修改 关闭当应用需求改变时,我们尽量去扩展,不去修改。不轻易动接口,接口就是契约,业务变更时不应轻易动接口,如果变更可以通过拓展完成的话,这样只需要在需要变化的业务模块中改变下实现类就好。然后开发中也要保持历史代码的纯洁性,减少对历史代码的修改,就能提高系统的稳定。新需求的实现是通过新增加代码来完成的,不是通过修改现有代码完成的这样原则设计出来的系统,遇到增加功能的需求时,几乎不用修改源代码,只是增加几个类,然后调用就好。这样既增加了

2021-01-28 16:02:21 433

空空如也

空空如也

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

TA关注的人

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