java
riun、
只想把记忆保存
GitHub:https://github.com/hanhanhanxu
个人网站:http://riun.xyz
展开
-
对《分布式唯一ID生成器》的解读
我的个人网站:http://riun.xyz本文是对廖雪峰老师分布式唯一ID生成器的解读,因为我第一次读这篇文章时没有读懂,后来结合很多其他文章慢慢的才搞懂所谓的“使用bit储存什么信息“,”在哪些位上储存“,这些话的意思。所以我想要用另外一些尽量简单明了的话语去解释这些东西,相当于耳边辅导一样。读本文之前建议先通读一遍廖雪峰老师的文章。零、预备知识1字节=8位1byte = 8bitjava中int类型是4byte,也就是32bit00000000 00000000 00000000 0.原创 2021-12-16 10:28:08 · 877 阅读 · 0 评论 -
唯一字符串
我的个人网站:http://riun.xyz简介:唯一字符串SerialNumber,适合做requestId等,唯一标记请求。组成:类似这种:1Fkr3ybMcMEjDuFf6w,18位。前9位是根据当前纳秒时间转换生成,后9位是随机所有数字字母生成。速度:生成1000000(一百万)个平均需要600毫秒。优点:不是最快的, 但不加锁,速度已经很优秀,且基本保证永不重复;简单,不需读取其他信息。缺点:长度大,字母多,若需储存则占用较大空间。不包含时间信息,不可携带业务含义。package.原创 2021-12-16 10:27:20 · 449 阅读 · 0 评论 -
web应用中一种统一返回体的设计
我的个人网站:http://riun.xyzJDK1.8,SpringBoot2.6.01、依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach.原创 2021-12-16 10:26:54 · 781 阅读 · 0 评论 -
建造者模式
我的个人网站:http://riun.xyz简单的记录下lombok中的建造者模式及使用。不对该模式本身发表意见看法。一、Lombok中的建造者添加@Builder注解后,可直接使用建造者模式创建对象并为其属性赋值。package com.example.demo.pojo;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructo.原创 2021-12-16 10:26:17 · 373 阅读 · 0 评论 -
ab压测工具
我的个人网站:http://riun.xyz1、安装yum install httpd-tools2、查看命令ab -v主要参数介绍:-n:请求总量-c:并发请求量-T:content-type,可以是application/json等-H:请求头,-p:文件,该文件存放的请求内容3、压测命令举例ab -n 100 -c 50 -p 123.txt -T application/x-www-form-urlencoded -H “name:xxx” -k -r http://l.原创 2021-12-16 10:25:39 · 1097 阅读 · 0 评论 -
File与FileInputStream奇怪的问题
SpringBoot项目,resources目录下有一个配置文件cfca-config.properties,在代码中可以使用绝对路径和类路径去获取文件。很奇怪的是:如果只new File,那么传进去什么路径都可以;但若是new FileInputStream,那就只能传入绝对路径,传入相对路径就会报“ java.io.FileNotFoundException: classpath:cfca-config.properties (系统找不到指定的文件。)”的异常。下面代码,将第二行屏蔽掉,正常运行原创 2021-12-16 10:21:31 · 1220 阅读 · 0 评论 -
JUC全部
多线程编程步骤:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBSlu9KL-1630340015888)(http://minio.riun.xyz/riun1/2021-08-26_10iuN4SVXbPv4rxa6y.jpg)]线程间通信:synchronized加锁,Object的wait睡觉 notifyAll唤醒(synchronized执行完自动释放锁)Lock加锁,Condition的await睡觉 signalAll唤醒用 notify()通知时原创 2021-08-31 00:14:46 · 115 阅读 · 0 评论 -
java输出集合List
List<SimpWorkVo> list = workRepository.getIndex();System.out.println(Arrays.toString(list.toArray(new SimpWorkVo[0])));[SimpWorkVo(wid=1, wtitle=锁, wintro=2020-01-13 12:46:21.0, createTime=null), SimpWorkVo(wid=2, wtitle=Integer类, wintro=2020-01-原创 2021-07-01 17:06:55 · 2467 阅读 · 0 评论 -
java连接impala
我的个人网站:http://riun.xyz本文内容:使用java在SpringBoot框架下连接impala,并执行sql语句。版本:Java8spring-boot-starter-parent 1.5.2.RELEASE (不要问我为什么用1.5版本,我也不想用。。)依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin原创 2020-09-28 18:00:15 · 2273 阅读 · 2 评论 -
2019版本idea设置背景图片
个人网站:http://riun.xyzFile – Settings – Appearance&Behavior – Appearance – Background Image选择图片,点击OK点击OK即可效果:原创 2020-07-16 11:33:46 · 1571 阅读 · 0 评论 -
对于赋值操作符=与值/引用类型的理解,赋值操作符,值类型与引用类型
个人网站:http://riun.xyzint x = 1;User u = new User();如果突然让我看这两句代码,并让我解释,我一定会说”定义一个int类型的变量x,把1赋给x;定义一个User类型的变量u,然后在堆区开辟(申请,创建)一块内存空间存放User(),接着将内存空间的地址值赋给u“。但是仔细想想,同样是赋值符号 =,为什么一个是赋值(内存空间中存的值),一个是赋地址值(内存空间的地址)呢?原来我忽略了一个地方,new是一个”函数“,它创建内存空间,并返回所创建内存空原创 2020-06-24 11:28:13 · 222 阅读 · 0 评论 -
JAVA中String的split方法
我的个人网站:http://riun.xyz以下源码版本:JDK1.8简介Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,例如字符串 str = “1,23,4,5” 经过 str.split(",") 切割后得到的返回值是一个字符串数组 String[] = [1, 23, 4, , 5],这种处理方式可以适配大多数场景。问题今天写一个读取csv文件的时候,发现一个小问题。【csv,一种文本文件格式,每行中的数据以逗号分隔,在windows平台可以使用原创 2020-06-18 15:40:48 · 4169 阅读 · 0 评论 -
@Deprecated注解的功能
我的个人网站:http://riun.xyz@Deprecated注解标注在一个方法上,就是说这个方法已经被弃用了,不再推荐使用,已有新的方法代替此方法。但是你即使调用这个方法,还是可以运行的,他只是不推荐你使用此方法,当你使用此方法时,回有删除线在调用的方法名上。而为什么不直接删除弃用的方法,只是给他添加一个相当于“标识弃用”的注解呢?因为不确定项目的其他地方是否使用了此方法,也不能确定后续是不是就一定不用这个方法了,所以不能直接删除。...原创 2020-06-04 15:51:31 · 360 阅读 · 0 评论 -
Java中三目运算符的问题
以下内容首发于我的个人博客网站:http://riun.xyz在Java的三目运算符中,当存在运算时,如果返回的是Integer类型就会触发拆箱,此时如果返回的Integer是null,那么就会抛出NullPoint异常(拆箱,将null转化为数字,无法转化)。package Test;/** * @author: HanXu * on 2020/4/22 * Class description: */public class Demo4 { /** 三目运算符:原创 2020-05-29 22:22:41 · 271 阅读 · 0 评论 -
Java中嵌套调用方法时注解失效的原因
以下内容首发于我的个人博客网站:http://riun.xyz参考链接: https://www.cnblogs.com/moxiaotao/p/9776964.html同一个类中,在一个没有注解的方法A中调用另外一个有注解(比如@Async, @Transational)的方法B时,是不会触发B方法的注解的。比如下面的例子:有注解标注的方法addUser();没有注解标注的方法selUser()。在selUser()中调用addUser()则不会触发@Transactional注解。@S原创 2020-05-29 22:21:34 · 2051 阅读 · 0 评论 -
Java中的弱伪随机数Random
以下内容首发于我的个人博客网站:http://riun.xyz/随机数:Java中生成随机数有三个影响因素:随机种子seed,随机范围bound 和产生随机数的对象Random。随机范围bound不同,生成的随机数肯定会有不同的可能,所以这里不做讨论。下面讨论的是seed和随机对象Random对生成随机数的影响。生成随机数的对象又分为弱伪随机数和强伪随机数,我们这里讨论弱伪随机数。实验一:弱伪随机数生成规律 /** * 弱伪随机数:相同的seed随机出来的数是一摸一样的,不同的se原创 2020-05-29 22:18:07 · 628 阅读 · 0 评论 -
日志简介
参考阿里巴巴Java开发者社区禁止直接使用日志系统(Log4j、Logback)中的API常用日志框架j.u.lj.u.l是java.util.logging包的简称,是JDK在1.4版本中引入的Java原生日志框架。Java Logging API提供了七个日志级别来控制输出。分别是:SERVER、WARNING、INFO、CONFIG、FINE、FINER、FINEST。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G2Cpkxxu-158918431906.原创 2020-05-11 16:06:02 · 149 阅读 · 0 评论 -
关于pojo中字段全部为包装类型
阿里巴巴JAVA开发手册中写道:关于基本数据类型与包装数据类型的使用标准如下:1) 【强制】所有的 POJO 类属性必须使用包装数据类型。2) 【强制】RPC 方法的返回值和参数必须使用包装数据类型。3) 【推荐】所有的局部变量使用基本数据类型。说明:POJO 类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE 问题,或者入库检查,都由使用者来保证。正例:数...原创 2019-12-18 11:22:17 · 926 阅读 · 0 评论 -
Integer缓存区的问题
缓存区的问题//-128~127之间的值,都是直接从IntegerCache.cache缓存区拿。无论创建多少数值,只要在此范围内,同一数值都是指向同一个缓存区的对象,所以使用 == 判断时,必定返回true /*Integer i = 15; Integer j = 15; Integer k = 16; System.out.p...原创 2019-12-18 10:26:25 · 316 阅读 · 0 评论 -
SpringMvc中controller参数取自哪里
测试: @PostMapping("mytest1") public ResponseEntity fun1(int id){ System.out.println(id); return ResponseEntity.ok().build(); }以下测验,代码不变:1:取自url,相关注解:@RequestParam效果:成功2:取...原创 2019-12-16 16:32:10 · 385 阅读 · 0 评论 -
SpringMVC参数接收的问题
代码:@PostMapping("mytest3") public ResponseEntity fun3(int id,User u){ System.out.println(id); System.out.println("------------------------"); System.out.println(u); ...原创 2019-12-16 16:29:02 · 78 阅读 · 0 评论 -
不同请求域以及Content-Type
四种常见的 POST 提交数据方式对应的content-type取值application/x-www-form-urlencoded这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了):...原创 2019-12-16 15:59:21 · 243 阅读 · 0 评论 -
JVM的类加载机制
JVM的类加载机制https://blog.csdn.net/weixin_38237873/article/details/87925493JAVA垃圾回收GC的机制https://blog.csdn.net/weixin_38237873/article/details/87902833转载 2019-12-13 17:48:57 · 64 阅读 · 0 评论 -
遍历map集合的3种方式-java
遍历map的3种方式 keySet得到存有key的Set集合 集合遍历 迭代器遍历 entrySet得到存有Map.Entry的Set集合 集合遍历 迭代器遍历 map.values得到存有value的Collection集合 只能遍历value 集合遍历 迭代器遍历 ...原创 2019-08-14 16:34:27 · 163 阅读 · 0 评论 -
lombok使用的坑:equals和hashCode方法
package hx.insist.redistemplate.other;import lombok.Data;@Datapublic class Page { private String name;}package hx.insist.redistemplate.other;public class User { private String na...原创 2019-07-09 17:27:57 · 5097 阅读 · 0 评论 -
java编写遇到的常见错误解决方法
第一个hello world例子常见的问题:1. 找不到对应的文件原因:1 隐藏了后缀名,你的不是java文件是txt文件。2.编译 的时候写错了文件名。2. 找不到或无法加载主类 Demo1原因: 运行的时候写错了类名. 注意: class文件的文件名是对应的类名的。不是对应的java文件名的。3. java的代码是严格区分大小写的。原创 2017-09-17 19:16:40 · 804 阅读 · 0 评论