随笔分类 -  Java后端:Java基础

1 2 3 4 5 ··· 7 下一页

Java 里 NonNull、Nonnull、NotNull 区别
摘要:出处:https://yansu.org/15775214814688.html 阅读全文

posted @ 2021-09-06 20:00 cag2050 阅读(656) 评论(0) 推荐(0) 编辑

ReentrantLock 与 synchronized 的比较
摘要:重入锁(ReentrantLock)是Lock接口最常见的一种实现[插图],顾名思义,它与synchronized一样是可重入[插图]的。在基本用法上,ReentrantLock也与synchronized很相似,只是代码写法上稍有区别而已。不过,ReentrantLock与synchronized 阅读全文

posted @ 2020-03-05 15:41 cag2050 阅读(677) 评论(0) 推荐(0) 编辑

slf4j 从多个日志实现中,绑定一个具体的日志,原理解析
摘要:参考 | 网址 | Java日志框架:slf4j作用及其实现原理 | https://www.cnblogs.com/xrq730/p/8619156.html 阅读全文

posted @ 2020-03-04 11:32 cag2050 阅读(479) 评论(0) 推荐(0) 编辑

阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义
摘要:出处:https://www.cnblogs.com/EasonJim/p/7967999.html 阅读全文

posted @ 2019-11-21 11:06 cag2050 阅读(233) 评论(0) 推荐(0) 编辑

Java 中 this 和 super 的用法总结
摘要:出处:https://www.runoob.com/w3cnote/the different this super.html 阅读全文

posted @ 2019-11-20 20:22 cag2050 阅读(127) 评论(0) 推荐(0) 编辑

一致性Hash算法
摘要:参考资料 | 网址 | 腾讯云的一道面试题 一致性Hash算法 | https://msd.misuland.com/pd/2884250103256715714 阅读全文

posted @ 2019-11-19 21:00 cag2050 阅读(356) 评论(0) 推荐(0) 编辑

Java 为什么需要包装类,如何使用包装类?
摘要:出处:https://cloud.tencent.com/developer/article/1362754 阅读全文

posted @ 2019-11-12 14:06 cag2050 阅读(508) 评论(0) 推荐(0) 编辑

for each 语句
摘要:for each 语句是java5新增,在遍历数组、集合的时候,for each拥有不错的性能。 for each 虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改。见下面代码1。 如果想要在遍历的过程中对数组或者集合进行修改,可以使用加强型 for 循环。见下面代 阅读全文

posted @ 2019-11-12 11:21 cag2050 阅读(227) 评论(0) 推荐(0) 编辑

Java中堆和栈的区别
摘要:区别项 | 堆 | 栈 | | 存放的东西 | 类的对象:这些对象通过new等指令建立,通过垃圾回收器来销毁。| 栈中主要存放一些基本数据类型的变量(byte,short,int,long,float,double,boolean,char)和对象的引用。 存取速度 | 存取速度较慢 | 比堆快 数 阅读全文

posted @ 2019-11-04 16:11 cag2050 阅读(114) 评论(0) 推荐(0) 编辑

Java 中的各种锁(参考:https://mp.weixin.qq.com/s/G4zfnAQH-PJz8jUREX41OA)
摘要:锁的类型 | 锁的实现 | 乐观锁 | 在数据库中可以使用version版本号去实现;在Java中是使用CAS(Compare And Swap)算法(CAS算法:是一种无锁算法,是Java提供的非阻塞原子性操作,CAS通过硬件保证了比较更新的原子性,在JDK中Unsafe提供了一系列的compar 阅读全文

posted @ 2019-11-01 15:35 cag2050 阅读(254) 评论(0) 推荐(0) 编辑

HashMap、HashTable 区别
摘要:区别项 | HashMap | HashTable | | 继承和实现 | | 线程安全 | 不是线程安全的 | 是线程安全的 key、value是否可以为null | key、value都可以为null | key、value都不可以为null 支持的遍历种类 | 只支持Iterator(迭代器) 阅读全文

posted @ 2019-10-24 17:49 cag2050 阅读(128) 评论(0) 推荐(0) 编辑

throw new RuntimeException(e) 与 e.printStackTrace( ) 的区别
摘要:出处:https://blog.csdn.net/xuzhuaaron1/article/details/73611404 阅读全文

posted @ 2019-10-24 16:45 cag2050 阅读(545) 评论(0) 推荐(0) 编辑

Java 8 学习资料
摘要:Java 8 学习资料 | 网址 | Java 8 简明教程 | http://blog.didispace.com/books/java8 tutorial/ 阅读全文

posted @ 2019-08-08 11:37 cag2050 阅读(186) 评论(0) 推荐(0) 编辑

hashCode、HashMap 的原理
摘要:hashCode 的契约是:如果两个对象相等,那么调用两个对象的 hashCode() 方法一定会返回相同的 hash 值。 HashMap 中 存储桶 的原理: 1. 当你在 hashMap 中存储值的时候,这些值实际存储在一组桶中。每个桶都分配了一个用于识别它的号码。当你在 HashMap 中 阅读全文

posted @ 2019-08-08 10:36 cag2050 阅读(188) 评论(0) 推荐(0) 编辑

java 的关键字:volatile
摘要:java 的关键字:volatile 阅读全文

posted @ 2019-03-06 17:23 cag2050 阅读(104) 评论(0) 推荐(0) 编辑

通过 JDK 自带的 javap 命令查看 SynchronizedDemo 类的相关字节码信息
摘要:1. 首先切换到类的对应目录执行 命令生成编译后的 .class 文件 2. 然后执行 。 阅读全文

posted @ 2019-03-05 19:55 cag2050 阅读(213) 评论(0) 推荐(0) 编辑

Java 的 volatile 修饰符
摘要:volatile 修饰符,用于多线程同步 volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 一个 volatile 对象引用可能是 阅读全文

posted @ 2019-03-05 19:50 cag2050 阅读(438) 评论(0) 推荐(0) 编辑

面试必备之:乐观锁与悲观锁
摘要:项目 | 乐观锁 | 悲观锁 | | 机制 | 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS(compare and swap:比较与交换)算法实现。 | 总是假设最坏的情况,每次去拿数 阅读全文

posted @ 2019-03-05 10:47 cag2050 阅读(144) 评论(0) 推荐(0) 编辑

java 各种循环遍历
摘要:遍历方式选择: 1. 实现了 RandomAccess 接口的 list,优先选择普通 for 循环 ,其次 foreach; 2. 未实现 RandomAccess 接口的 list, 优先选择 iterator 遍历( foreach 遍历底层也是通过 iterator 实现的),大 size 阅读全文

posted @ 2019-03-04 20:10 cag2050 阅读(462) 评论(0) 推荐(0) 编辑

java 获取键盘输入常用的两种方法
摘要:java 获取键盘输入常用的两种方法 方法1: 通过 Scanner 方法2: 通过 BufferedReader 阅读全文

posted @ 2019-03-04 19:54 cag2050 阅读(208) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页

导航

点击右上角即可分享
微信分享提示