
Java
琴 韵
Anything is possibole! 知识创造价值
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java【有与无】【规范】项目命名规范
目录1、项目名2、包名3、类名、接口名4、方法名5、变量名5.1 普通变量名5.2 常量名(静态变量名)6、属性文件properties7、数据库命名:8、注释规范8.1、类注释8.2、属性注释8.3、方法注释8.4、构造方法注释8.5、方法内部注释A.参考1、项目名全部小写,多个字母中间可以用 “-” 。如:workde...原创 2019-09-20 09:43:57 · 557 阅读 · 0 评论 -
Java 并发【参考】A01.volatile
1.volatile思维导图2.参考场景2.1.单例模式这里借用hutool的部分源码/** * 转换器登记中心 * <p> * 将各种类型Convert对象放入登记中心,通过convert方法查找目标类型对应的转换器,将被转换对象转换之。 * </p */public class ConverterRegistry implements Serializable { private static final long serialVersionUID原创 2021-11-01 10:33:38 · 130 阅读 · 0 评论 -
Java【有与无】【参考】线程同步与锁
1.Synchronized【隐式锁】Java 内部使用monitor也叫做监控锁或者内部锁来管理同步。这个monitor是绑定到对象上的。例如多线程调用同一个同步过的方法,这些方法的monitor都是同一个,而这个monitor是属于某个对象的。所有隐式monitor都是想了可重入特性。可重入的意思是:锁是绑定到当前线程的,一个线程可以多次安全的获取到同一个锁而不会进入死锁。private int count = 0;// 线程不安全private void increment() .原创 2020-08-20 17:11:49 · 190 阅读 · 1 评论 -
Java8【有与无】【F2】文件操作
1.文件操作文件路径为绝对路径1.1.按字节读取文件byte[] contentBytes = Files.readAllBytes(Paths.get(fileName));Files.write(Paths.get(fileName_target), contentBytes, StandardOpenOption.CREATE);1.2.按行读取文件List<String> contentLines = Files.lines(Paths.get(fileN.原创 2020-08-20 11:21:08 · 295 阅读 · 0 评论 -
Java【有与无】【解释】package-info.java
1.简介package-info.java是一个Java文件,可以放到任意Java源码包下执行。主要目的是为了提供包级别相关的操作,比如包级别的注解、注释及公共变量。2.作用范围2.1.提供包级别的注解@Target(ElementType.PACKAGE)@Retention(RetentionPolicy.RUNTIME)public @interface XXX {}// package-info.java@XXX@Deprecated // 标记包过期pac.原创 2020-08-11 16:32:22 · 590 阅读 · 0 评论 -
Java【有与无】【问题】split保留后面空值
去除后面的空值String test = "$$$$";test.split("\\$");保留后面的空值String test = "$$$$";test.split("\\$", -1);原创 2020-07-15 14:29:10 · 598 阅读 · 0 评论 -
Java【有与无】【问题】split以“.“ 、“\“、“|”分隔异常
存在问题String goodsStr="测试1|测试2";String[] goodList = goodsStr.split("|");解决问题String goodsStr="测试1|测试2";String[] goodList = goodsStr.split("\\|");原创 2020-07-15 14:26:30 · 168 阅读 · 0 评论 -
Java【有与无】【优化】【F1】StringBuilder can be replaced with String
StringBuilder说明StringBuilder是为了避免字符串拼接过程中产生很多不必要的字符串对象。经过编译器优化,多个字符串相‘+’,优化后,与StringBuilder等价附录参考:https://github.com/alibaba/p3c之 阿里巴巴 Java 开发手册...原创 2020-07-02 15:36:11 · 1213 阅读 · 0 评论 -
Java【有与无】【参考】【效率】集合遍历
List方式方式一public static void test1(List<String> list) { for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }}方式二public static void test2(List<Strin...原创 2019-12-03 16:17:18 · 144 阅读 · 0 评论 -
Java【有与无】【参考】线程池的使用
目录1.newCachedThreadPool2.newFixedThreadPool3.newScheduledThreadPool4.newSingleThreadExecutor参考Java通过Executors提供四种线程池:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 n...原创 2019-11-22 18:11:38 · 238 阅读 · 0 评论 -
java【参考】手机号身份证号脱敏
String phoneNumber = String.valueOf("18866666666").replace("null", "");phoneNumber = phoneNumber.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");System.out.println(phoneNumber);String identityCar...原创 2019-10-29 09:24:41 · 1165 阅读 · 0 评论 -
Java【有与无】【F2】AQS 共享锁的实现
目录1.简介2.信号量-Semaphore2.1.Semaphore共享锁的使用2.2.Semaphore实现互斥锁2.3.Semaphore实现共享锁2.3.1.内部原理2.3.2.非公平锁中的共享锁2.3.3.公平锁中的共享锁2.3.4.小结转载 2019-08-19 19:50:22 · 235 阅读 · 0 评论 -
Java【有与无】【F2】Java类加载器(ClassLoader)
目录1.类加载的机制的层次结构2.双亲委派模式2.1.工作原理2.2.优势2.2.1.ClassLoader2.2.2.SercureClassLoader2.2.3.拓展类加载器ExtClassLoader和系统类加载器AppClassLoader2.3.类加载器间的关系3.类与类加载器3.1.类与类加载器3.2.class文件的显示加载与隐式加载...转载 2019-08-23 10:47:59 · 220 阅读 · 0 评论 -
Java【有与无】【F2】注解类型
目录1.理解Java注解2.基本语法2.1.声明注解与元注解2.2.注解元素及其数据类型2.3.编译器对默认值的限制2.4.注解不支持继承2.5.快捷方式(value)2.6.Java内置注解与其它元注解3.注解与反射机制4.运行时注解处理器5.Java 8中注解增强5.1.元注解@Repeatable5.2.新增的两种ElementType...转载 2019-08-22 20:30:05 · 301 阅读 · 0 评论 -
Java【有与无】【F2】进制转换
1.简介常用的进制包括:二进制、八进制、十进制与十六进制2.进制转换2.1.十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。2.2.二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。2.3.二进制转八进制方法为:3位...原创 2019-08-21 15:59:42 · 521 阅读 · 0 评论 -
Java【有与无】【F2】位运算
位运算原创 2019-08-21 15:50:17 · 304 阅读 · 0 评论 -
Java【有与无】【F2】枚举类型
枚举类型转载 2019-08-21 16:15:28 · 363 阅读 · 0 评论 -
Java【有与无】【F2】类型信息(Class对象)与反射机制
目录1.Class对象1.1.RRTI(Run-Time Type Identification)运行时类型识别1.2.Class对象作用1.3.Class对象的加载1.3.1.Class.forName方法1.3.2.Class字面常量1.3.3.泛化的Class对象引用1.3.4.类型转换1.3.5.instanceof 关键字与isInstance方法...转载 2019-08-21 10:43:38 · 304 阅读 · 0 评论 -
Java【有与无】【F2】AQS ReetrantLock 和 Condition
目录1.概念2.Lock接口3.重入锁ReetrantLock4.AQS工作原理概要5.ReetrantLock中非公平锁实现过程6.ReetrantLock中公平锁实现过程7.synchronized 与ReentrantLock8.Condition8.1.Condition接口8.2.Condition的使用案例-生产者消费者模式8.3.Condi...转载 2019-08-18 14:22:21 · 212 阅读 · 0 评论 -
Java【有与无】【F2】无锁并发CAS及应用
无锁并发CAS及应用java.util.concurrent.atomic原创 2019-08-15 16:47:20 · 228 阅读 · 0 评论 -
Java8【有与无】【F1】日期时间 API(一站式服务)
1.简介包java.time涵盖了所有处理日期(date),时间(time),日期/时间(datetime),时区(zone),时刻(instant),间隔(duration)与时钟(clock)的操作。2.使用方式日期(年月日)java.time.LocalDate 时间(时分秒)java.time.LocalTime 日期时间(年月日时分秒)java.time.Lo...原创 2019-04-26 13:35:37 · 348 阅读 · 0 评论 -
Java8【有与无】【F1】接口默认方法(灵活调整接口与实现类之间的变化)
1.简介接口可以有实现方法,不需要实现类去实现其方法目的:为了解决接口的修改与现有的实现不兼容的问题关键字 default 在接口中的方法返回值前使用2.使用方式public interface TestFunction<T> { void fun(T t); //默认方法 default String getUpperC...原创 2019-04-26 16:35:41 · 396 阅读 · 0 评论 -
Java8【有与无】【F1】Lambda表达式(高效的并行操作)
1.背景语言层面上,让代码在多核 CPU 上高效处理批量数据的并行类库。2.定义函数式编程:使用不可变值和函数,函数对一个值进行处理,映射成另一个值。它是对行为进行抽象,相对于面向对象的编程方式,它具有更高的性能/效率,线程更安全。Lambda表达式: 一种紧凑的、传递行为的方式,高效并行,简化开发Lambda表达式能够方便、快捷地创建出这种函数式接口的实例操作符参数...原创 2019-04-26 18:00:16 · 351 阅读 · 0 评论 -
Java8【有与无】【F1】Base64(标准的编码器和解码器)
1.简介Base64是一种非常常用的二进制编解码方案。编解码方法简单且公开,并不具有加密解密的效用。只作为一种二进制数据的文本存储格式。包:java.util.Base64静态64种编码类型:基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/。 URL:输出映射到一组字符A-Za-z0-9+_,输出是URL和文件。...原创 2019-04-28 10:12:29 · 531 阅读 · 0 评论 -
Java8【有与无】【F1】Optional (解决null安全问题)
问题:java.lang.NullPointerException解决:Java 8中提供了一个容器类java.util.Optional<T>代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。避免空指针异常。常用方法:Optional.of(T t) : 创建一个 Optional 实例 Opti...原创 2019-04-25 11:04:57 · 233 阅读 · 0 评论 -
Java8【有与无】【F1】Stream API (高效计算)
序流式计算 链式编程1.包位置java.util.stream2.简介概要: 集合/序列的流式高效计算;描述: 一个数据渠道,用于操作数据源(集合、数组等)所生成的元素序列; 一种高效且易于使用的处理数据的方式//直观对比List<Integer> list = Arrays.asList(2, 3, 5, 4, 1, 8, 10, ...原创 2019-04-25 16:49:58 · 248 阅读 · 0 评论 -
Java8【有与无】参考表
表C-1-1 Java 8中的常用函数式接口 函数式接口 函数描述符 原始类型特化 Predicate<T> T->boolean IntPredicate,LongPredicate, DoublePredicate Consumer<T> T->void IntConsumer,LongConsumer, Do...原创 2019-06-12 09:07:46 · 198 阅读 · 0 评论 -
Java8【有与无】【精华篇】实用通识
序:本篇内容较多,排版有些乱,希望大家理解目录关键词行为参数化方法引用流Stream/parallelStream【构建器模式】分支步骤默认方法(结构)模式匹配【不完全支持】行为参数化【工厂模式】Lambda表达式收集器【静态工厂Collectors】【工厂方法】并行处理分支/合并框架重构、测试和调试默认方法Optiona...原创 2019-06-12 09:10:53 · 1367 阅读 · 1 评论 -
Java8【参考】Future模式之CompletableFuture
转载:https://www.liangzl.com/get-article-detail-97192.htmlCompletableFuture 是Java 8 新增加的Api,该类实现,Future和CompletionStage两个接口,提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,提供了函数式编程的能力,可以通过回调的方式处理计算结果,并且提供了转换和组合C...转载 2019-06-12 17:33:45 · 758 阅读 · 0 评论 -
Java【有与无】【F2】集合篇
1.简介List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问。Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。2.List接口1)ArrayList动态数组,允许任何符合规则的元素插入甚至包括nu...原创 2019-06-18 19:42:34 · 248 阅读 · 0 评论 -
Java【有与无】【Java8以后】番外篇
Java8以后Java SE 的发布周期提高至每六个月一次 简化 Java SE 的使用 从 JDK 9 GA 开始,在 GPL 协议下推送 OpenJDK 版本 Java SE 采用时间驱动模式更新,而不再是功能驱动模式; 逐步开放 Oracle JDK 的商业特性到 OpenJDK,如 Java Flight Recorder ; ...原创 2019-06-18 20:42:36 · 874 阅读 · 0 评论 -
Java9【有与无】简介
Java9 发布于 2017 年 9 月 22 日F:\java-version\jdk-9\bin>java -versionopenjdk version "9"OpenJDK Runtime Environment (build 9+181)OpenJDK 64-Bit Server VM (build 9+181, mixed mode)参考文档参考...原创 2019-06-21 10:01:33 · 172 阅读 · 0 评论 -
Java【有与无】【工具】获取CLASSPATH路径
1.this.getClass().getResource("") 得到的是当前类class文件的URI目录。不包括自己!如:file:/D:/workspace/jbpmtest3/bin/com/test/2.this.getClass().getResource("/")得到的是当前的classpath的绝对URI路径 。如:file:/D:/workspace/jbpmtes...原创 2019-07-18 11:22:38 · 210 阅读 · 0 评论 -
Java【有与无】【F2】Synchronized
Synchronized原创 2019-08-08 19:00:03 · 242 阅读 · 0 评论 -
Java【有与无】【F2】内存区域与内存模型
目录1.内存区域1.1.方法区(Method Area)1.2.JVM堆(Java Virtual Machine Heap)1.3.程序计数器(Program Counter Register)1.4.JVM栈(Java Virtual Machine Stacks)1.4.1.局部变量表(Local Variable Table)1.4.2.操作数栈/操作栈(Ope...原创 2019-08-15 11:02:20 · 244 阅读 · 0 评论 -
Java【有与无】【F2】阻塞队列
AQS 并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue转载 2019-08-20 19:45:12 · 274 阅读 · 0 评论 -
Java8【有与无】【F1】方法引用 (简化开发)
1.简介引用其他事物为已用,类似于吸星大法。实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致,返回值可有可无。符号 ::说明:左边是类名或者某个对象的引用,右边是方法名或者是“new”(构造器引用时用到)Consumer<String> consumer = str -> System.out.println(str);consumer.a...原创 2019-04-26 11:14:51 · 250 阅读 · 0 评论