随笔分类 -  JVM

摘要:目录 一、为什么需要 Stream 二、什么是流 三、流的分类 1、有多种方式生成 Stream Source 2、流的操作类型 四、流的创建 1、数组和集合创建流 2、基本数值型流 3、数值流的构造 4、流转换为其它数据结构 五、流的操作 1、常见操作分类 2、map/flatMap 3、filt 阅读全文
posted @ 2022-12-01 10:23 hanease 阅读(1201) 评论(0) 推荐(0) 编辑
摘要:1.1 lambda表达式 一、处理匿名内部类 1、Runnable接口 1 new Thread(new Runnable() { 2 public void run() { 3 System.out.println("hello world!!!"); 4 } 5 }).start(); 6 7 阅读全文
posted @ 2022-05-23 19:41 hanease 阅读(85) 评论(0) 推荐(0) 编辑
摘要:第一章 JVM内存结构 1、为什么要了解JVM内存管理机制 JVM自动的管理内存的分配与回收,这会在不知不觉中浪费很多内存,导致JVM花费很多时间去进行垃圾回收(GC) 内存泄露,导致JVM内存最终不够用 2、JVM内存结构 根据上图,JVM内存结构包括: 方法区 - Java虚拟机规范 <jdk8 阅读全文
posted @ 2022-05-23 10:06 hanease 阅读(172) 评论(0) 推荐(0) 编辑
摘要:常用JVM配置参数 常用JVM配置参数主要有:Trace跟踪参数、堆的分配参数、栈的分配参数。 一、Trace跟踪参数 跟踪参数用于跟踪监控JVM,对于开发人员来讲用于JVM调优以及故障排查的。 1、打印GC的简要信息 -verbose:gc -XX:+PrintGC 这两个配置参数效果是一样的,都 阅读全文
posted @ 2022-02-24 19:56 hanease 阅读(1141) 评论(0) 推荐(0) 编辑
摘要:JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。 自动装箱,只需将该值赋给 阅读全文
posted @ 2022-02-16 10:25 hanease 阅读(997) 评论(0) 推荐(0) 编辑
摘要:Lambda表达式 接口新增方法 四大函数式接口 方法引用 Stream(1) Stream(2) Stream(3) 时间API 加强注解 Base64 排序 Lambda体验Lambda是一个匿名函数,可以理解为一段可以传递的代码。Lambda表达式写法,代码如下:借助Java 8的全新语法,上 阅读全文
posted @ 2022-02-16 09:52 hanease 阅读(58) 评论(0) 推荐(0) 编辑
摘要:1、StackOverFlowErrorThrown when a stack overflow occurs because an application recurses too deeply. 调用栈深度超过限制 递归运算时会遇到 2、OOMOut of memory当JVM分配内存时 不够才 阅读全文
posted @ 2022-02-07 21:37 hanease 阅读(121) 评论(0) 推荐(0) 编辑
摘要:Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理。同样的,如果你现在依旧在项目中使用传统Date、Calendar和SimpleDateFormat等API来处理日期相关操作,这篇文章你一定不要错过。来刷新你的知识库吧! 背景 Java对日期、日历及时间的 阅读全文
posted @ 2021-12-14 21:25 hanease 阅读(76) 评论(0) 推荐(0) 编辑
摘要:概述 jvm中除了程序计数器,其他的区域都有可能会发生内存溢出 内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出 内存溢出和内存泄漏有什么区别? 内存泄漏是由于使用不当,把一部分内存“丢掉了”,导致这部分内存不可用。当在堆中 阅读全文
posted @ 2021-06-20 22:56 hanease 阅读(633) 评论(0) 推荐(0) 编辑
摘要:1:什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM 阅读全文
posted @ 2021-06-20 21:38 hanease 阅读(123) 评论(0) 推荐(0) 编辑
摘要:堆和栈的概念和区别 在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式 阅读全文
posted @ 2021-03-13 22:08 hanease 阅读(415) 评论(0) 推荐(0) 编辑
摘要:1. 描述 ​ 程序在开发过程中,有可能会发生CPU飙高、内存溢出等问题或系统在后期调优阶段,不可避免的要监控JVM情况,JDK自带的Jconsole监控工具,结合Tomcat使用非常方便,占用内存小,满足必要的监控项,还有不错的可视化界面,居家必备。 java线程的6种状态 初始态(NEW) 创建 阅读全文
posted @ 2021-03-11 22:13 hanease 阅读(180) 评论(0) 推荐(0) 编辑
摘要:背景: 可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(M 阅读全文
posted @ 2021-03-11 00:05 hanease 阅读(82) 评论(0) 推荐(0) 编辑
摘要:背景: 以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Window 阅读全文
posted @ 2021-03-10 23:59 hanease 阅读(96) 评论(0) 推荐(0) 编辑
摘要:背景: 垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返 阅读全文
posted @ 2021-03-10 23:49 hanease 阅读(83) 评论(0) 推荐(0) 编辑