随笔分类 -  java基础

摘要:iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式 下面给出相对应的正则表达式: "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\." +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\ 阅读全文
posted @ 2020-05-29 19:36 踏月而来 阅读(14067) 评论(0) 推荐(0)
摘要:isEmpty只判断是否为null和长度是否为0 public static boolean isEmpty(String str) { return str == null || str.length() == 0; } isBlank判断的是该字符串是否为空白字符串 public static 阅读全文
posted @ 2020-03-22 14:19 踏月而来 阅读(272) 评论(0) 推荐(0)
摘要:首先要理解的是公钥加密后私钥是可以解密的。私钥加密后公钥也是可以解密的。 公钥和私钥是成对出现的。 一般都是公钥加密,私钥解密。 公钥私钥原理 张三有两把钥匙,一把是公钥,另一把是私钥 张三把公钥送给他的朋友们—-李四、王五、赵六—-每人一把 李四要给张三写一封保密的信。她写完后用张三的公钥加密,就 阅读全文
posted @ 2020-03-03 13:49 踏月而来 阅读(303) 评论(0) 推荐(0)
摘要:DSL 是一种采用JSON格式的查询 #查看所有索引 GET /_cat/indices?v #删除某个索引 DELETE /skuinfo #新增索引 PUT /user #创建映射 PUT /user/userinfo/_mapping { "properties": { "name":{ "t 阅读全文
posted @ 2020-02-28 11:08 踏月而来 阅读(1292) 评论(0) 推荐(0)
摘要:1》docker中安装mysql容器 开启binlog模式 修改/etc/mysql/mysql.conf.d/mysqld.cnf docker exec -it mysql /bin/bash cd /etc/mysql/mysql.conf.d vi mysqld.cnf 添加这两行 2》创建 阅读全文
posted @ 2020-02-27 12:41 踏月而来 阅读(3818) 评论(0) 推荐(0)
摘要:OpenResty是国人章亦春发起的一个开源项目,可以理解成封装了nginx,并且集成了LUA脚本,足以胜任 10K 乃至 1000K 以上单机并发连接。 首页的访问频率一般都比较高,对于首页上的广告位,广告变更频率比较低,可以利用缓存提高访问速度 广告位缓存架构图 openresty安装 1》添加 阅读全文
posted @ 2020-02-25 19:43 踏月而来 阅读(438) 评论(0) 推荐(0)
摘要:商品表的设计,商品表一般包含两个表,SPU表和SKU表 SPU = Standard Product Unit 通俗讲就是同款商品的公共属性 SKU=stock keeping unit 通俗讲就是某个库存单位的商品独有属性 **华为P30 就是一个 SPU** **华为P30 红色 64G 就是一 阅读全文
posted @ 2020-02-25 14:27 踏月而来 阅读(378) 评论(0) 推荐(0)
摘要:这是秒杀接口的伪代码 1) 判断用户是否重复秒杀 if(判断redis中该用户秒杀结果){ sout(请不要重复秒杀) return } 2)redis预减库存 if(判断redis中该用户预减库存标识){ sout(正在排队中) return }else{ redis预减库存 设置该用户的预减库存 阅读全文
posted @ 2020-02-23 16:19 踏月而来 阅读(521) 评论(0) 推荐(0)
摘要:采用注解的方式 1)定义一个注解 @Retention(RUNTIME) @Target(METHOD) public @interface AccessLimit { int seconds(); int maxCount(); } 2)在需要限流的方法前加这样的注解 @AccessLimit(s 阅读全文
posted @ 2020-02-23 15:43 踏月而来 阅读(800) 评论(0) 推荐(0)
摘要:什么是超卖 库存只有1个,当有两个线程过来后,都执行成功了,生成了两个订单,这就是超卖 避免超卖的发生 下面的代码还是会发生超卖。虽然减库存,生成订单在同一个事务,也对修改库存做了限制,但是即使stock_count变为0了,这个减库存的sql操作也不会报错,导致后面的生成订单就会正常执行 导致库存 阅读全文
posted @ 2020-02-22 16:34 踏月而来 阅读(2991) 评论(0) 推荐(0)
摘要:事件驱动架构的几个要素 一,事件源 二,事件收集器 三,事件队列 四,事件转发器 五,事件处理器 事件驱动流程: 首先,各种不同的事件处理器都注册到事件转发器中 然后,事件源触发(比如一个秒杀请求进来) 》 事件收集器收集事件(将请求封装为秒杀事件),将事件扔到事件队列中 》单独的线程从事件队列中取 阅读全文
posted @ 2020-01-29 10:07 踏月而来 阅读(1209) 评论(0) 推荐(0)
摘要:public class BreakTest { public static void main(String[] args) { // 跳出多层循环,用到了lable标签,给循环定义一个lable标签,这里给内层循环定义了一个lable2标签,lable2的名字可以随便起, // 这里执行了break lable2;后表示跳出了内层循环,代码还会继续执行到 System.out.println( 阅读全文
posted @ 2019-10-15 09:49 踏月而来 阅读(225) 评论(0) 推荐(0)
摘要:public class FileCopy { public static void main(String[] args) throws Exception { File f1 = new File("D:\\test\\demo.doc"); String path = "D:\\test\\"; System.out.print("请输入要复制的文件个数:"); Scanner sc = n 阅读全文
posted @ 2019-09-17 17:50 踏月而来 阅读(450) 评论(0) 推荐(0)
摘要:1. 获取授权码Authorization Code https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=xxx&redirect_uri=xxx&state=111 2. 通过Authorization Code 阅读全文
posted @ 2019-08-20 20:32 踏月而来 阅读(1792) 评论(0) 推荐(0)
摘要:在获取用户的Ip地址时,不一定可以获取到用户真实的地址信息,这要看代理服务器的类型,代理服务器有普通匿名代理服务器,高匿代理服务器,像这种情况很难获取到用户真实的Ip地址 假如用户没有使用匿名代理服务器的情况下,获取用户真实IP的步骤如下: 1 nginx修改配置文件 2 java代码中获取用户真实 阅读全文
posted @ 2019-08-01 14:27 踏月而来 阅读(1236) 评论(0) 推荐(0)
摘要:LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高” 在java中可以采用LinkedHashMap实现LRU缓存 public class LRU { public static v 阅读全文
posted @ 2019-07-16 11:25 踏月而来 阅读(782) 评论(0) 推荐(0)
摘要:移动APP接口是怎么保证安全性的,可以采用https,或者是非对称加密。 接口加密的目的是防止被别人用抓包工具,抓包后篡改数据。 关于加密算法常见的有对称加密(DES)和非对称加密(RSA) 对称加密(DES):加密和解密用的是同一个密钥 非对称加密RSA(RSA是他们的发明人的姓氏开头字母拼在一起 阅读全文
posted @ 2019-07-14 22:22 踏月而来 阅读(1228) 评论(0) 推荐(0)
摘要:A企业和B企业要进行合作时,A要开放api接口给B调用,这时候A可以采用基于accessToken的方式实现开放api接口 数据库表设计 B调用方式 B企业调用接口前先获取accessToken http://localhost:8080/auth/getAccessToken?appId=1234 阅读全文
posted @ 2019-07-14 00:49 踏月而来 阅读(2532) 评论(0) 推荐(0)
摘要:确保分布式锁同时满足以下四个条件 1.互斥性。在任意时刻,只有一个客户端能持有锁 2.不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁 3.具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁 4.解铃还须系铃人。加锁和解锁必须是同一个客 阅读全文
posted @ 2019-06-26 15:17 踏月而来 阅读(1032) 评论(0) 推荐(0)
摘要:JDK中的LinkedList 里的属性 Node first ; Node last ; int size; 在源码中的查找,用到了二分查找,先判断要查找的索引值index,和size比较大小,再判断是从first节点还是last节点开始查找 自己实现的LinkedList 阅读全文
posted @ 2019-06-26 14:05 踏月而来 阅读(600) 评论(0) 推荐(0)