小滴课堂-学习笔记:(9) Java高级核心之玩转 JDK8 新的内存空间和异常处理

海量数据大课学习笔记(9)-架构核心技术-池化思想-异步结合 性能优化最佳实践《上》-小滴课堂 小滴课堂,旨在让编程不在难学,让技术与生活更加有趣。随着互联网+的时代,在线教育技术越来越便捷,小滴课堂依托在线教育时间以及空间上的便利,为广大IT从业者提供了更为方便、快捷的学习交流途径、提供大量高质量的IT在线课程。更多教程请访问xdclass.net简介:讲解Jmeter里面GUI菜单栏主要组件添加->threads->线程组(控制总体并发)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。......... 阅读详情

logo 愿景:"让编程不再难学,让技术与生活更加有趣"


更多架构课程请访问 xdclass.net

目录

第1集 JDK8新特性之新内存空间Matespace

第2集 JDK7新特性之try-with-resources

干货文档


第1集 JDK8新特性之新内存空间Matespace

简介:讲解JDK8里面的新的内存空间MetaSpace

  • JVM 种类有很多,比如 Oralce-Sun Hotspot, Oralce JRockit, IBM J9, Taobao JVM,我们讲的是Hotspot才有,JRockit以及J9是没有这个区域

  • JVM内存知识 在JDK8之前的HotSpot JVM,有个区域叫做“永久代(permanent generation), 通过在命令行设置参数-XX:MaxPermSize来设定永久代最大可分配的内存空间

    如果JDK8里面设置了PermSize 和 MaxPermSize 会被忽略并给出警告

  • 作用:该块内存主要是被JVM用来存放 class 和 mate 信息的,当 class 被加载 loader 的时候就会被存储到该内存区中,如方法的编译信息及字节码、常量池和符号解析、类的层级信息,字段,名字等

  • 有大项目经验的同学对下面这个异常应该熟悉 java.lang.OutOfMemoryError: PermGen space

    原因是: 永久代空间不够,类太多导致

 

  • jdk8的修改 JDK8 HotSpot JVM 使用本地内存来存储类元数据信息,叫做 元空间(Metaspace) 在默认情况下Metaspace的大小只与本地内存大小有关

    常用的两个参数 -XX:MetaspaceSize=N 指Metaspace扩容时触发FullGC的初始化阈值

    -XX:MaxMetaspaceSize=N 指用于限制Metaspace增长的上限,防止因为某些情况导致Metaspace无限的使用本地内存

    不管两个参数如何设置,都会从20.8M开始,然后随着类加载越来越多不断扩容调整直到最大

  • 查看大小 jstat -gc pid MC: current metaspace capacity MU: mateaspace utilization 单位是KB

 

第2集 JDK7新特性之try-with-resources

简介:讲解JDK7里面的try-with-resources资源处理

  • 什么是try-with-resources

    
    资源的关闭很多人停留在旧的流程上,jdk7新特性就有,但是很多人以为是jdk8的 在try( ...)里声明的资源,会在try-catch代码块结束后自动关闭掉
    
    旧的
    
    public static void main(String[] args) throws IOException {
            String path = "/Users/jack/Desktop/t.txt";
            test(path);
    ​
        }
    ​
        private static void test(String filepath) throws FileNotFoundException {
            OutputStream out = new FileOutputStream(filepath);
            try {
                out.write((filepath+"可以学习java架构课程").getBytes());
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    ​
        }
    新的
    
    ​
      private static void test(String filepath){
            try(OutputStream out = new FileOutputStream(filepath);) {
                out.write((filepath+"可以学习java架构课程").getBytes());
            } catch (Exception e) {
                e.printStackTrace();
            }
    ​
        }

     

  • 注意点 1、实现了AutoCloseable接口的类,在try()里声明该类实例的时候,try结束后自动调用的close方法,这个动作会早于finally里调用的方法

2、不管是否出现异常,try()里的实例都会被调用close方法

3、try里面可以声明多个自动关闭的对象,越早声明的对象,会越晚被close掉

干货文档

                                                        关注公众号发送:“优快云干货文档”  即可领取

Java零基础入门:课堂笔记精讲 Java是一种广泛使用的面向对象的高级编程语言,它由Sun Microsystems公司(现为Oracle公司的一部分)在1995年正式推出。Java的设计理念源于C和C++,但采用了简化的语言特性,并引入了“一次编写,到处运行”的跨平台理念。Java具备自动垃圾收集、异常处理机制、多线程处理等特点,并且拥有丰富的类库支持,使其在企业级应用开发中尤为流行。集成开发环境(IDE)是支持项目开发的软件应用程序,它通常包括代码编辑器、构建自动化工具和调试器。IDE可以让开发者更高效地编写代码和管理项目。 阅读详情

相关推荐

全面掌握JavaSE:北京圣思园完整课堂笔记

本文还有配套的精品资源,点击获取 简介:JavaSE作为Java平台的核心,用于开发各类应用程序。本课堂笔记详细介绍了JavaSE的基础语法、数据类型、控制结构、面向对象特性(类与对象、封装、继承、多态)、集合框架、IO流、线程、异常处理、反射、JNI等概念。这些笔记为JavaSE初学者和有经验的开发者提供了深入理解与实践的宝贵资源,以编写出强大而可靠的Java程序。 ...

weixin_33431149的博客 1380

小滴课堂-学习笔记:(18)【高级篇】微服务公共组件在阿里云ECS容器化部署

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第十八章 【高级篇】微服务公共组件在阿里云ECS容器化部署 第1集 部署实战-阿里云服务器Docker部署Nacos+镜像加速 第2集 部署实战-阿里云ECS服务器Docker部署Sentinel 第3集 部署实战-阿里云ECS服务器Docker部署Zipkin实战 干货文档 第1集 部署实战-阿里云服务器Docker部署Nacos+镜像加速 简介:阿里云ECS服务器Docker部署Naco.

dev666的博客 483

实现Java课堂考勤系统的要点

Java语言是一种高级、面向对象的编程语言,以其跨平台、多线程等特性在企业级开发中占据重要地位。它被广泛应用于Web开发、Android开发、企业级应用开发等多个领域,有着强大的社区支持和丰富的第三方库。有时内置的布局管理器可能不足以满足特定的布局需求。此时,可以通过继承已有的布局管理器并重写其方法来自定义布局策略。例如,要创建一个只允许组件在容器中心显示的布局管理器,可以创建一个新的类继承自接口,并实现其方法。

weixin_42620563的博客 988

小滴大课-学习记录

占位

王洪洪的博客 325

ArcGis布局视图中Excel表格无边框插入与图例符号边框定制技巧

本文详细解析了在ArcGis布局视图中实现Excel表格无边框插入与图例符号边框定制的专业技巧。通过源头净化Excel表格、精准粘贴以及分解图例并单独设置边框属性,有效解决了地图报告中常见的视觉粗糙问题,帮助用户提升专题图与报告的精致度与专业感。

weixin_29292535的博客 305

CXL Virtual Hierarchy (VH) Enumeration理解

在 CXL 3.0 协议中,CXL Virtual Hierarchy (VH) Enumeration 是一种针对 CXL 虚拟层级(Virtual Hierarchy) 设计的设备枚举机制,它允许软件将物理连接的 CXL 设备抽象为多个逻辑层级(虚拟层级),从而实现更灵活的资源管理和拓扑扩展。与传统的 PCIe 枚举相比,CXL VH 枚举在协议特性、拓扑抽象和资源分配机制上有显著差异。本质:VH 是一个逻辑上的设备层级结构,可能与物理连接拓扑不同。

Summer的博客 1001

小滴-云架构18式

私信领取。

goPlayJava的博客 335

避坑指南:ROS2 Humble摄像头标定常见错误排查(从‘CALIBRATE’按钮不变绿到保存文件找不到)

本文详细解析了ROS2 Humble环境下摄像头标定的常见问题及解决方案,从CALIBRATE按钮不变绿到标定文件保存失败等疑难杂症。提供硬件准备、参数设置、实时诊断到结果验证的全流程指导,特别针对Ubuntu2204系统和usb_cam驱动的兼容性问题给出实用建议,帮助开发者高效完成内参标定。

weixin_29193359的博客 398

java8学习第二篇:try-with-resources

Java8里的一个新语法特性:try-with-resources。 这个语法特性其实从java7里就有了,不过java8的sample里依然有这个。 try-with-resources的特性就是,在try( ...)里声明的资源,会在try-catch代码块结束后自动关闭掉。 废话不说,先上代码后分析。 public class AutoCloseTest { pu

Java吧 1万+

PowerDesigner16.5下载和安装教程

一、软件下载 1.下载地址(不用复制,直接点击下载链接即可):链接:https://pan.baidu.com/s/1MSnWHWt3SO2Uz5dt9AANAg提取码:z9kk 二、软件安装 1.下载安装包(包含安装文件、汉化包、注册文件) 2.下载后文件内容如下 3....

cicong2374的博客 10万+

单片机入门说明书:从本质到架构,一文看透MCU核心原理

其实你每天用的洗衣机、刷的智能门锁、开的汽车里,都藏着它的身影。相当于工厂里的“运输轨道”,CPU算出的结果通过总线送到RAM存储,ROM里的程序通过总线传给CPU执行,外设的信号通过总线交给CPU处理,整个过程每秒能重复上百万次,确保各模块协同高效。高端单片机(比如STM32F4系列)还会配备DMA(直接存储器访问)单元,相当于“专用传送带”——不需要CPU干预,就能直接让外设和RAM之间传输数据(比如让ADC采集的温度数据直接存进RAM),大大降低CPU负担,让CPU能专注处理更重要的任务。

IAMIF12的博客 1038

小滴课堂-学习笔记:(1)JAVASE课程

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 茫茫人海中为何选择java这门语言 第2集 速成系列java从入门到告诉高手课程介绍 第3集 Java语言编程发展历程和JVM概述 第4集 概念理解面向对象编程和特点 第二章 Java开发环境准备和基础语法第一季 第2集 新版Java环境变量配置 第3集 完成你的第一个Java程序Hello World 第4集 Hello World程序剖析Java语法 第三章 集成开发环..

dev666的博客 2015

利用腾讯云轻量服务器快速搭建网站CDN

腾讯云的轻量最近在主机和站长中间可谓是占尽来风头,优秀的线路,低廉的价格使得越来越多的人开始使用腾讯云的轻量级服务器来部署应用。由于腾讯云轻量服务器的海外服务器电信走的是CN2GIA线路带宽30m挺适合做CDN的,我就记录一下如何利用腾讯云香港的轻量服务器搭建一个CDN。 购买服务器 首先选购服务器,最近腾讯云在做活动,力度很大国内备案用户可以选用国内的服务器最低128元/年,未备案的可以选用香港或者新加坡的服务器。 购买链接 服务器系统选Debian、Ubuntu、centos都可以 一键脚

demo_top的博客 2564

Java小课堂 第一章Java入门(上)

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行。

Syasjy的博客 1066

双屏DPI缩放问题全解析:从原理到实战解决窗口大小突变

DPI(每英寸点数)缩放是现代操作系统在多显示器环境下实现界面适配的核心技术。其原理是通过虚拟分辨率映射,在不同物理像素密度的屏幕上维持一致的视觉尺寸。这项技术的价值在于解决了高分辨率屏幕显示内容过小的问题,保障了跨屏工作流的视觉连续性。然而,在混合DPI环境(如4K屏与1080p屏组合)中,显卡驱动逻辑与应用程序DPI感知的协同问题,常导致窗口跨屏时出现剧烈缩放、尺寸错乱。这直接影响多屏办公、设计协作等需要频繁拖拽窗口的应用场景。本文聚焦于**显卡驱动**配置与**应用程序兼容性**设置,提供一套从系统底

weixin_34364071的博客 386

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图、天地图)

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图)

1万+

【韩顺平Java笔记】第2章:Java概述

程序:计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合,举例说明:计算机程序执行过程://1+1程序System.out.println("结果=" + res);将上述代码保存到Test.java后,进入CMD,第一步,先使用javac命令编译一下,生成Test.class文件然后输入java Test,按回车就可以执行Java语言的特点:跨平台性做解释工作的执行工作的是JVM(Java虚拟机),不同的操作系统其对应的JVM是不一样的,JVM是包含在JDK中的。

随手写写 1488

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java基础知识大全_一点课堂(多岸学院)

1. 面向对象和面向过程的区别 面向过程 面向对象 2. Java 语言有哪些特点 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 JVM JDK 和 JRE 4. Oracle JDK 和 OpenJDK 的对比 5. Java和C 的区别 6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同 7. Java 应用程序与小程序之间有那些差别 8. 字符...

dooduoaixuexi的博客 1178

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java期末考试必考知识点(从课堂内容入手)

JAVA没有信息卷,只能从老师上课讲的入手,梳理可能会考到的知识点,以不变应万变。 1、Java三个技术平台:JavaSE、JavaEE、JavaME 2、Java语言的特点:简单性、面向对象、安全性、跨平台性、支持多线程、分布性 3、1995年,Java语言诞生(据说会考) 4、JDK: 一套Java开发环境,简称JDK(Java Development Kit)。JDK包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等 JDK目录: bin目录:该目录用于存放

henu_GM的博客 2744

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java基础核心技术:多线程(day16-day17)-宋红康-专题视频课程

本套Java视频完全针对初级学员,课堂实录,自发布以来,好评如潮!Java视频中注重与学生互动,讲授幽默诙谐、细致入微,覆盖Java基础所有核心知识点,同类Java视频中也是代码量大、案例多、实战性强的。同时,本Java视频教程注重技术原理剖析,深入JDK源码,辅以代码实战贯穿始终,用实践驱动理论,并辅以必要的代码练习。...

songhongk的专栏 536

李兴华java8 课堂笔记_李兴华Java8课堂笔记

【实例简介】李兴华讲Java入门的课堂配套笔记,整理为word文档格式,里面还包括其中前几节课我自己记的笔记,包括对象引用传递的内存变化图【实例截图】【核心代码】李兴华javaWord全部笔记└── 李兴华java Word 全部笔记├── 我的笔记│ ├── static关键字.docx│ ├── String类.docx│ ├── this关键字.docx│ ├── 代码块.d...

weixin_39732825的博客 409

Java基础核心技术:异常处理(day11-day12)-宋红康-专题视频课程

本套Java视频完全针对初级学员,课堂实录,自发布以来,好评如潮!Java视频中注重与学生互动,讲授幽默诙谐、细致入微,覆盖Java基础所有核心知识点,同类Java视频中也是代码量大、案例多、实战性强的。同时,本Java视频教程注重技术原理剖析,深入JDK源码,辅以代码实战贯穿始终,用实践驱动理论,并辅以必要的代码练习。...

songhongk的专栏 229

Java最全金三银四将至,Java岗求职该如何应对春招?阿里P8的答案都在这了,面试题附答案

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取老板:好,小博也太辛苦你了,为了公司项目忙上忙下的,加油干,明年哥给自己换辆车!今年年初,机缘巧合之下认识了一个阿里P8,让我知道了什么叫听君一席话,剩读十年书,让我对今年金三银四跳槽更有信心了。

2401_84004024的博客 951

2. Java基础的一些课堂笔记

1. Java SE: 标准版,定位在个人计算机。 2.JavaEE: 企业版,定位在服务器。 3.JavaME:微型版,消费性电子产品。 4.Java的核心优势:跨平台。 5. 运行机制:(编译解释型)源文件--->编译器--->字节码文件--->JRE(JVM)--->系统平台 6.JVM:执行字节码(bytecode)的虚拟计算机 7.JRE:包含JVM,...

Dudu 386

JAVA语言程序开发课堂笔记

// 返回类型协变。public static synchronized void staticMethod() {} // 类锁。} // 必须解决冲突。> list) { // 比List<Object>更安全。public synchronized void method() {} // 实例锁。Runnable task = () -> { /* 任务 */ };

Linnn_0705的博客 166

20155318 2016-2017-2《Java程序设计》课程总结

20155318 2016-2017-2《Java程序设计》课程总结 每周作业链接 预备作业1:亦师亦友——我所期望的师生关系,对专业的认识与期望等 预备作业2:没有了自主,学习的小船说翻就翻——读《做中学》有感 预备作业3:安装虚拟机&Linux命令学习 第一周作业:了解JVM、JRE与JDK,并下载、安装,学会编译、运行、调试简单的Java程序 第二周作业:已经对java的...

193
上一篇: 小滴课堂-学习笔记:(8)Java高级核心之玩转 JDK8 Collection和Lambda实战
下一篇: 小滴课堂-学习笔记:(10)Java高级核心之玩转JDK9常见特性讲解
dev666
博客等级 码龄9年 100粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dev666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值