
Java基础教程
Java教程
JustDreamer
这个作者很懒,什么都没留下…
展开
-
Java SPI解析
SPI Service Provider Interface.是JDK层面上的一种服务注册发现机制。可以实现依赖之间的解耦。来看一下具体的用法。使用SPI一般分为以下四个步骤 定义接口 定义一个接口,比如定义一个宠物的接口: package com.yg.myint; /** * @author yg */ public interface Pet { /** * Shot */ void Shot(); } 实现接口 定义接口之后,可以写两个实现类。 实现一:原创 2020-07-06 20:34:36 · 184 阅读 · 0 评论 -
ThreadLocal详解
背景 最近又聊到了ThreadLocal关键字,然后就梳理一下其中内容。这次直接读源码,从源码角度来分析一下。ThreadLocal提供了一个线程私有的区域,线程可以自己放一下值进去,然后用的时候取出来。那么它是怎么实现的呢? ThreadLocal public class Main { public static void main(String[] args) { ThreadLocal<String>tLocal=new ThreadLocal<>(原创 2020-07-03 14:49:49 · 205 阅读 · 1 评论 -
Java 四种引用
背景 最近被问到了Java的四种引用类型,其实这个东西我之前有个概念,但是记得不是很清楚了。借着这个机会复习一下。 引用的概念 其实这个和Java的GC很相关,当虚拟机内存不足的时候发生GC,那么到底需要回收哪些对象呢?这里有很多GC算法,但是基本都逃不过一个基本的理念:计算对象的引用状况。比如引用计数,可达性分析等等,本质上都是在考察该对象是不是被其他对象引用。但是如果虚拟机发现现在所有的对象都是被引用的,那么这个时候该回收谁?为了区分这些对象呗引用的"强度",jdk在1.2之后,增加了三种其他类型的引用原创 2020-07-01 19:37:39 · 172 阅读 · 0 评论 -
Java 枚举类型
枚举 枚举类其实是一个特殊的类,在java中枚举多用于一些具有固定选项的场景,把这些选项抽取出来,统一管理,便于后续拓展。比如衣服的颜色,购物的时候支付的方式等这些场景。其实枚举还是有点东西的,我之前对它的理解仅仅停留在几个字符串。其实枚举可以做很多的事情。 C++中的枚举 为啥还扯到了C++?(因为我会)最先接触到枚举这个概念是学C++的时候: #include<bits/stdc++.h> enum week { Mon,Tue,Wen,Thir,Fri,Sat,Sun }; using原创 2020-06-26 23:14:52 · 158 阅读 · 0 评论