自定义博客皮肤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)
  • 收藏
  • 关注

转载 13 Java内存模型

数据竞争int a=0, b=0;public void method1() { int r2 = a; b = 1;}public void method2() { int r1 = b; a = 2;}上述代码中,定义了两个共享变量 a 和 b,以及两个...

2019-01-28 18:32:00 67

转载 12 JVM 垃圾回收(下)

Java 虚拟机的堆划分Java 虚拟机将堆划分为新生代和老年代。其中新生代又被划分为 Eden 区,以及两个大小相同的 Survivor 区。默认情况下,Java 虚拟机采取一种动态分配的策略,根据对象生成的速率,以及 Survivor 区的使用情况动态调整 Eden 区和 Surviv...

2019-01-26 22:37:00 71

转载 11 JVM 垃圾回收(上)

引用计数法和可达性分析垃圾回收,就是将已经分配出去的,但却不在使用的内存回收回来,以便再次分配。在 Java 虚拟机语境下,垃圾指的是死亡的对象所占据的堆空间。下面就总结一下如何如何辨别一个对象是否死亡。引用计数法:为每一个对象添加一个引用计数器,用来统计指向该对象的引用个数。如果某个对象...

2019-01-24 19:57:00 80

转载 10 Java 对象的内存布局

Java 创建对象的方式1:new 语句和反射机制创建。该方式会调用类的构造器,同时满足诸多约束。如果一个类没有构造器的话,Java 编译器会自动添加一个无参数的构造器。子类的构造器需要调用父类的构造器,如果父类存在无参数构造器的话,该调用可以是隐式的。如果父类没有无参数构造器,那么子类的构...

2019-01-22 22:25:00 93

转载 07 JVM 是如何实现反射的

Java 中的反射反射是 Java 语言的一个相当重要的特性,它允许正在运行的 Java 程序观测,甚至是修改程序的动态行为。我们可以通过 Class 对象枚举该类中的所有方法,还可以通过 Method.SetAccessible 让过 Java 语言的访问权限,在私有方法所在类之外的地方...

2019-01-21 21:47:00 83

转载 06 JVM 是如何处理异常的

在 JAVA 中,异常处理的方式主要是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。抛出异常可以分为显示和隐式两种。显示抛出异常的主体是应用程序,它指的是在程序中使用 throw 关键字,手动将异常实例抛出。隐式抛出异常的主题是 Java 虚拟机,它指的是 Java 虚拟机在...

2019-01-19 20:55:00 64

转载 04 JVM是如何执行方法调用的(下)

虚方法调用Java 里所有非私有实例方法调用都会被编译成 invokevirtual 指令,而接口方法调用会被编译成 invokeinterface 指令。这两种指令,均属于 Java 虚拟机中的虚方法调用。动态绑定:Java 虚拟机需要根据调用者的动态类型,来确定虚方法调用的目标方法。...

2019-01-18 22:00:00 54

转载 04 JVM是如何执行方法调用的(上)

#### 重载和重写 重载:同一个类中定义名字相同的方法,但是参数类型或者参数个数必须不同。 重载的方法在编译过程中就可完成识别。具体到每一个方法的调用,Java 编译器会根据所传入参数的生命类型来选取重载方法。选取的过程分以下三个阶段: 1:在不考虑对基本类型自动装拆箱,以及可变长参数的情...

2019-01-17 22:18:00 96

转载 03 Java 虚拟机是如何加载 Java 类的

Java 引用类型Java 中的引用类型细分为四种:类,接口,数组类和泛型参数。因为泛型参数会在编译过程中被擦除,所以 Java 虚拟机实际上只有前三种。数组类是由 Java 虚拟机直接生成的,其他两种则有对应的字节流。无论是数组类还是其他两种类型,Java 虚拟机都需要对其进行链接和初...

2019-01-16 23:13:00 51

转载 02 Java 的基本类型

Java 的基本类型Java 包括了八种基本类型,明细如下:Java 的基本类型都有对应的值域和默认值。byte,short,int,long,float以及double的值域依次扩大,前面的值域都被后面的值域包括在内。所以,从前面的基本类型转换成后面的基本类型,无需强制转换。补充:尽管...

2019-01-14 22:02:00 61

转载 01 Java 代码是怎么运行的

Java代码运行的方式1:在开发工具中运行2:双击 jar 文件运行3:在命令行中运行4:在网页中运行上述运行方式都离不开 JRE,也就是 Java 运行时环境。实际上 JRE 仅包含运行 Java 程序的必须组件,包括 Java 虚拟机以及 Java 核心类库等。Java 程序员经...

2019-01-13 23:02:00 57

转载 算法笔记-复杂度分析1

算法复杂度分析是什么什么是算法复杂度分析?通过时间和空间两个维度来评估算法和数据结构的性能。用时间复杂度 (时间渐进复杂度) 和空间复杂度 (空间渐进复杂度)两个概念来描述性能问题,统称复杂度。算法复杂度描述的是算法执行时间以及占用空间与数据规模的关联关系算法复杂度分析是理论上的...

2018-12-14 09:21:00 74

空空如也

空空如也

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

TA关注的人

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