Java
文章平均质量分 78
Java是Sun公司推出的能够跨越多平台的、可移植性最高的一种面向对象的编程语言,也是目前最先进、特征最丰富、功能最强大的计算机语言。利用Java可以编写桌面应用程序、Web应用程序、分布式系统应用程序、嵌入式系统应用程序等,从而使其成为应用最广泛的开发语言。
_子栖_
这个作者很懒,什么都没留下…
展开
-
ReentrantLock源码
AQS源码 ReentrantLock原创 2023-08-04 14:57:39 · 248 阅读 · 0 评论 -
死磕 Java8 新特性,17 种日期处理方式!
java8 日期新特性原创 2022-09-26 12:17:05 · 3281 阅读 · 0 评论 -
Canal
1、什么是canalCanal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前。Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得的相关数据。(数据库同步需要阿里的 Otter 中间件,基于 Canal)。2、什么是BinlogMySql 的二进制文件......原创 2022-04-03 17:38:12 · 5367 阅读 · 0 评论 -
Effective Java
第一条 用静态工厂方法代替构造器类可以提供一个公有的 静态工厂方法 ,它只是一个返回类的实例的静态方法。下面是一个来自 Boolean 的简单实例:这个方法将 boolean基本类型转化成 Boolean 包装类型 public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); public static Bo.原创 2022-01-12 15:38:03 · 2643 阅读 · 0 评论 -
正则表达式
正则表达式1、正则表达式简介为什么需要正则表达式?文本的复杂处理正则表达式的优势和用途?一种强大而灵活的文本处理工具大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式正则表达式定义:正如他的名字一样式描述了一个规则,通过这个规则可以匹配一类字符串。学习正则表达式很大程度上就是学习正则表达式的语法规则正则表达式语法普通字符字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是==“普通字符”==。表达式中的普通字符,在匹配一个字符串的时候,匹配与原创 2021-04-23 17:08:16 · 303 阅读 · 0 评论 -
动态代理
动态代理1. JDK动态代理JDK 动态代理主要涉及到java.lang.reflect 包中的两个类: Proxy 和 InvocationHandler。InvocationHandler是一个接口,通过实现该接口的定义的横切逻辑,并通过反射机制调用目标类的代码,动态的将横切和业务逻辑编制在一起。Proxy 利用 InvocationHandler 动态创建一个符合某一接口的实例,生成目标类的代理对象。编码实现package com.yao.proxy;//1.编写原始接口publi原创 2020-10-14 19:17:42 · 116 阅读 · 0 评论 -
剑指高效编程之线程池
线程池import org.junit.Test;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class ThreadVs { /** * 原始处理方式 */ @Test public void oldHandle(){原创 2021-04-14 16:57:33 · 62 阅读 · 0 评论 -
剑指高效编程之工具类
工具类Google Guava 工具集简介Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如∶集合、缓存﹑原生类型支持、并发库、通用注解、字符串处理、I/O等等。所有这些工具每天都在被Google的工程师应用在产品服务中。使用和避免null在大多数情况下,使用null表名的是某种缺失情况。Guava引入Optional表明可能为null的T类型引用。Optional实例可能包含非null的引用(引用存在),也可能什么也不包括(引用缺失)。正是受到Guava的启发原创 2021-04-14 12:03:38 · 96 阅读 · 0 评论 -
剑指高效编程之资源关闭
资源关闭原始关闭流操作public void fileHandle2(String url,FileConsumer fileConsumer){ BufferedReader bufferedReader = null; InputStreamReader inputStreamReader = null; FileInputStream fileInputStream = null; //创建文件读取流 try {原创 2021-04-13 15:26:18 · 134 阅读 · 0 评论 -
剑指高效编程之流编程
流编程实战案例:集合与流操作对比分别使用集合操作及Stream流操作,完成对实际应用场景中数据处理。直观感受流操作带来的便捷性需求:1.想看看购物车里有什么商品2.图书类都给买3.其余商品中买两件最贵的4.只需要两件商品的名称和总价传统操作/** * 以最原始的集合操作实现以上的需求 */ @Test public void oldCartHandle(){ /** * 1.打印所有商品 */原创 2021-04-12 17:44:18 · 131 阅读 · 0 评论 -
剑指高效编程之函数编程
函数编程购物车案例创建下单商品类/** * 下单商品信息对象 */@Data@AllArgsConstructor@NoArgsConstructorpublic class Sku { //编号 private Integer skuId; //名称 private String skuName; //单价 private Double skuPrice; //购买个数 private Integer totalNum;原创 2021-04-12 17:40:53 · 120 阅读 · 0 评论 -
乐观锁、悲观锁、自旋锁、Synchronized 同步锁
乐观锁、悲观锁、自旋锁、Synchronized 同步锁乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读取当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新)java中的乐观锁基本都是通过CAS操作实现的,CAS是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。悲观锁悲观锁就是一种悲观思想,即认为写多读少,遇到并发的可原创 2020-10-14 10:41:09 · 690 阅读 · 0 评论 -
Java-IO流
IO流File类的理解File类的一个对象,代表一个文件或一个文件目录(文件夹)File类声明在java.io包下File中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法。后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的终点。常用的构造器File(String filePath)File(String parentPath,String childPath)File(File parentFile,String childPath)路径原创 2020-11-06 20:55:57 · 101 阅读 · 0 评论 -
JUC 并发编程
JUC 并发编程1、什么是JUCjava.util 工具包、包、分类2、线程和进程线程和进程,如果不能使用一句话说出来的技术,就是不扎实!进程:一个程序,QQ.exe一个进程往往包含多个多个线程java默认有几个线程? 2个 main线程,GC线程线程:程序执行的最小单元java真的能开启线程吗? 开不了只能通过调用本地方法,java无法直接操作硬件并发、并行并发编程:并发、并行并发(多线程操作同一资源)并行(多个人一起行走),多个线程可以同时执行 线程池并原创 2020-12-15 16:18:01 · 670 阅读 · 0 评论 -
Java-枚举
枚举枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。声明枚举声明枚举时必须使用 enum 关键字,然后定义枚举的名称、可访问性、基础类型和成员等。枚举声明的语法如下:enum-mod原创 2020-11-30 13:52:22 · 167 阅读 · 0 评论