- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 TCP三次握手
TCP三次握手参数信息握手过程为什么需要三次握手才能创建连接首次握手隐患-SYN超时参数信息SYN: Messages that have SYN flag set represent the first step of the three-way handshake, meaning they initiate the connection.ACK: In combination with the acknowledgment number, the ACK flag acknowledges t
2021-02-21 13:07:28
253
原创 TCP Header 报文信息
TCP Header 报文信息The individual components or fields of the header of the TCP protocol have the following meaning:Source port (16 bits): Identifies the port number of the sender.Destination port (16 bits): Identifies the port number of receiver.Sequence
2021-02-21 12:12:35
366
转载 java性能优化
使用火焰图进行Java性能分析性能分析工具的分类性能分析的技术和工具可以分为以下几类:Counters内核维护着各种统计信息,被称为Counters,用于对事件进行计数。例如,接收的网络数据包数量,发出的磁盘I/O请求,执行的系统调用次数。常见的这类工具有:vmstat: 虚拟和物理内存统计mpstat: CPU使用率统计iostat:磁盘的I/O使用情况netstat:网络...
2020-04-02 22:23:33
990
原创 重构项目灰度cpu、内存负载激增解决思路
背景线上老业务重构,使用的Spring框架升级,改造后灰度发布一台服务器,发现在流量差不多的情况下,cpu、内存负载过高,下面是解决的思路。1、top查看各进程使用情况按1切换多核系统中,每个核的负载情况锁定pid(348609)进程出现问题2、查看是否出现内存泄露,未发现异常jmap -heap 348609jstat -gcutil 348609 2000 ...
2020-03-29 00:02:55
231
原创 springboot 优雅停机+线上部署shell脚本
需求:项目上线过程中,造成部分打入请求不可用,直接kill,太粗暴,随引入spring优雅关闭version : Springboot 2.2.5.RELEASE1、pom文件引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-...
2020-03-23 23:33:48
690
1
原创 2019-08-26
day31.class加载流程 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。加载,连接过程( 验证 ,准备,解析),初始化,使用,卸载2.mq 重复消费问题1.比如我们拿个数据写库,我们小根据主键查一下,如果这个数据有了,就不插入,update一...
2019-08-26 20:21:58
137
原创 2019-08-22 java 面试总结
1.并发包下的集合JUCCopyOnWriteArrayList:CopyOnWriteArrayList顾名思义就是在写操作之前先复制一份,这样读操作不用加锁,写操作在复制的集合上修改,然后将新集合赋值给旧的引用,并通过volatile 保证其可见性,当然写操作的锁是必不可少的了。正式因为这种利用空间换时间的思想,CopyOnWriteArrayList需要注意内...
2019-08-23 00:31:25
105
翻译 Exception.getMessage() is null
记录一个今天遇到的小问题,Exception.getMessage() null,和网上这个例子比较相似For exampletry{ if (stud.getCall() != null) acc.Call = stud.getCall().toString(); else throw new Exception("Data is nu...
2019-08-19 19:57:55
648
原创 redis之缓存雪崩,缓存击穿,缓存穿透
缓存雪崩 大量key同时过期,打死数据库,解决办法: 1)用锁/分布式锁或者队列串行访问 2)缓存失效时间均匀分布,过期时间加入随机因子缓存穿透 频繁查询一个不存在的数据,由于缓存不命中,每次都要查询持久层,从而失去缓存的意义。解决办法: 空对象和布隆过滤器 持久层查询不到就缓存空结果,查询时先判断缓存中是否exists...
2019-07-31 20:29:51
438
转载 redis 过期策略
1.redis 过期时间设置expire key time(以秒为单位)–这是最常用的方式setex(String key, int seconds, String value)–字符串独有的方式redis> SET cache_page "www.google.com"OK redis> EXPIRE cache_page 30 # 设置过期时间为 30 秒...
2019-07-30 19:23:12
553
原创 Java DAO、Service、web理解之web
web层web层主要包括前端交互设计(业务流程)、Restful、springMVC,前端框架(bootstrap+jquery,vue)RestfulURL设计 :/模块/资源/{标识}/集合1/.../user/{uid}/frends ->好友列表 /user/{uid}/followers->关注者列表springMVC...
2019-06-09 16:02:22
500
原创 Java DAO、Service、web理解之Service层
Service 层 用来抽象与实现业务逻辑的地方包含的模块:dto (业务层与前端传递的数据结构) service impl exception(业务层异常封装)设计理念:业务接口站在 "使用者" 角度设计,包括三方面:方法定义粒度(不关注与细节,抽象),参数(简单),返回类型(类型友好,return 类型/异常)事务的使用规则:推荐使用@Transactiona...
2019-06-08 21:44:31
1370
原创 Java DAO、Service、web理解之DAO层
DAO 模式DAO (Data Access Object数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。(接口设计+SQL编写,不涉及业务代码)DAO 包含的模块:dao :接口层(Mapper 自动实现DAO接口,API编程方式实现DAO接口),一般采用Mapper 自动实现DAO接口 entity:实体层 reso...
2019-06-08 21:13:45
7999
2
原创 linux 硬盘 du df 命令
df -hl:查看磁盘剩余空间 df -h:查看每个根路径的分区大小 du -sh [目录名]:返回该目录的大小 du -sm [文件夹]:返回该文件夹总M数 du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)两者区别 du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计...
2019-05-29 17:44:21
193
转载 mysql 行列转换技巧
详细介绍MySQL中用SQL实现行列转换的技巧行列转换常见场景由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值(具体结构见下表)。 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果。表数据:ID Value 1 tiny,small,big 2 small,medium 3...
2019-05-21 18:05:25
409
原创 mysql 按类别排序取前几条
留着翻译https://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/How to Select the First/Least/Max Row per Group in SQLPublishedDec 7, 2006inDatabasesHere are so...
2019-05-15 20:52:21
983
转载 awk 统计及linux 命令实战
Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串。下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序。数组格式:array[index]=value1、Nginx日志分析日志格式:'$remote_addr - $remote_user [$time_local] "$request" $status $b...
2019-05-13 12:05:04
478
转载 linux awk
原文链接awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息awk处理过程:依次对每一行进行处理,然后输出awk命令形式:awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file[-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变...
2019-05-13 12:01:52
93
原创 Google 翻译
import com.google.cloud.translate.Translate;import com.google.cloud.translate.TranslateOptions;import com.google.cloud.translate.Translation;public class QuickstartSample { static{ ...
2019-02-22 15:19:50
732
原创 Linux CPU飙升排查 jstack定位线程堆栈信息
基本概念在对Java内存泄漏进行分析的时候,需要对jvm运行期间的内存占用、线程执行等情况进行记录的dump文件,常用的主要有thread dump和heap dump。thread dump主要记录JVM在某一时刻各个线程执行的情况,以栈的形式显示,是一个文本文件。通过对thread dump文件可以分析出程序的问题出现在什么地方,从而定位具体的代码然后进行修正。thread dump...
2019-01-04 19:32:28
1796
原创 Spring 事务
@Override public void guideLifted() { //批量更新 collect.forEach(it ->{ TestDO do= new testDO (); guideDO.setId(it.getId()); ...
2018-12-21 14:32:07
82
原创 jvm原理
1.内存模型及存放的东西PC本地方法栈虚拟机栈方法区(类信息,常量)堆heap2.gc流程年轻代(young )分为eden 和from survivor 、to survivor,当回收时,年轻代采用的是复制算法,将eden 和from survivor 存活的对象复制到to survivor中,最后清理到eden和from survivor。HotSpot 默认 e...
2018-09-09 22:26:15
164
原创 面试总结--鼎信
1.synchronized 于locks.lock异同 synchronized :当代码块 加上 synchrozized之后,有两条改变。一个是原子性(atomicity),一个是可见性(visibility)。原子性意味着一次只能有一个线程获得代码锁,进入synchronized 包围的代码块中执行。而可见性则是对不同范围内对变量的修改做出的一致性。强调变量的可见性与一致...
2018-08-24 23:28:45
1448
原创 Oracle 存储过程
总结一下这两天存储过程踩的坑 参考https://blog.csdn.net/u013057786/article/details/17165623一、 存储过程1、定义所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调...
2018-08-09 23:12:30
1159
翻译 Web安全
XSS的原理是因为用户将它的数据变成了代码,在页面中跑起来了,所以就可以为所欲为。 CSRF则是当用户不知情时,被黑客的网页通过图片、表单等请求时,用户的登录态(Cookies)在不知情的情况下会被发送到服务器,导致用户在不知情的情况下被利用身份。 点击支持则是网页被嵌入到了其他网站中,并通过视觉隐藏的方式引导用户进行一些不知情的操作。 上传导致的漏洞是因为用户的文件没有做好判断和处理,导致传
2017-06-29 21:10:20
232
原创 回文(栈和队列)
Description 假设称正读和反读都相同的字符序列为“回文”,例如,‘abba‘ 和 ‘abcba‘是回文,‘abcde‘ 和 ‘ababab‘ 则不是回文。试写一个算法判别读入的一个以‘@‘为结束符的字符序列是否是“回文”。InputabcbaOutput是回文Sample InputabababSample Output
2013-10-29 20:18:02
838
原创 OJ 合并链表(线性表)
Description(线性表)假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。Input输入长度n:5输入数据:1 2 5 6 8 输入长度m:5输入数据:3 4 7 9 10Output10 9 8 7 6 5 4 3
2013-10-28 22:18:49
711
原创 OJ平台的逆置线性表
Destription(线性表)请写一个算法将顺序存储结构的线性表(a1...an)逆置为(an...a1)。Input输入长度n:5输入数据:1 2 3 4 5Output5 4 3 2 1Sample Input57 8 9 10 11 #include#include#define MaxSize
2013-10-21 21:32:28
403
原创 C++推箱子(船长推塔救美人)
GameApp.cpp// GameApp.cpp: implementation of the GameApp class.////////////////////////////////////////////////////////////////////////#include "game.h"#include "GameApp.h"#include "GameWnd.h"#ifdef _
2013-08-07 13:38:50
485
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人