![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
WJustHM
就是干
展开
-
java重载、重写和this、super
重载 (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。 (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。 (3) 重载的时候,方法名要原创 2017-09-02 17:12:31 · 232 阅读 · 0 评论 -
JVM垃圾回收总结详解(一)细心阅读
Java内存大体分为:堆内存(Heap) 栈内存(Stack)内存细分:虚拟机栈本地方法栈PC寄存器方法区堆区再分:线程共享区:方法区,堆区。随着虚拟机启动而创建,随着虚拟机退出而销毁,并且为进程的所有子线程共享线程独享区:虚拟机栈,本地方法栈,PC寄存器,这些数据与线程一一对应,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁一 、线程独享区PC寄存器:任意时刻,...原创 2019-01-17 16:14:08 · 339 阅读 · 0 评论 -
JVM垃圾回收总结详解(二)细心阅读
GC 回收需要完成的三件事情:哪些内存需要回收什么时候回收如何回收HotSpot 虚拟机中,对象在内存中存储的布局分为三块区域:对象头、实例数据、对齐填充对象头:第一部分用于存储对象自身的运行时数据对象头的另外一部分是类型指针,即是对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。实例数据接下来实例数据部分是对象真正存储的有效信息,也既是我们在程序...原创 2019-01-17 22:36:51 · 175 阅读 · 0 评论 -
JVM启动参数大全及默认值
Java启动参数分为三类:1.标准参数(-)2.非标准参数(-X)3.非Stable参数(-XX)一、标准参数-classpath-cp告知jvm搜索目录名、jar文档名、zip文档名,之间用分号;分隔;使用-classpath后jvm将不再使用CLASSPATH中的类搜索路径,如果-classpath和CLASSPATH都没有设置,则jvm使用当前路径(.)作为类搜索路径。jvm...原创 2019-01-18 16:27:56 · 1436 阅读 · 0 评论 -
JVM虚拟机实战案例 -- OOM
一、通过运行时验证Java虚拟机规范中描述的各个运行时区域存储的内容二、在工作中遇到OOM,根据异常信息快速判断是哪个区域的内存溢出,知道什么样的代码可能导致OOM,以及解决方案Java堆溢出VM参数: Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=D:\Java\dump2.hprof代码Ma...原创 2019-01-22 17:54:50 · 383 阅读 · 0 评论 -
方法内部多线程调用局部变量问题
问题场景: 方法n内部多线程调用内部局部变量集合,并发写入数据库,集合线程间隔离(线程调用完毕就需要清空集合),数据不重复写入问题核心代码片段: class ThreadSync implements Runnable { private final String oldEsUrl = String.format("%s", BULK); private ...原创 2019-04-01 17:22:28 · 1296 阅读 · 0 评论 -
一句话总结JVM
JVM识别的编译后的字节码文件程序计数器针对每个线程都有独立的计数器,记录当前这个线程执行到哪一条字节码指令了Java虚拟机栈JVM必须有一块区域来保存每个方法的内的局部变量等等数据,每个线程都有自己的Java虚拟机栈,对应被调用的每个方法都会有一个栈帧,方法执行完毕后就会把相应的方法栈帧从栈里剔除调用执行任何方法的时候,都会给方法创建栈帧然后入栈。而在栈帧里存放了这个...原创 2019-05-16 11:09:26 · 342 阅读 · 0 评论