JAVA基础
chenwch
北漂一族
展开
-
CAS
CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术。CAS也是现在面试经常问的问题,本文将深入的介绍CAS的原理。CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,原创 2021-03-30 10:02:49 · 424 阅读 · 1 评论 -
斐波那契数列-迭代及递归算法实现
斐波那契数列: 1、1、2、3、5、8、13......即 前两位相加之和,使用迭代算法和递归算法都可以实现斐波那契数列,输出数列中的第N项递归算法:递归在计算时存在着大量的重复计算,所以在N值很大时,可能会造成内存的溢出,以及计算时间较长的情况出现public static int Fibonacci(int i) { if(i <= 0) { return 0; } if(i == 1 || i == 2) { return 1; } ret...原创 2021-03-29 09:57:20 · 1895 阅读 · 0 评论 -
什么是HikariCP?HikariCP介绍(包含配置示例)
什么是连接池数据库连接池负责分配、管理和释放数据库的连接。数据库连接复用:重复使用现有的数据库长连接,可以避免连接频繁建立、关闭的开销。 统一的连接管理:释放空闲时间超过最大空闲时间的数据库连接,避免因为没有释放数据库连接而引起的数据库连接泄漏。什么是HikariCPHikariCP 是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。其作者还有产出了另外一个开源作品HikariJSON——高性能的JSON解析器原创 2020-11-06 17:11:12 · 27242 阅读 · 3 评论 -
AtomicReference原子引用
说明AtomicReference是作用是对”对象”进行原子操作。提供了一种读和写都是原子性的对象引用变量。原子意味着多个线程试图改变同一个AtomicReference(例如比较和交换操作)将不会使得AtomicReference处于不一致的状态。AtomicReference和AtomicInteger非常类似,不同之处就在于AtomicInteger是对整数的封装,底层采用的是c...原创 2019-05-07 17:51:59 · 3077 阅读 · 0 评论 -
线程安全之AtomicBoolean
说明AtomicBoolean这个类,他是线程安全的,它的compareAndSet方法是利用CAS来实现线程安全的。方法public final boolean compareAndSet(boolean expect, boolean update) { int e = expect ? 1 : 0; int u = update ? 1 : 0; re...原创 2019-05-07 17:26:20 · 5033 阅读 · 0 评论 -
在java中String类为什么要设计成final?
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平!1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl",不是在原内存地址上修改数据,而是重新指向一个...转载 2019-03-28 20:09:28 · 123 阅读 · 0 评论 -
位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:A = 0011 1100B = 0000 1101-----------------A&b = 0000 1100A | B = 0...原创 2019-03-14 17:18:41 · 127 阅读 · 0 评论 -
jdk1.8 List 去重
元素去重import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class DistinctSimpleDemo { public static void main(String[] args) { List<String> li...转载 2018-12-11 14:34:42 · 9028 阅读 · 0 评论 -
字符串与整数之间的转换
最近经常用到字符串与整数之间的转换,整理了一下,包含1、检验是否为整数2、字符串转为整数3、从字符串中提取数字直接上代码: /** * 检查是否为INT类型,已经对空进行处理 */ public static boolean isInt(String str){ return GenericValidator.isInt(str);原创 2018-01-05 16:03:28 · 648 阅读 · 0 评论 -
Java中的static关键字个人看法总结
static概括:方便在没有创建对象的情况下来进行调用方法/变量,而非static的变量和方法,只有实例存在才存在。没有this的方法,因为静态方法不依赖于任何对象就可以进行访问。在static方法内部不能调用非静态方法,反之可以,因为没有this,所以在静态方法中不能访问类的非静态成员变量和非静态成员方法。可以在没有创建任何对象的前提下,通过类本身来调用static方法,因为被sta原创 2018-01-05 11:13:16 · 252 阅读 · 0 评论 -
volatile理解及建议
volatile关键字保证了线程间共享变量的及时可见性,但在其整个执行过程并不保证同步,不保证其原子性,但会保证指令不会重新排序。原创 2018-01-04 09:15:02 · 393 阅读 · 0 评论