![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
大旭小旭
多做与少做的区别,就是成功与失败的差距。
展开
-
Java 设计模式之代理模式
Java 设计模式之代理模式原创 2022-07-18 15:29:01 · 259 阅读 · 1 评论 -
01-Java设计模式-单例模式
Singleton-单例模式单例顾名思义就是单个实例,保证在内存中只有一个实例。使用场景用在只需要有一个实例存在的时候,不想让别人在 new 一个实例出来的时候。现在单例的写法玩的越来越花哨了,各种写法,本次介绍一下常用几种方式及优缺点。1、饿汉式特点: JVM保证线程安全优点:写法比较简单,推荐使用缺点:不管是否用到,类装载时就完成实例化了public clas...原创 2020-03-27 18:17:21 · 112 阅读 · 0 评论 -
Java Integer 为什么不推荐使用 ==
所有整型包装类对象之间的比较全部使用equals方法比较。对于 Integer var = ? 在 -128 至 127 范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用 == 进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,所以推荐使用equals方法进行判断。举个栗子:...原创 2020-03-02 13:23:13 · 2054 阅读 · 0 评论 -
Java 垃圾回收算法
java语言引入了内存回收机制,对于C++程序员内存管理的问题迎刃而解。为什么需要进行垃圾回收,如果不回收内存早晚回耗尽。既然要回收,哪些内存是需要回收的,什么算法判断是否需要回收,就成了关键问题。首先来看一下判断对象是否存活的算法,因为垃圾回收只回收非存活的对象,所以要先判断出对象是否存活。1、引用计数算法 堆中每个对象实例都有一个引用计数,当一个对象被创建时,就将该对象实例分配...原创 2018-11-07 17:14:36 · 299 阅读 · 0 评论 -
经典递归算法
程序调用自身的编程技巧称为递归。今天分享几个经典递归算法,也算是做一个整理记录。 /** * 3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个 * 月的兔子总数为多少? */ public static int rabbit(int x){ if (x == 1 || x ==2) { return 1;...原创 2019-03-28 19:26:51 · 1487 阅读 · 0 评论 -
Java 单例模式实现方式
无论程序如何运行,采用单例模式的类,保证类的对象在内存中唯一。1、饿汉式:因为饿,所以要立即吃饭,在定义类的静态私有变量同时进行实例化,线程安全。public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton(){} ...原创 2019-03-28 20:01:45 · 115 阅读 · 0 评论 -
浅谈Java的System.gc()实现
我们都知道System.gc()用于调用垃圾收集器。很久之前我一直认为执行System.gc()之后,虚拟机会立刻垃圾回收。抱歉,我理解错了。直到看完System.gc()的源码之后才搞清楚,执行System.gc()函数的作用只是提醒或告诉虚拟机,希望进行一次垃圾回收。至于什么时候进行回收还是取决于虚拟机,而且也不能保证一定进行回收(如果-XX:+DisableExplicitGC设...原创 2019-04-20 09:35:35 · 35508 阅读 · 2 评论 -
Java 单例模式实现方式-续
在之前一篇博客中提到过Java单例模式的实现,Java 单例模式实现方式,这次主要分享两个懒汉式线程安全的单例,在面试过程中也会经常被拿来当笔试题,例如写一个线程安全的单例模式。这时候我们肯定想到的是饿汉式,没错,饿汉式是线程安全的,如果你也能写出懒汉式的线程安全的单例是不是更好一些呢。懒汉式-线程安全public class Singleton { private sta...原创 2019-04-20 10:31:28 · 243 阅读 · 0 评论