![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
落叶挽歌
1
展开
-
从Android返回键退出和直接杀死进程退出说起
最近开发的时候,使用了一个单例模式,当我返回键退出App,再重新启动,发现App的确是从首页启动,在还没有执行到为单例类设置数值时候,断点调试的发现已经有了一个数据,并且是上一次运行留下的数据,当时觉得很神奇,明明根Activity已经执行了OnDestroy(),而且再启动的确是从首页过来的,讲道理应该是“Everything will be new”,但是单例里面的数据仍然存在,这可是为什么呢?Google搜了一下,噢!恍然大悟,看到这一块的知识很久没有用就忘掉了,或者说对运行机制相关还不太熟悉吧,所原创 2020-09-08 23:21:45 · 2052 阅读 · 0 评论 -
WeakHashMap与Java引用相关
记得在很久之前有写过一篇《Java中的Reference解析》,主要讲的是Java中的四种引用方式与引用队列,不过这些都是基础的理论知识,最近开发项目中有使用到WeakHashMap,对于Java的引用以及引用队列有了更深的了解,在此做个相关总结。一、WeakHashMap的实现方式总体来说,WeakHashMap的底层数据结构与HashMap的实现差不多,都是用“拉链法”来实现,主要区别在于WeakHashMap的Entry 继承于WeakReference,并维护一个ReferenceQueue,使原创 2020-06-22 19:12:39 · 170 阅读 · 0 评论 -
Java中的Reference解析
前言Java执行GC判断对象是否存活有两种方式其中一种是引用计数。引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1。在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能...原创 2019-10-30 19:53:16 · 487 阅读 · 0 评论 -
Java中Lambda表达式解析
在大部分开发者看来,Lambda表达式只是一种语法糖,简化了书写匿名内部类的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的,与内部类的实现有很大的差异。本文主要讲解以下知识点:一、函数式接口二、Lambda表达式与匿名内部类三、Lambda实现原理一、函数式接口众所周知Javascript具有一个强大...原创 2019-10-10 09:05:18 · 1369 阅读 · 0 评论 -
单例模式的设计
我们都知道单例模式很简单,大概是这样://单线程单例模式实现public class Singleton { private static Singleton instance=null; public static Singleton getInstance() { if(null==instance){ instance = new ...原创 2019-07-09 09:54:34 · 162 阅读 · 0 评论 -
关于位运算和HashMap中一个求最小2次幂的算法
今天在HashMap的内部源码的时候,看到这样一个算法:/** * Returns a power of two size for the given target capacity. * 返回大于或等于 cap 的最小2次幂 */static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >&g...原创 2019-04-29 15:39:46 · 331 阅读 · 0 评论 -
学习笔记-Java虚拟机类的加载机制
什么是虚拟机类的加载机制?虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类从加载到虚拟机的内存中开始,直到卸载出内存为止,整个生命周期为:加载(loading)验证(verification)准备(preparation)解析(resolution)初...原创 2019-03-21 09:33:58 · 106 阅读 · 0 评论 -
两道面试题,带你解析Java类加载机制
在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题:class Grandpa { static { System.out.println("爷爷在静态代码块"); }}class Father extends Grandpa { static { System.out.println("爸爸在静态代码块"...转载 2019-03-20 17:45:05 · 119 阅读 · 0 评论 -
Java反射中getGenericInterfaces和getInterfaces的解读
今天在做解析网络请求后得到的数据的转化的时候用到了getGenericInterfaces这个方法,顺便也了解了下和他长得差不多的getInterfaces方法。官方文档解释getGenericInterfaces:Returns the {@code Type}s representing the interfaces directly implemented by the class ...原创 2019-02-20 10:05:35 · 6642 阅读 · 0 评论