- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 线程,tcp连接,http请求和socke之间的关系
断网了,还能ping通 127.0.0.1 吗?我们启动服务器的时候,一般会 listen 一个 IP 和端口,等待客户端的连接。如果此时 listen 的是本机的 0.0.0.0 ,那么它表示本机上的所有IPV4地址.终于搞懂了服务器为啥产生大量的TIME_WAIT!每一个 time_wait 状态,都会占用一个「本地端口」,上限为 65535(16 bit,2 Byte);TCP 本地端口数量,上限为 65535(6.5w),这是因为 TCP 头部使用 16 bit,存储「端口号」,因
2021-10-30 23:27:55
1162
原创 订单支付流程梳理
支付流程,以微信支付的JSAPi为例:1:客户端下单,前端设置相关的下单参数,例如产品id之类,然后调用后台的下单接口;2:应用后台下单接口的处理逻辑:校验参数,记录订单信息到库,扣减库存等,设置订单号,订单金额,支付回调地址等信息,调用微信支付JSAPI下单接口;3:微信端返回预支付交易会话标识:prepay_id,应用后台给前端返回prepay_id;4:前端调用JSAPI调起支付API接口,设置prepay_id等参数,主要是时间戳,随机字符串等,拉起微信的支付页面5: 用户支付成功后,微信
2021-10-23 13:56:43
1423
原创 java编码技巧
 BEGIN DECLARE i INT; DECLARE table_name VARCHAR ( 200 ); DECLARE table_pre VARCHAR ( 200 ); DECLARE sql_text VARCHAR ( 10000 ); SET i = 0; SET table_name = ''; SET t
2021-08-30 23:44:15
95
原创 JVM学习
如何查看大对象jps:查看Java的进程列表jmap -histo:live 34854 | head -n 10class name表示:[C is a char[][S is a short[][I is a int[][B is a byte[][[I is a int[][]分代的相关知识堆(Heap):-新生代:eden区;From survivor;To Survivor 默认比例:8:1:1-老年代:方法区(Method Area),也叫非堆(Non-Heap)
2021-08-30 23:33:42
80
原创 mongo db
测试时间:默认存储到库的时间是标准时间:就是0点时间,和北京时间差8小时date:2021/8/14 UTC 上午6:12:23修改配值:spring: jackson: date-format: "yyyy-MM-dd HH:mm:ss" time-zone: GMT+8返回数据会显示为北京时间 { "id": 11, "age": 33, "name": "ceshi", "createTime": "2021-08-14 14:12.
2021-08-28 18:52:22
105
原创 45 位图:如何实现网页爬虫中的URL去重功能
布隆过滤器:多个哈希函数,多个哈希值,映射到二进制向量上;存在判断;多个哈希值都存在的话就认为存在,有误判的可能存在可能会有误判;不存在不会有误判public class BitMap { // Java中char类型占16bit,也即是2个字节 private char[] bytes; private int nbits; public BitMap(int nbits) { this.nbits = nbits; this.bytes = new char.
2021-04-05 16:58:40
167
原创 基于springboot和rabbitMq实现延时重试队列
需求描述:日常开发常见的回调通知,如果回调失败,需要重试3次,每隔半小时重试一次,超过三次则放弃回调.
2020-12-05 17:31:39
404
原创 前后端分离项目demo
前后端分离项目demo前后端分离demo,整合日常开发所需用到的业务点的实现:github地址v1.1版本(2020-06-13 - 2020-06-14)1.更新说明:1.1:Springboot整合shiro,实现用户的用户认证和授权2.接口介绍:接口名称请求地址作用登录请求http://localhost:8080/test/login传入账号密码登录登出http://llocalhost:8080/test/logout用户退出加载权限列表h
2020-06-14 21:46:30
843
原创 网络应用相关
public static ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() .setNameFormat("getPostCode-%d").build(); public static ExecutorService pool = new ThreadPoolExecutor(2, 2, 10000L, TimeUnit.MILLISECONDS, ..
2020-05-16 10:50:48
108
原创 设计模式
工厂模式:不用知道对象具体的创建流程,只需要提供给工厂所需要的生产信息就可以拿到所需要的对象。抽象工厂模式:有多个工厂的时候,又需要对工厂多做一层抽象单例模式:使一个类在堆中只产生一个对象原型模式:通过克隆的方法来获得一个新的对象,减少new对象过程中的开销。建造者模式:和工厂模式有点像相似,建造者模式的粒度比工厂模式要小,建造者设计到组件的具体组合过程,不同的组合产生不同的对象(...
2018-09-16 23:55:19
93
原创 操作系统
页:考虑到磁盘IO是非常高昂的操作,计算机操作系统做了一些优化,当一次IO时,不光把当前磁盘地址的数据,而是把相邻的数据也都读取到内存缓冲区内,因为局部预读性原理告诉我们,当计算机访问一个地址的数据的时候,与其相邻的数据也会很快被访问到。每一次IO读取的数据我们称之为一页(page)。具体一页有多大数据跟操作系统有关,一般为4k或8k,也就是我们读取一页内的数据时候,实际上才发生了一次IO,这个理...
2018-09-11 16:51:55
169
原创 mysql索引
最左匹配原则联合索引 索引长度?http://topic.youkuaiyun.com/u/20100727/14/9a63689e-7fdc-4b33-b215-7d08b2aef569.html解读EXPLAIN执行计划中的key_lenhttp://blogread.cn/it/article/7552?f=wb_blogreadMySQL索引原理及慢查询优化https:...
2018-09-11 16:51:47
115
原创 JDK的动态代理
动态代理的实现有两种方式方式一:JDK的动态代理关键点:接口:InvocationHandler类:Proxy类的newProxyInstantce方法动态代理能够自动生成代理类的.class文件,参考文章有写,暂时没有深入了解方式二:CGLIB实现关键点:类MenthodInterceptor类Enhancer 参考链接:JDK动态代理实现原理:...
2018-09-04 15:30:09
97
原创 mysql的锁机制
共享锁:在查詢語句后面加上 lock in share mode 可在查询到的行上面加上共享锁,其他线程也可以获取,可读,不可修改数据。select ... lock in share mode排他锁:在查询语句后面加上 for update 可对查询到的数据加上排它锁,其他线程不可再获得,但可读,不可修改数据select ... for update 事务的隔离级...
2018-09-04 14:27:32
82
原创 idea
ctrl+y 删除ctrl+d 向下复制一行ctrl+r 修改变量名ctrl+alt+l 格式化代码alt+/ 代码补全scou 打印方法psvm 主方法提示alt+insert 生成构造器,getter,setter这些注释和eclipse一样单行注释 ctrl+/双行注释 shift+ctrl+/ctrl+e 显示最近编辑的文档ctrl+shif
2017-11-01 00:02:55
150
原创 mysql
DML语句:执行之后,会返回受影响的行数.插入语句:INSERT INTO table [(column [, column...])] VALUES (value [, value...]);一般来说,一条INSERT只能插入一条数据,因为MYSQL没有batch操作,所以,MYSQL也支持在一条INSERT中插入多条数据INSERT INTO table [(col
2017-10-31 23:58:56
164
原创 Java EE 开发环境的搭建
参考网址:http://blog.youkuaiyun.com/hantangsongming/article/details/19479751 1:jdk测试是否搭建成功,2:eclipse的插件安装3:eclipse空间编码的修改为utf-8,window-->preference-->general-->workspace
2017-10-25 22:38:08
182
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人