单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。...; } } /** * @Title: ShowSingletonPattern.java * @Description: TODO * @author 菱形继承 * @date 2020
Java集合List List代表了有序可重复集合,可直接根据元素的索引来访问。 List接口常用的实现类有:ArrayList、LinkedList、Vector。...import java.util.LinkedList; public class StackExample { public static void main(String[] args)...缺点: 线程不安全,效率高 Java集合Set Set扩展Collection接口,无序集合,不允许存放重复的元素。...Java集合Queue 队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。...Java集合Map Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。
Java中的socket编程 下面的部分我将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。...并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。....; import java.net.; public class EchoServer { public static void main(String args[]) { // declaration...111 HTTP/1.1 User-Agent: curl/7.37.1 Host: 127.0.0.1:9999 Accept: / 总结 进行客户端-服务器端编程还是比较有趣的,同时在Java...java.net这个包里面包含了很多强大灵活的类供开发者进行网络编程,在进行网络编程中,建议使用这个包下面的API。同时Sun.
Java中的socket编程 下面的部分我将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。...并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。...111 HTTP/1.1 User-Agent: curl/7.37.1 Host: 127.0.0.1:9999 Accept: */* 总结 进行客户端-服务器端编程还是比较有趣的,同时在Java...java.net这个包里面包含了很多强大灵活的类供开发者进行网络编程,在进行网络编程中,建议使用这个包下面的API。同时Sun....原文信息 原文地址:Sockets programming in Java: A tutorial
JAVA 异常类型结构 Throwable 是所有异常类型的基类,Throwable 下一层分为两个分支,Error 和 Exception. ?...受查异常和非受查异常 如果想学习Java工程化、高性能及分布式、深入浅出。...微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。...微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。...JAVA 7 提供了更优雅的方式来实现资源的自动释放,自动释放的资源需要是实现了 AutoCloseable 接口的类。
一文读懂JAVA多线程 背景渊源 摩尔定律 提到多线程好多书上都会提到摩尔定律,它是由英特尔创始人之一Gordon Moore提出来的。...Java虚拟机规范中试图定义一种Java内存模型(java Memory Model) 来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。...Java内存模型规定了所有的变量都存储在主内存中。...这里所说的主内存、工作内存和Java内存区域中的Java堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的。...在java里边java.util.concurrent.atomic包下边的类都使用了CAS操作。最常用的方法就是compareAndSet。
缓存一致性,每操作一次通知(一致性协议MESI),(但多线程的时候还是会有问题,后文讲) JAVA内存模型 上边稍微扯了一下存储体系是为了在这里写一下JAVA内存模型。...Java虚拟机规范中试图定义一种Java内存模型(java Memory Model) 来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。...Java内存模型规定了所有的变量都存储在主内存中。...这里所说的主内存、工作内存和Java内存区域中的Java堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的。 ...在java里边java.util.concurrent.atomic包下边的类都使用了CAS操作。最常用的方法就是compareAndSet。
作者 | 刘欣 来源 | 码农翻身 1 新王登基 登基以后第一次早朝, 意气风发的第5代Java国王坐在宝座上,看着下面恭恭敬敬的各位大臣,心情大好。...他早已下定决心,要刷新吏治,革除弊端,将Java帝国带上更高的巅峰。...虽然这么想,嘴上还是说道:“陛下圣明,真乃开天辟地之举,定会使我Java帝国江山永固。” 没想到半个月后又一次早朝,国王真的开始检查作业了: “IO大臣,你那里情况如何?...我们Java 也应该加上类似功能” “怎么加上呢? ” 集合框架大臣问道。 “好办啊,仿照C++的语法就行了” Java国王心想,这些占据高位,但是又不做事的家伙们以后要统统替换掉。...当传递一个ArrayList为什么出错呢, 难道我们Java帝国的多态不管用了吗? 他召来泛型大臣问个明白。
Java泛型并没有真的新增类型,List和List在编译后都是List,依靠的是类型擦除和强制转换来实现的。...Java内存模型 泛型信息以参数化类型信息(paramentersized typ)的方式存储在对象类型实例(即方法区中的Class)中,各种泛型实例的类型指针都指向方法区中同一class类型实例。...} 根据上面的分析可以知道从参数化类型信息中就可以得到真实类型 @Test fun testFun() { val clazz = TestClass::class.java...parameterClass) } //获取方法参数的泛型 val method = clazz.getMethod("testParameter", List::class.java...class java.lang.String class java.lang.Float
https://blog.csdn.net/gdutxiaoxu/article/details/80738581 java 源码系列 - 带你读懂 Reference 和 ReferenceQueue...LeakCanary https://blog.csdn.net/gdutxiaoxu/article/details/80752876 从基础讲起 Reference 主要是负责内存的一个状态,当然它还和java...,表示已经被回收 将 refrence 插入到 queue 的头部 Refrence 和 RefrenceQueue 的源码分析到此为止 ---- Refrence 的子类 4种引用 我们都知道在Java...中有4种引用,这四种引用从高到低分别为: 1) StrongReference 这个引用在Java中没有相应的类与之对应,但是强引用比较普遍,例如:Object obj = new Object();这里的...---- 总结 Refrence 和引用队列 ReferenceQueue 联合使用时,如果 Refrence持有的对象被垃圾回收,Java 虚拟机就会把这个弱引用加入到与之关联的引用队列中。
abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable...public class ConditionObject implements Condition, java.io.Serializable { private static final long
概述 Hashmap继承于AbstractMap,实现了Map、Cloneable、Java.io.Serializable接口。它的key、value都可以为null,映射不是有序的。...HashMap源码: package java.util;import java.io....size; } public void clear() { HashMap.this.clear(); } } // java.io.Serializable...的写入函数 // 将HashMap的“总的容量,实际容量,所有的Entry”都写入到输出流中 private void writeObject(java.io.ObjectOutputStream...的读取函数:根据写入方式读出 // 将HashMap的“总的容量,实际容量,所有的Entry”依次读出 private void readObject(java.io.ObjectInputStream
Java 反射机制对于小白来说,真的是一道巨大的坎儿,其他的东西吧,无非就是内容多点,多看看多背背就好了,反射真的就是不管看了多少遍不理解就还是不理解,而且学校里面的各大教材应该都没有反射这个章节,有也是一带而过...可以通过专门的 Java 类访问这些信息,这个类就是 Class 类。...「缺点」: 1)性能瓶颈:反射相当于一系列解释操作,通知 JVM 要做的事情,性能比直接的 Java 代码要慢很多。...关闭数据库连接 con.close(); } Spring 框架 反射机制是 Java 框架设计的灵魂,框架的内部都已经封装好了,我们自己基本用不着写。...References 《Java 核心技术 - 卷 1 基础知识 - 第 10 版》 《Thinking In Java(Java 编程思想)- 第 4 版》 敬业的小马哥 — Java 基础之反射:https
,在 JAVA8 中它摒弃了 Segment(锁段)的概念,而是启用了一种全新的方式实现,利用 CAS 算法。...happens-before规则(摘取自 JAVA 并发编程): 程序次序法则 线程中的每个动作A都 happens-before 于该线程中的每一个动作B,其中,在程序中,所有的动作B都能出现在A之后
在此之前,回顾下java程序的编译运行过程,分为三个阶段:源码(.java文件)进过编译生成字节码文件(.class文件),然后jvm加载字节码文件执行程序(runtime)。...什么是java反射机制? 1983年Smith首次提出反射这个概念,主要指程序可以访问、检测和修改他本身状态或行为的一种能力。...java反射机制是在运行状态中中对类进行解剖并操作类中的构造方法,成员方法,成员属性(主要用于框架中),这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。...了解了反射机制的概念,那么可见要想利用java反射机制做一些事,那么就要利用Class对象,所以说Class对象是反射的前提。 那么,怎么获取Class对象?...java中有三种方式获取Class对象: 类名.class 对象名.gerClass Class.forName("全限定名(包名 + 类名)"); ?
如果JAVA中网络编程只提供了BIO和NIO两种方式,所以一切框架中,涉及到网络处理的,都可以用这两个知识点去探究原理。万丈高楼平地起,盖房子都是从下往上的,学习知识也是一样。
本文参考https://blog.csdn.net/s10461/article/details/53941091 泛型概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用...: java.lang.Integer cannot be cast to java.lang.String ArrayList可以存放任意类型,例子中添加了一个String类型,添加了一个Integer...也就是说Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。...be applied to Generic // showKeyValue(gInteger); 。...泛型方法 在java中,泛型类的定义非常简单,但是泛型方法就比较复杂了。
本博客 猫叔的博客,转载请申明出处 视频教程 Java猫说-多线程教程001 前言 本系列将由浅入深,学习Java并发多线程。 一图读懂线程与进程 1、一个进程可以包含一个或多个线程。...不是进程) 7、由此,线程需要一个程序计数器记录当前线程要执行的指令地址 8、当CPU的时间片用完,让出后记录当前执行地址,下次继续执行(时间片轮询) 9、只有执行Java代码时pc技数器记录的才是下一条指令的地址
下面是我的译文: Java泛型中的通配符机制的目的是:让一个持有特定类型(比如A类型)的集合能够强制转换为持有A的子类或父类型的集合,这篇文章将解释这个是如何做的。
在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口。...加载阶段完成后,虚拟机外部的二进制字节流就按照虚拟机所需的格式存储在方法区之中,而且在Java堆中也创建一个java.lang.Class类的对象,这样便可以通过该对象访问方法区中的这些数据。...元数据验证:对字节码描述的信息进行语义分析(注意:对比javac编译阶段的语义分析),以保证其描述的信息符合Java语言规范的要求;例如:这个类是否有父类,除了java.lang.Object之外。...虚拟机启动时被标明为启动类的类(Java Test),直接使用java.exe命令来运行某个主类 结束生命周期 在如下几种情况下,Java虚拟机将结束生命周期 执行了System.exit()方法 程序正常执行结束...启动类加载器是无法被Java程序直接引用的。
领取专属 10元无门槛券
手把手带您无忧上云