【JavaSE编程案例系列(9~100)——等待唤醒机制(单例模型)】教程文章相关的互联网学习教程文章

Java高级系列——枚举(Enums)

一、介绍 枚举的思想很简单,也很方便:它代表了一组固定的常量值。实际开发应用中,枚举经常用来设计一些状态常量。 比如,星期几就是枚举的一个最好例子,因为他们被限制在周一、周二、周三、周四、周五、 周六和周日。 二、枚举是一种特殊的类 在枚举被引入Java语言之前,在Java中模拟一组固定值的常规方法是通过声明一组常量。例如:public class DaysOfTheWeekConstants { ? ? public static final int MONDAY = 0; ? ? publi...

Java集合系列之LinkedList底层实现原理【图】

Java中的LinkedList类实现了List接口和Deque接口,是一种链表类型的数据结构,支持高效的插入和删除操作,同时也实现了Deque接口,使得LinkedList类也具有队列的特性。LinkedList类的底层实现的数据结构是一个双端的链表。 LinkedList类中有一个内部私有类Node,这个类就代表双端链表的节点Node。这个类有三个属性,分别是前驱节点,本节点的值,后继结点。 源码中的实现是这样的。private static class Node<E> {E item;Node<E> n...

【JAVA零基础入门系列】Day4 变量与常量

这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量。那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里。那么,我们为什么要使用盒子呢?主要用于存放程序运行过程中需要临时存取和操作的数据,打个比方,我们做一顿番茄炒蛋,需要先把番茄洗一洗,然后切好放碗里,鸡蛋打好后要先放另一个碗里,然后加上料酒,加水搅拌,之后再...

面试系列-Java面试总则

Java基础1、Map、Set、List集合差别及联系详解 2、HashSet类是如何实现添加元素保证不重复的 3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4、HashMap 的扩容过程 5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的? 6、final finally finalize 7、强引用 、软引用、 弱引用、虚引用 8、Java反射 Java 并发 1、synchronized 的实现原理以及锁优化? 2、volatile 的实现...

Java基础系列-Comparable和Comparator

原创文章,转载请标注出处:[《Java基础系列-Comparable和Comparator》](https://www.jianshu.com/p/f9870fd05958## 一、概述 Java中的排序是由Comparable和Comparator这两个接口来提供的。 Comparable表示可被排序的,实现该接口的类的对象自动拥有排序功能。 Comparator则表示一个比较器,实现了该接口的的类的对象是一个针对目标类的对象定义的比较器,一般情况,这个比较器将作为一个参数进行传递。 二...

java 11 增加了一系列的字符串处理方法,Optional 加强 ,改进的文件API

增加了一系列的字符串处理方法 如以下所示。 // 判断字符串是否为空白 " ".isBlank(); // true // 去除首尾空白 " Javastack ".strip(); // "Javastack" // 去除尾部空格 " Javastack ".stripTrailing(); // " Javastack" // 去除首部空格 " Javastack ".stripLeading(); // "Javastack " // 复制字符串 "Java".repeat(3);// "JavaJavaJava" // 行数统计 "A\nB\nC".lines().count(); // 3 例子: import static org.junit.Assert.*...

java反射系列八之AOP【代码】【图】

package AOP;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;interface Human{void info();void fly(); }class SuperMan implements Human{@Overridepublic void info() {System.out.println("我是超人");}public void fly() {System.out.println("I believe that I can fly!");} }class HumanUtil{public void method1() {System.out.println("=====方法一======...

java反射系列六之调用属性与方法【代码】【图】

调用指定属性package reflect;import java.lang.reflect.Field; import java.lang.reflect.Modifier;public class TestFiled {public static void main(String[] args) throws Exception {TestFiled t = new TestFiled();t.test3();}//调用运行时类中的指定的属性public void test3() throws Exception {Class clazz = Person.class;//1.获取指定的属性//getField(String fieldName):获取运行时类中声明为public的指定属性名为name...

java反射系列五之获取类的完整结构【代码】【图】

代码示例 Person类package reflect;@MyAnnotation(value = "guozi") public class Person extends Creature<String> implements Comparable,MyInterface{public String name;private int age;public Person() {super();// TODO Auto-generated constructor stub}public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.na...

Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例【代码】【图】

概要这一章,我们对WeakHashMap进行学习。我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。第1部分 WeakHashMap介绍第2部分 WeakHashMap数据结构第3部分 WeakHashMap源码解析(基于JDK1.6.0_45)第4部分 WeakHashMap遍历方式第5部分 WeakHashMap示例 第1部分 WeakHashMap介绍 WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。和HashMap一样,WeakHashMap 也是一个散列表...

JavaSE编程案例系列(9~100)——等待唤醒机制(单例模型)【代码】【图】

实现下列案例 多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。通过一定的手段使各个线程能有效的利用资源。而这种手段即—— 等待唤醒机制。如上图说示,输入线程向Resource中输入name ,sex , 输出线程从资源中输出,先要完成的任务是:当input发现Resource中没有数据时,开始输入,输入完成后,叫output来输出。如果发现有数据,就wait(); 当output发现Resource中没有数据时,就wait() ;当发现有数据时,就输...

JavaSE的IO流系列教程(4-4)——FileUtils工具类和Properties类【代码】【图】

摘要: 您好!当您打开此文件时,意味着你再IO流知识上出现了欠缺。如果你想仔细学习一下JavaSE的IO流部分知识,可以仔细阅读下面的知识点。 本文为系列文章的第四篇: 第一篇:JavaSE的IO流系列教程(1-4)—— File类的创建文件和获取文件目录 第二篇:JavaSE的IO流系列教程(2-4)——OutputStream类和InputStream类 第三篇:JavaSE的IO流系列教程(3-4)——BufferedStream类和BufferedReader类文章目录摘要:引言:FileUtils工具类的...

Java并发编程系列(一)-线程的基本使用【代码】【图】

最近在学习java并发编程基础.一切从简,以能理解概念为主. 并发编程肯定绕不过线程.这是最基础的. 那么就从在java中,如何使用线程开始. 继承Thread类 继承Thread类,重写run方法,new出对象,调用start方法. 在新启的线程里运行的就是重写的run方法. 1 /**2 * 集成Thread类 实现run()3 */4 public class C1 extends Thread {5 6 @Override7 public void run() {8 try {9 Thread.sleep(100); 10 ...

Java NIO系列教程(八) SocketChannel【代码】

Java NIO系列教程(八) SocketChannel Java NIO 中的 SocketChannel 是一个连接到 TCP 网络套接字的通道。可以通过以下 2 种方式创建 SocketChannel:打开一个 SocketChannel 并连接到互联网上的某台服务器。 一个新连接到达 ServerSocketChannel 时,会创建一个 SocketChannel。一、打开 SocketChannel 下面是 SocketChannel 的打开方式: SocketChannel socketChannel = SocketChannel.open(); socketChannel.connect(new InetS...

Java NIO系列教程(九) ServerSocketChannel【代码】

Java NIO系列教程(九) ServerSocketChannel Java NIO 中的 ServerSocketChannel 是一个可以监听新进来的 TCP 连接的通道, 就像标准 IO 中的 ServerSocket 一样。ServerSocketChannel 类在 java.nio.channels 包中。 这里有个例子: ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); serverSocketChannel.socket().bind(new InetSocketAddress(9999));while(true){SocketChannel socketChannel = serverSo...