我国的身份证编制是有标准的,每一位都不是随便瞎写的,就像我国的地图坐标经纬度一样,并不是真是的经纬度,而是人为加入了偏转,被称为:火星坐标系,但是工作中发现很多人并不了解,在工作中,用户输入的身份证号是否正确,我们根据这个规则是可以做初步校验的,当然真是的校验肯定是要通过公安部授权的接口,这是收费的。但是初步校验是真简单的,我个人发现有些系统并没有加入,所以今天写一篇小文章,做一个常用的工具类来校验身份证号,至于具体的规则,大家可以搜一下这个国标:GB11643-1999,代码如下:
package cn.bridgeli.demo;
import org.apache.c[......]
Read more
JWT 是什么,很多网站都有例子,但是如何使用,却不是很多,今天就介绍一个很具体的、能在项目中实际应用的例子。
1. pom
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>com.[......]
Read more
1. 证明:
首先,我们都知道现在的 CPU 多核技术,同时会有三级缓存(L1,L2,L3 ),如图:

缓存基本上来说就是把后面的数据加载到离自己近的地方,对于 CPU 来说,是一个字节一个字节的加载数据的吗?其实不是的,一般来说都是要一块一块的加载的,对于这样的一块一块的数据单位,我们叫做“Cache Line”,中文翻译:缓存行,一般来说,一个主流的 CPU 的 Cache Line 是 64 Bytes,也就是 8 个 64 位的整型,这就是 CPU 从内存中捞数据上来的最小数据单位。那么这个如何证明呢?
package cn.bridgeli.demo[......]
Read more
前一段时间看了一篇文章 (a == (Integer) 1 && a == (Integer) 2 && a == (Integer) 3) 是否可以为 true,当时第一反应怎么可能,谁知道再往下看,作者竟然给出来如下代码,一运行神奇的事出现了,真的为 true,代码如下:
package cn.bridgeli.demo;
import java.lang.reflect.Field;
public class Magic {
public static void main(String[] args) throws NoSuchFieldExcep[......]
Read more
之前曾经做过一个类 LBS 的小需求,当时是用 redis 做的,就是这篇文章,其实 GeoHash 算法,我们也可以自己实现,具体如下:
package cn.bridgeli.demo;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.HashMap;
public class GeoHash {
public static final double MINLAT = -90;
public static final double MAXLAT =[......]
Read more
1. 当启动 Spring boot 应用程序的时候,会先创建 SpringApplication 的对象,在对象的构造方法中会进行某些参数的初始化工作,最主要的是判断当前应用程序的类型以及初始化器和监听器,在这个过程中会加载整个应用程序的 spring.factories 文件,将文件的内容放到缓存对象中,方便后续获取。
2. SpringApplication 对象创建完成之后,开始执行 run 方法,来完成整个启动,启动过程中最主要的有两个方法,第一个叫做 prepareContext,第二个叫做 refreshContext,在这两个关键步骤中完成了自动装配的核心功能,前面的处理[……]
Read more
好久没有好好的写过博客了,不过这一篇也没打算好好写。前一段时间换工作,所谓工欲善其事,必先利其器,所以常用的软件都需要重新配置,而作为一名 Java 程序员,最重要的就是 IDEA 了,所以这次就写一下,我个人认为比较好用的 IDEA 插件,以及他们的作用,后面如果发现更好用的插件了,也会在这篇文章里面更新。
1. IDE Eval Reset,开发者:zhile.io
大家众所周知的,IDEA 很好用,但是付费软件,还不便宜,但是在国内很多人都是找各种方法破解,人家也在做反破解,一直搞攻防战,但是 IDEA 有一个很人性的一点,可以试用 30 天,所以这个插件就是让大家无限试用。[……]
Read more
记得 12306 刚上线的时候,就在想 12306 是如何卖票,一趟车从北京到上海,中间经过了 N 个站,大家可以买其中的任意两站,而因为卖出了一个一张票,从北京到上海很多站的车票都会变动,当时就感觉这个算法太复杂了,一般人还真写不出来,由此虽然很多人都在吐槽 12306,但是我却一直任务 12306 特别牛,很多人吐槽的大学生水平肯定是做不出来的,前一段时间,听马士兵教育的周志磊老师讲课,提出 redis 中的位图解决,设计的很巧妙,突然感觉豁然开朗,如果你也有这个问题,不妨参考一下。至于什么是位图,就不多说了,如果不知道,可以简单搜索。
首先说问题,我们假设一趟车是从 A 站到 B[……]
Read more
几年前我曾经写过两篇关于 ThreadLocal 的文章,分别是ThreadLocal类之简单理解和ThreadLocal类之简单应用示例,不过限于当时的水平,有些问题并没有说的很明白,所以今天再写一篇文章,重新说说这个类。
我们首先看一个例子:
package cn.bridgeli.demo;
/**
* @author BridgeLi
* @date 2021/4/21 11:02
*/
public class User {
String name = "Denny";
}
然后我们有一个操[……]
Read more
1. BIO
我们先看一个 Java 例子:
package cn.bridgeli.demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author bridgeli
*/
public class SocketBIO {[......]
Read more
近期评论