随笔分类 - java
关于java语言的博客
摘要:前言 对整数a,b来说,取余和取模的计算过程相同: 求整数商 c = a/b 计算模或者余数 r = a-c*b 区别在于第一步求商的方法: 取余运算,结果向0方向舍入 取模运算,结果向负无穷方向舍入 当a和b符号相同时,取余和取模结果没有区别,符号不同时,结果不一致,取余结果的符号和a相同,取模结
阅读全文
摘要:kotlin中range使用 fun main() { for (i in 1.rangeTo(10).step(3)) { //类似于 1..10 step 3 写法 print(i.toString() + " ") } println() for (i in 1.rangeTo(10)) {
阅读全文
摘要:前言 java8新增了一个编译参数-parameters,可以让我们在运行期获取方法参数名称。 简单使用 import java.lang.reflect.Method; import java.lang.reflect.Parameter; public class TestParameter {
阅读全文
摘要:前言 SSE(Server-Sent Events)是一种服务器消息推送技术,是HTML5标准协议中的一部分,类似WebSocket,不同在于WebSocket可以双向通信,SSE只能服务器向浏览器发送消息。具体的规范可以查看 MDN。 简单使用 客户端,注意IE浏览器可能不支持 <script>
阅读全文
摘要:前言 URI(Uniform Resource Identifier),统一资源标识符,用来唯一的标识一个资源。 URL(Uniform Resource Locator),统一资源定位器,是URI的一个子集,不仅可以标识一个资源,还包含如何定位这个资源,是一种具体的URI。 语法 scheme:[
阅读全文
摘要:前言 qdox可以将一个java源码解析成一个包含class的对象,通过这个对象我们可以获取所有方法,属性,方法参数,返回值,注释,tag等信息。 简单使用 待解析的源码如下 import java.io.BufferedInputStream; import java.io.ByteArrayIn
阅读全文
摘要:Random使用 java中使用Random类来产生随机数。 import java.util.Random; public class Client { public static void main(String[] args) { test(); test(); } private stati
阅读全文
摘要:前言 ThreadLocal可以看做线程的本地变量,实现原理就是每个线程保存一份数据的副本,数据隔离,以空间换时间。 简单使用 public class Client3 { public static void main(String[] args) { ThreadLocal<String> na
阅读全文
摘要:前言 Future可以看做一个异步的计算结果的票据,类似我们排队过程中获取的号,后面根据这个号去操作。 简单使用 Future需要配合Callable接口和线程池使用 @FunctionalInterface public interface Callable<V> { /** * Computes
阅读全文
摘要:前言 顾名思义,类加载器就是负责类的加载的,从内存中,class文件中,jar包中等渠道加载,对于任意一个class,都需要由加载它的类加载器和这个类本身确定其在JVM中的唯一性。 java内置类加载器 java中内置了3种类加载器 根类加载器 又叫做Bootstrap类加载器,是最顶层的类加载器,
阅读全文
摘要:group查询 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Client { public static void main(String[] args) { String content
阅读全文
摘要:被调用类 import java.util.Arrays; public class TestMain { public static void main(String[] args) { System.out.println("TestMain"); } public static void te
阅读全文
摘要:前言 字节序: 指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序,有大端和小端两种方式 大端: 指高位字节存放在内存的低地址端,低位字节存放在内存的高地址端。 小端: 指低位字节放在内存的低地址端,高位字节放在内存的高地址端。 以一个int值 0x01020304 为例 存储方式和CPU
阅读全文
摘要:使用rand()函数 select rand() 输出 0.0329578509224172 rand()函数获取区间(0,1)之间的float类型的数,但不支持在查询中添加一列随机值 select rand(),* from rent_device 输出结果为 生成的随机数一样 使用checksu
阅读全文
摘要:前言 在项目中我们使用到了大量的官方的maven插件,如clean,compiler,今天我们自己开发一个插件来更好的理解插件的原理。 创建maven插件项目 官方插件命名的格式为 maven-xxx-plugin,非官方的插件命名为 xxx-maven-plugin 修改pom文件 <packag
阅读全文
摘要:一个数组中只有一个数字出现一次,其他数字都出现两次,请找出这个数字 class Solution { public int singleNumber(int[] nums) { int res = 0; for (int num : nums) { res ^= num; } return res;
阅读全文
摘要:前言 使用线程池有以下好处: 创建销毁线程消耗系统资源,线程池可以复用已创建的线程。 控制并发的数量,并发数量过多,可能导致资源不足,服务器崩溃。 对线程进行统一管理。 简单使用 import java.util.concurrent.ExecutorService; import java.uti
阅读全文
摘要:前言 emoji表情也是使用Unicode编码的,但UTF8编码是不支持的。我们如果想存储emoji到数据库,一般有两种方法,以mysql为例,将数据库编码从 utf8 改为 utf8mb4,第二种就是做一个转换,将emoji表情转换成另一个字符,今天我们就测试一下第二种方法。 实现 我们需要使用第
阅读全文
摘要:饿汉式 public class SingletonObject1 { private SingletonObject1() { } private static final SingletonObject1 INSTANCE = new SingletonObject1(); public sta
阅读全文
摘要:场景描述 假如我们现在有3台缓存服务器,当有一张图片要缓存时,我们希望缓存均匀的分布在3台服务器上,可以使用如下公式来判断要缓存到哪台服务器, hash(图片名称) % 3 当我们想增加或减少服务器时,如增加到4台,得到的余数就和之前存放缓存的结果不同了,结果就是所有缓存在一段时间内就算失效了,可能
阅读全文