jdk
.Passion
欢迎来看我的博客 ,原博客地址: https://www.cnblogs.com/lyr-2000/
现决定重新启用博客园的博客,一部分比较浅的笔记将写到这个博客上
欢迎打扰,另外,个人博客网站也搭建成功,欢迎打扰:
https://lyr-2000.github.io/
展开
-
虚拟机加载类的几种方式
什么是类加载当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。而类加载必然涉及类加载器java语法的角度来看使用new 静态加载调用某个 ClassLoader 实例的 loadClass() 方法调用 Class.forName() 方法jvm加载类的机制双亲委派机制线程上下文加载机制1 和 3 用 new 和 Class.for原创 2021-01-28 17:01:36 · 162 阅读 · 0 评论 -
Modifier源码总结
如何判断类或变量、方法的修饰符,可以使用Java反射机制中,Field的getModifiers()方法返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的返回值,代表类、成员变量、方法的修饰符。 其中,该修饰符是java.lang.reflect.Modifier的静态属性。把它们转换成二进制,可以看出,Modifier使用一个二进制的位来表示是否包含某个修饰符。 如果是public static,对应的整数就是二进制的:1001,也就是9。 如果是public stat原创 2021-01-28 16:44:00 · 489 阅读 · 0 评论 -
查看服务器GC 情况
jps -ljstat -gc 4053 250 80命令解释连续 250毫秒内打印 gc情况,打印 80次S0C 代表 survivor 0 ,S1C 代表 survivor1C 代表 capacity 容量, U 代表已经使用的 空间EC eu 表示 eden capacity 和 eden usedOC,OU old capacity, old usedMC meta capacity 元空间容量MU 元空间 使用值CCSCCCSU 压缩类空间使用容量 和原创 2021-01-20 00:10:41 · 1542 阅读 · 0 评论 -
#JVM#基础#架构模型
反编译指令:javap -v Main.classClassfile /F:/算法/Main/out/production/Main/Main.class Last modified 2020-8-6; size 421 bytes MD5 checksum b91492b4af956779de0a5649db38f7a0 Compiled from "Main.java"public class Main minor version: 0 major version: 55原创 2020-08-06 10:55:09 · 99 阅读 · 0 评论 -
得到 class 的常用方法(和 java内存模型)
方法名功能说明static ClassforName(String name)功能说明Object newInstance()调用缺省构造函数,返回Class对象的一个实例getName()返回 Class对象所表示的实体(类,接口,数组类,void) 名称Class getSuperClass()返回当前 class对象的父类的 Class对象Class[] getinterfaces()获取当前 Class对象的接口ClassLoader ge...原创 2020-05-30 13:26:47 · 236 阅读 · 0 评论 -
Object源码解析
package java.lang;public class Object { /** * 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用 */ private static native void registerNatives(); /** * 对象初始化时自动调用此方法 */ static { registerNatives(); } /** * 返回此原创 2020-05-29 20:51:45 · 109 阅读 · 0 评论 -
动态语言
比如有一个字符串var b = “var a=1;”我执行一个 eval 函数,就可以把 字符串内的脚本运行起来运行一下,会发现 alert 脚本执行了,这个就是动态语言的特性。运行时可以改变自身的结构运行时 结构不能变的 就是静态语言了,C,C++,JAVA 都是但是 使用 java 的反射 可以使得java 有类似于动态语言的特性。 (这样 java 的动态性 使得编程更加灵活了,比如面向切面,动态代理)以下内容请全文背诵:java 反射机制提供的功能:在运行时判断任意一个对象所原创 2020-05-29 20:40:46 · 208 阅读 · 0 评论 -
java注解源码解析
使用@interface自定义注解,自动继承 java.lang.annotation接口。@ interface用来声明一个注解,格式: public@ interface注解名{定义内容}声明了一个配置参数。返回值类型就是参数的类型(返回值只能是基本类型, Class, String,enum)可以通过 default 来声明参数的默认值如果只有一个参数成员,一般参数名为注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值import java..原创 2020-05-29 18:49:35 · 461 阅读 · 0 评论 -
spring 动态注入值相关文章
spring动态注入值的相关 博客转载 2020-05-01 00:14:48 · 99 阅读 · 0 评论 -
Garbage collectors
目前的垃圾回收期比较常用的组合有下面两个:parallel scavenge+ parallel oldparNew + CMS目前 1.8默认使用的是第一个如果老是频繁GC 的话可以考虑 换一个垃圾回收期最常用的组合就是这些了:Serial + Serial OldParNew + CMSParallel Scavenge + Parallel Old一些极少用的...原创 2020-04-29 21:01:33 · 423 阅读 · 0 评论 -
垃圾回收算法
how to find a garbage ?reference count(引用计数)root searching (根搜索算法(可达性算法))引用计数没办法解决循环引用因此 jdk使用可达性算法清除垃圾的算法有下面几种标记清除, 直接打上一个 标记,过段时间清除复制算法(copying),分出一半的内存 复制有用的数据到另外一半,没用的数据在原来那一半被清除(内存浪费...原创 2020-04-29 14:34:37 · 86 阅读 · 0 评论 -
CopyOnWriteArrayList
copyOnWriteArrayList转载 2020-02-05 00:42:05 · 70 阅读 · 0 评论 -
HashMap源码2
Hash算法Hashmap 的Node数组 大小一定是 2的幂次方当长度是 2的幂次方时,有hash % N = (N-1) & hash成立来看看源码数组长度为 2的幂时, hash % N = (N-1)& hash, 因为 & 运算要比 % 运算速度快,所有使用 &HashMap 采用的hash 算法是 hashCode^(hashCode ...原创 2020-02-05 00:00:12 · 101 阅读 · 0 评论 -
关于HashMap
这个是网上查资料抄的,感谢百度HashMap 底层的数据结构主要是:数组 + 链表 + 红黑树。其中当链表的长度大于等于 8 时,链表会转化成红黑树,当红黑树的大小小于等于 6 时,红黑树会转化成链表点进源码看看Treeify_threshold 为8 就是说节点大于等于8时,会判断是否要转为红黑树min_treeify_capacity 就是 说 数组容量 大于64时,链表才会转化为红...原创 2020-02-04 22:16:54 · 162 阅读 · 0 评论