随笔分类 -  java

摘要:demo: public class T1 { volatile int n = 0; public void add() { n++; } } Compiled from "T1.java" public class com.shishi.jmm.T1 { volatile int n; publ 阅读全文
posted @ 2021-06-18 00:27 圣金巫灵 阅读(54) 评论(0) 推荐(0)
摘要:demo: public class ThreadPoolExecutorTest { public static void main(String[] args) { Thread t = new Thread(() -> System.out.println("start...")); Thre 阅读全文
posted @ 2021-06-17 19:34 圣金巫灵 阅读(52) 评论(0) 推荐(0)
摘要:Demo: public class FutureTaskTest { public static void main(String[] args) throws Exception{ // 1. 使用线程 FutureTask task1 = new FutureTask(()-> { retur 阅读全文
posted @ 2021-06-17 17:54 圣金巫灵 阅读(47) 评论(0) 推荐(0)
摘要:Phaser是CountDownLatch和CyclicBarrier的升级版: demo: public class PhaserTest { public static void main(String[] args) { // 三个部分 int parties = 3; // 四个阶段 int 阅读全文
posted @ 2021-06-17 17:24 圣金巫灵 阅读(252) 评论(0) 推荐(0)
摘要:所有的线程必须同时到达栅栏位置,才能继续执行。栅栏用于等待其他线程。 CyclicBarrier可以使一定数量的线程反复地在栅栏位置处汇集。当线程到达栅栏位置时将调用await方法,这个方法将阻塞直到所有线程都到达栅栏位置。如果所有线程都到达栅栏位置,那么栅栏将打开,此时所有的线程都将被释放,而栅栏 阅读全文
posted @ 2021-06-17 16:52 圣金巫灵 阅读(105) 评论(0) 推荐(0)
摘要:使用: /** * 测试同时启动多个线程 * 这里调用t.start不会立刻启动,会等到CountDownLatch域值为零才启动,所以10个线程全部是await状态。等for循环执行到最后一次后,才同时start * */ public class LockTest { public static 阅读全文
posted @ 2021-06-17 15:07 圣金巫灵 阅读(56) 评论(0) 推荐(0)
摘要:wait和notify 等待和唤醒 , 需要包围在synchronized里,当获取到同一把锁,notify就能唤醒wait 1. wait和notify使用: 当只调用wait,不调用notify, public class TestWaitNotify { public static void 阅读全文
posted @ 2021-06-17 04:11 圣金巫灵 阅读(59) 评论(0) 推荐(0)
摘要:Stream API (java.util.stream) 简介: Stream是真正将函数式编程风格引入到java中。 集合讲的是数据,Stream讲的是计算。 stream自己不会储存元素;stream不会改变源对象;stream操作是延时的,会等到需要结果时才执行。 Stream的三个步骤: 阅读全文
posted @ 2021-06-16 00:54 圣金巫灵 阅读(63) 评论(0) 推荐(0)
摘要:1. 构造器引用 demo1: public class ConstructorRefTest { public static void main(String[] args) { // lambda Supplier<Person> supplier = ()-> new Person(); // 阅读全文
posted @ 2021-06-15 22:09 圣金巫灵 阅读(52) 评论(0) 推荐(0)
摘要:方法方法引用的使用要求:要求接口中的抽象方法的形参列表和返回值类型与 方法引用中的方法的形参列表和返回值类型相同(针对情况1,情况2) 情况1 对象::非静态方法 情况2 类::静态方法 情况3 类::非静态方法 情况1: public class MethodReferenceTest { pub 阅读全文
posted @ 2021-06-15 21:56 圣金巫灵 阅读(108) 评论(0) 推荐(0)
摘要:java内置的4大核心函数式接口: 消费型接口 Consumer<T> void accept(T t) 供给型接口 Supplier<T> T get() 函数型接口 Function<T, R> R apply(T t) 断定型接口 Predicate<T> boolean test(T t) 阅读全文
posted @ 2021-06-15 21:23 圣金巫灵 阅读(235) 评论(0) 推荐(0)
摘要:集合: 1. PriorityBlockingQueue 是带优先级的无界的阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现。 import java.util.concurrent.PriorityBlockingQueue; public class PriorityBlockin 阅读全文
posted @ 2021-06-12 15:01 圣金巫灵 阅读(52) 评论(0) 推荐(0)
摘要:使用lombok自动生成get/set方法,简洁代码: 1. 安装插件 2 导入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> 阅读全文
posted @ 2020-11-18 10:46 圣金巫灵 阅读(84) 评论(0) 推荐(0)
摘要:父类: public class Parent { //看这里的this指的是什么 public Parent() { this.say(); } protected void say() { System.out.println("father"); } } 子类: public class Su 阅读全文
posted @ 2020-11-17 23:31 圣金巫灵 阅读(87) 评论(0) 推荐(0)
摘要:1. Proxy.newProxyInstance方法: public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgum 阅读全文
posted @ 2020-11-16 21:23 圣金巫灵 阅读(145) 评论(0) 推荐(0)
摘要:* lambda使用条件: * 1.使用lambda需要有接口,并且接口只有一个抽象方法。 * 2.必须要有上下文环境,才能推导出类型。 * * * lambda和匿名内部类区别: * 所需类型不同 * 匿名内部类:可以是接口,也可以是抽象类,还可以是具体类 * Lambda表达式:只能是接口 * 阅读全文
posted @ 2020-11-16 15:04 圣金巫灵 阅读(156) 评论(0) 推荐(0)
摘要:步骤: 1. 需要一个接口 2. 一个被代理的实现类 (实现步骤1的接口) 3. 实现InvocationHandler 代码: UserService: public interface UserService { public void saveUser(); } UserServiceImpl 阅读全文
posted @ 2020-11-14 22:54 圣金巫灵 阅读(86) 评论(0) 推荐(0)
摘要:Java是面向对象的语言,一切皆对象,所以java认为 这些编译后的 class文件,这种事物也是一种对象,它也给抽象成了一种类,这个类就是Class Class类: 能获取类的全部信息,包括它本身的方法,构造方法, 成员变量,成员函数。 class.getDeclaredXXX : 不区分访问修饰 阅读全文
posted @ 2020-11-01 22:14 圣金巫灵 阅读(75) 评论(0) 推荐(0)
摘要:转-http://www.cnblogs.com/shijiaqi1066/p/3753224.html 1. URLConnection概述 URLConnection是一个抽象类,表示指向URL指定资源的活动连接。 URLConnection类本身依赖于Socket类实现网络连接。一般认为,UR 阅读全文
posted @ 2019-04-29 10:24 圣金巫灵 阅读(302) 评论(0) 推荐(0)
摘要:package com.yucheng.connection; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import j... 阅读全文
posted @ 2019-04-29 09:46 圣金巫灵 阅读(223) 评论(0) 推荐(0)