Java
java知识点详解
-SystemCaller-
做别人所做不到的,
得到别人所得不到的.
博客已转移☞ https://systemcaller.com
展开
-
docker 安装mysql8
在挂载后的配置文件中打开/home/mysqldata/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8。更新root用户的密码加密方式为旧版本的native,以防一些客户端不兼容。修改mysql字符集,4.更新一下用户密码。原创 2023-01-31 00:09:02 · 625 阅读 · 0 评论 -
WebSocket推送使用流程图说明
功能: 某个请求触发后台推送数据给另外一个前台进行实时数据显示技术: WebSocket redis mq springboot 前端知识难点: 保证数据不丢失, 多实例下的推送, 链接失效时的处理原创 2021-06-11 16:33:43 · 812 阅读 · 1 评论 -
系统用户中心升级,向下兼容的流程设计
公司要对原来的系统进行升级, 这次任务主要是负责用户中心的模块, 有一个核心功能: 实现旧系统登录对新系统的单点登录.和一般的单点登录不一样, 这边两个系统用户中心使用的密码加密方式不一样, 旧系统的用户数据同步到新系统后, 由于加密方式不一样,而且MD5加密不能进行解密, 使用,必须设计一套能兼容的登录方式, 要求对用户来说是无感知的, 密码是不变的.难点是加密方式不一样, 而且数据不一样, 对用户无感, 还要第一次登录新系统之后,能把密码加密方式更新为新系统的加密方式.下图是我设计的比较详细的流程原创 2020-11-30 20:24:46 · 327 阅读 · 0 评论 -
数据解耦的一次实践
有这么一个需求:每个企业都可以配置自己的 数据, 如果没有配置,就使用默认的.配置的数据是公共的,有很多, 只不过每个企业可以自定义具体的哪些配置现在要为每个企业的配置数据进行自定义排序解决方案(两种):在配置表中,为每个企业单独复制一份属于该企业的数据,并设置数据的排序序号(有一个序号字段), 根据企业查询该表,并根据排序序号进行排序.配置表只保留一份全部配置; 另外创建一个企业配置关联表, 在关联表中,进行如下配置:应该有这些数据: id, 企业信息, 该企业的配置表id集合我们原创 2020-11-30 20:15:00 · 1032 阅读 · 0 评论 -
Math.round()的真正作用和含义
Math.round()该方法的效果是: 参数的相邻整数区间向最接近的那个整数进行舍取, 如果刚好在中间,那么取正无穷方向的那个整数Math.round(1.2); //1.2的相邻整数区间是[1,2],更加靠近1,所以结果是1Math.round(1.6);//1.6相邻整数区间是[1,2],更加靠近2,所以结果是2Math.round(1.5);//1.5相邻整数区间是[1,2],刚好在区间正中间,所以取区间较大的那个,所以结果是2Math.round(-1.2);//-1.2的相邻整数区间原创 2020-08-26 20:08:45 · 8760 阅读 · 1 评论 -
比较java枚举成员使用equal还是==
每篇一句编程直觉很重要,这个是需要慢慢培养的答案是都可以,并且建议使用==相信初学者一定很疑惑,枚举本质是一个类,为什么比较还用==呢?分析如果你看过枚举的源码,你会发现在枚举源码中重写了equals方法,equals也仅仅非常简单的 == 。 我使用 == ,因为无论如何,这个左值是可以为 null的public final boolean equals(Object other...原创 2020-01-10 16:22:06 · 486 阅读 · 0 评论 -
[转载]ThreadLocalRandom源码分析
Random 的缺点分析在 JDK7 之前包括现在,java.util.Random 应该是使用比较广泛的随机数生成工具类,另外 java.lang.Math 中的随机数生成也是使用的 java.util.Random 的实例。下面先看看 java.util.Random 的使用例子如下:public class RandomTest { public static void mai...转载 2019-12-10 17:13:05 · 181 阅读 · 0 评论 -
JAVA随机数
每篇一句稍待秋风凉冷后,高寻白帝问真源。《望岳三首·其二》- 唐代 - 杜甫获取随机数的方式经常使用的大概就下面5种①Math.random(): 获取随机小数范围:[0.0,1.0) 返回的值是double类型②Random类构造方法:Random() : 建议使用无参构造方法方法:int nextInt(int n) : 获取 [0,n) 范围的随机整数③...原创 2019-12-10 16:32:09 · 341 阅读 · 0 评论 -
.getClass()和.class的区别
两者的区别是要分情况分析的:第一种是: 当对象a是类A的实例对象比如说public class A{ //...}public class test(){ public static void main(String[] args) { A a = new A(); System.out.println(A.class==a.getClass()); }...原创 2019-11-19 13:37:00 · 400 阅读 · 0 评论 -
详解java可变参数的细节,和开发中会遇到的坑!
可变参数语法很简单,但是也存在某些坑,我们必须知道!写在前面的话:如果可变参数是什么都不知道,那么你大可不必浪费时间看本文可变参数必须放在参数的最后面,否则编译报错下面代码是编译报错 public void method(Object... objects,int a){ for (Object object : objects) { ...原创 2019-11-10 11:43:02 · 917 阅读 · 0 评论 -
class.getClassLoader().getResourceAsStream和class.getResourceAsStream的区别
getClassLoader是用来加载java类的,类加载器就是负责把class文件加载进内存中.如果有如下文件路径:src/com/test/a.xml , src/com/test/Demo.class在Demo类中关联a.xml文件,获取输入流对象://下面是正确的两种写法InputStream is = Demo.class.getClassLoader().getResource...原创 2019-10-17 21:25:55 · 414 阅读 · 0 评论 -
Map集合的特例 可重复key的键值对集合 :IdentityHashMap
此类利用哈希表实现Map接口,比较键(和值)时使用引用相等性代替对象相等性。换句话说,在IdentityHashMap中,当且仅当(k1==k2)时,才认为两个键k1和k2相等(在正常Map实现(如HashMap)中,当且仅当满足下列条件时才认为两个键k1和k2相等:(k1==null ? k2==null : e1.equals(e2)))。...原创 2019-10-16 08:41:19 · 2307 阅读 · 0 评论 -
Volatile关键字详解:
volatile关键字修饰一个共享资源(类的成员变量,类的静态成员变量),那么它有以下特点: 1.保证了不同线程对资源的操作的可见性,一个线程修改了资源的值,这个值对其他线程来说立即可见 当某个线程修改了资源的值, 其他线程的缓存中的值无效了,需要重新去主存中读取. 2. 禁止了jVM指令重排序, 保证了有序性. 3. 必须要注意的是,volatile不能保证原子性...原创 2019-10-09 14:49:08 · 134 阅读 · 0 评论 -
多线程笔记
如何避免死锁? java多线程中的死锁,死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一直相互等待的现象,如果没有外力作用,他们将无法推进下去,这是一个非常严重的问题,因为死锁会让了的程序挂起而无法完成任务,死锁的发生必须满足以下四个条件:互斥条件: 一个资源每次只能被一个进程使用 请求与保持条件: 一个进程因请求资源而阻塞时,对已获得的资源保持不放 不剥夺条...原创 2019-10-08 23:02:12 · 84 阅读 · 0 评论 -
[转载]为什么说 Java 中只有值传递?
为什么说 Java 中只有值传递?首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。它用来描述各种程序设计语言(不只是Java)中方法参...转载 2019-10-07 14:05:01 · 132 阅读 · 0 评论 -
[转载]String str=new String("a")和String str = "a"有什么区别?
本文转载,感谢原博客大佬,原文连接String A="ABC";String B=new String("ABC");这两个值,A,B 是否相等,如果都往HashSet里面放,能放下吗?答:(a)A==B 的判断为false; (b)A.equals(B)为true ;因为值相等,所以都往HashSet里面放不下,只能放一个问题:==与equals(...转载 2019-10-07 09:30:20 · 240 阅读 · 0 评论