javaEE
文章平均质量分 95
头发未染霜,着凉亦错在我幼稚。
永远相信美好的事情即将发生。
展开
-
Synchronized 看一篇就够了
原文:《Synchronized 看一篇就够了》使用场景:修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁。 修饰静态方法,作用于当前类加锁,进入同步代码前要获得当前类的锁。修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象。synchronized:解决的是执行控制的问题,它会阻止其它线程获取当前对象的监控锁,这样就使得当前对象中被synchronized关键字保护的代码块无法被其它线程访问,也就无法并发执行。更重要的是,synchronize原创 2021-12-03 19:56:05 · 572 阅读 · 0 评论 -
Volatile 看一篇就够了
原文:《Volatile 看一篇就够了》著名的缓存一致性问题:计算机的内存模型:CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决I\O速度和CPU运算速度之间的不匹配问题。为了解决这个问题CPU厂商采用了缓存的解决方案,直到目前我们正在使用的多级的缓存结构。上图中的CPU Cache就是下图中的..原创 2021-12-03 19:48:49 · 142 阅读 · 0 评论 -
BitMap:一个文件中有20亿个数字,对这20亿个数字进行去重并按照从小到大排序。
BitMap简介BitMap是一种基于位的映射算法,它的基本思想就是用一个bit位,来记录某个元素的状态,而bit位所在的下标,通过该元素可以计算得到。举个例子假设有这样一个需求:一个文件中有20亿个随机正整数,对这20亿个数字进行去重并按照从小到大排序。20亿个数字大于0并小于2147483647,计算机的内存1G。在Java中,int占4字节,1字节=8位(1 byte = 8 bit)。如果每个数字用int存储,那就是20亿个int,因而占用的空间约为 (2000000000*原创 2021-12-03 19:31:35 · 2190 阅读 · 0 评论 -
Java-AES加密
//相关引用类import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import java.net.URLEncoder;import java.nio.charset.StandardCharsets;import java.util.Base64;import java.util.Map;//data为要加密的数据,secret为加密的密码(解密时也需要用到该密码)。public static...原创 2020-12-09 19:06:44 · 243 阅读 · 0 评论 -
Redis常见面试题(一)
1、为什么使用redis?主要有两个考虑角度:高性能、高并发。(PS:Redis大多数情况下用在缓存上,或者共享Session上面。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。)我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。例...原创 2019-03-07 18:59:31 · 3549 阅读 · 0 评论 -
Redis轻入门教程
Redis:介绍:redis是一种非关系型数据库,支持Key-Value等多种常用格式存储,适用于高并发高读取类型应用(如:做会话缓存 ps:这个是redis用的最多的场景,做高速队列 ps:支付等,红包削锋等等),该应用使用C语言编写(小知识:C语言直接与硬件接轨,因为运行效率极高,仅次于汇编语言,而Java等其他类型语言大多数都无法与硬件直接交互,且java与系统底层还有着一层虚拟机...原创 2019-03-07 11:37:34 · 188 阅读 · 0 评论 -
SpringBoot启动报错:HikariPool-1 - Exception during pool initialization.
2018-09-25 16:16:16.264 INFO 15528 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...Tue Sep 25 16:16:16 CST 2018 WARN: Establishing SSL connection without serve...原创 2018-09-25 16:42:04 · 77250 阅读 · 8 评论 -
Java--System.getProperty使用方式
在标准SDK中提供了java.lang.System类,这个类定义了一个对系统设备(包括系统属性和系统输入输出数据流)的、与平台无关的接口。如果我们想获取JVM的系统属性,就需要用到该类的getProperty()方法。该方法可以获取系统(JVM)的配置信息。但是我们怎么知道JVM有哪些属性呢?查阅JAVA官方API。(中文版API地址:System.getPropertys()所获...原创 2018-08-24 11:36:18 · 2160 阅读 · 0 评论 -
Java中集合类中List、Map、Set的区别
区别:List:1.可以允许重复的对象。 2.可以插入多个null元素。 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。 4.常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中原创 2017-10-15 19:59:54 · 440 阅读 · 0 评论 -
Java中sleep()和wait()的区别
区别:1、这两个方法来自不同的类分别是Thread和Object2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)4、sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常原创 2017-10-15 19:56:31 · 261 阅读 · 0 评论 -
关于java的重载(overload)和重写(override)的区别
Overload是重载的意思(发生在同一个类中)。Override是覆盖的意思,也就是重写(发生在父类与子类)。 Overload(重载)发生在同一个类中,方法参数必定不同。因为发生在同一个类中,所以JVM想要分辨你想要调用的是哪个方法就必须限定你的这些方法是有区别的,该限定的方式就是方法的参数必定不同,参数不同指的是参数的个数或者类型不同或者顺序不相同。 注意:如果几个重载原创 2017-10-15 19:44:41 · 639 阅读 · 0 评论