
Java
文章平均质量分 72
JaqenNg
微信公众号 JaqenAndroid,后台回复「1024」,送你特别推送。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java的强引用,软引用,弱引用,虚引用及其使用场景
从 JDK1.2 版本开始,Java 把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。1、强引用(Strong Reference)强引用就是我们经常使用的引用,其写法如下:Object o = new Object();只要还有强引用指向一个对象,垃圾收集器就不会回收这个...原创 2018-09-04 23:06:14 · 12314 阅读 · 13 评论 -
Java 对象的自我救赎
Java 对象的自我救赎原创 2019-01-16 10:33:23 · 293 阅读 · 0 评论 -
JVM 安全点介绍
JVM 安全点介绍原创 2019-01-20 17:29:10 · 1017 阅读 · 0 评论 -
JVM 中的内存溢出
内存溢出,通俗一点,就是 JVM 内存不足了,没有空闲内存,并且垃圾收集器也无法提供更多内存。这里的意思是说,通常在抛出 OutOfMemoryError 之前,垃圾收集器会被触发,尽其所能去清理空间。但也不是在所有情况下垃圾回收器都会被触发,比如分配了一个大对象,超过了堆的最大值,JVM 可能判断出垃圾收集并不能解决这个问题,直接抛出 OutOfMemoryError 。在 JVM 内存结...原创 2019-01-13 18:19:26 · 439 阅读 · 0 评论 -
JVM 内存结构
1、程序计数器Java 虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式实现,所以确定的时刻一个处理器只会执行一个线程中的指令。为了线程切换后能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器,用于记录线程所执行字节码指令的地址。2、虚拟机栈虚拟机栈是线程私有的。每个方法执行时会创建一个帧栈,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。当方法调用时,栈帧入栈...原创 2019-01-13 18:17:58 · 239 阅读 · 0 评论 -
JVM 中如何判断对象可以被回收
JVM 的垃圾回收器主要关注的是堆上创建的实例对象,在每次对这些对象进行回收前,需要确定哪些对象是可以去进行回收的。主要有下面两种方法。引用计数算法给对象添加一个引用计数器,当有一个地方引用它,计数器值加 1;当引用失效时,计数器值减 1。任何时刻计数器值为 0 表示这个对象可以被回收了。优点:判断效率高,实现简单。不足之处:难以解决对象之间相互循环引用的问题。比如:public...原创 2019-01-13 18:16:15 · 696 阅读 · 0 评论 -
垃圾收集算法有哪些?
垃圾收集算法有哪些?原创 2019-01-17 20:18:08 · 321 阅读 · 0 评论 -
Android 音视频学习资源汇总
1、Android 音视频开发入门指南 :音视频学习思路,一系列学习任务。2、Android 音视频开发学习思路:音视频学习路径,教程。3、《雷霄骅的专栏》:http://blog.youkuaiyun.com/leixiaohua10204、《Jhuster的专栏》:http://blog.51cto.com/ticktick5、《FFMPEG Tips》:http://ticktick.blog....原创 2018-12-12 22:16:37 · 812 阅读 · 0 评论 -
Java反射基础
最近在调研 Android 应用加固方案,涉及大量反射技术,因此趁这个机会总结下 Java 反射的一些知识。什么是反射?反射是 Java 语言提供的一种基本功能。通过反射我们可以在运行时动态地操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造函数,甚至可以在运行时修改类定义。基本使用方法反射的主要步骤包括:获取目标类型的 Class 对...原创 2018-09-13 22:20:40 · 176 阅读 · 0 评论 -
String、StringBuilder和StringBuffer
在之前的文章 Java 中 String 类为什么要设计成不可变的? 中对 String 的特性已经作了总结。这篇文章主要介绍另外两个常用的类 StringBuilder 和 StringBuffer 的特性。我们知道 String 是不可变的 (Immutable),字符串的操作会产生新对象,消耗内存。为此,JDK 提供了 StringBuffer 和 StringBuilder 两个类。S...原创 2018-09-09 22:15:17 · 154 阅读 · 0 评论 -
Java 中 String 类为什么要设计成不可变的?
String 是 Java 中不可变的类,所以一旦被实例化就无法修改。不可变类的实例一旦创建,其成员变量的值就不能被修改。本文总结下 String 类设计成不可变的原因及好处,以及 String 类是如何设计成不可变的。String 类设计成不可变的原因及好处?其实好处就是原因,String 设计成不可变,主要是从性能和安全两方面考虑。1、常量池的需要这个方面很好理解,Java 中的字符串...原创 2018-09-02 21:14:36 · 413 阅读 · 0 评论 -
Java 内存分配和回收策略
Java 内存分配和回收策略原创 2019-01-31 19:44:13 · 301 阅读 · 0 评论