自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 开发相关-开发规范

开发规约

2024-04-18 22:06:51 288 1

原创 数据库设计规范

数据库表结构设计规范

2024-04-18 21:55:15 628

原创 开发相关数据库规范

数据库开发人员常见问题,和优化建议

2022-08-14 20:59:13 325 1

原创 nginx-king teacher

nginx -c conf/nginx.conf # 开启了http协议的初始化读nginx源码,从conf开始,其次tcp server的初始化,http的状态机,最后是服务器的处理1、processs 4启动了四个work进程,1、nginx三次握手是worker进程完成还是master进程完成?worker进程没有监听80, master一开始监听80,是在listen完之后,master process listen(80)fork() 子进程, 子进程继承master

2021-09-30 21:30:04 186

原创 JVM-垃圾收集器G1-笔记

常见的垃圾回收算法1、标记清除法(mark sweep) - 位置不连续,产生碎片,效率偏低(两遍扫描)2、拷贝算法(copying) - 没有碎片,浪费空间3、标记压缩(mark compact) - 没有碎片,效率偏低(两边扫描,指针需要调整)以上的算法由古至今没变。目前常见的垃圾收集器目前分代垃圾回收,用的最多jdk1.8常用组合是年轻代parallel scavenge和老年代parallel Old垃圾收集器(记忆ps+po)。堆内存逻辑如下(jdk8进行jvm调优用z1即可)只

2021-09-12 20:56:06 229

原创 线程并发的三大特性

1、原子性 - 关键字:synchronized原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,即不被终端操作,要不全部执行完成,要不都不执行,就好比转载,从账户A向账户B转100元,那么必然包括2个操作,从账户A减去100元,往账户B加上100元。两个操作必须全部完成。那程序中原子性指的是最小的操作单元,比如自增操作,它本身其实并不是原子性操作,分了三部,包括读取变量的原始值、进行加1操作、写入工作内存。所以再多线程中,有可能一个线程还没自增完,可能才执行到第二步,另一个线程就已经读取了值

2021-09-12 15:26:45 301

原创 git分支创建与合并

分支的新建与合并项目开发经历步骤如下:1. 为实现某个新的用户需求,创建一个分支。$ git checkout -b iss9527Switched to a new branch "iss9527"上面的命令等同于如下$ git branch iss53$ git checkout iss533. 在这个分支上开展工作并提交。$ vim index.html$ git add .$ git commit -m '提交备注信息'$ git push -u origin iss95

2021-09-07 16:08:53 193

原创 Markdown基本语法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-26 16:18:15 146

原创 Linux常用命令-时间-awk

大数据技术之Centos-7.5安装版本:V1.01.1安装Centos7.51.1.1在VMware Workstation新建虚拟机1.1.2设置及安装Centos7.5(1)选中虚拟机右键设置,选择镜像文件路径(2)启动虚拟机(3)选中install Centos 7进行安装(4)选择语言为中文(5)软件选择(6)选择带有gui服务器,右侧不选(7)选择系统安装位置,直接点完成自动分区(8)配置网络(9)开始安装(10)等待安装(11)安装完毕后重启,配置初始设置1.1

2021-08-23 07:13:08 1038

转载 消息中间件零拷贝?mmap与sendFile的区别是什么?

零拷贝这三个字,一直是服务器网络编程的关键字,任何性能优化都离不开。在 Java 程序员的世界,常用的零拷贝有 mmap 和 sendFile。那么,他们在 OS 里,到底是怎么样的一个的设计?本文将简单聊聊 mmap 和 sendFile 这两个零拷贝。一、传统IO的劣势初学 Java 时,我们在学习 IO 和 网络编程时,会使用以下代码:File file = new File("index.html");RandomAccessFile raf = new RandomAccessFile(

2021-08-12 11:20:52 674

转载 深度理解tcp三次握手

其实三次握手在内核的实现中,并不只是简单的状态的流转,还包括半连接队列、syncookie、全连接队列、重传计时器等关键操作。如果能深刻理解这些,你对线上把握和理解将更进一步。在基于 TCP 的服务开发中,三次握手的主要流程图如下。服务器中的核心代码是创建 socket,绑定端口,listen 监听,最后 accept 接收客户端的请求。//服务端核心代码int main(int argc, char const *argv[]){ int fd = socket(AF_INET, SOCK

2021-08-07 11:00:20 241

原创 VMware安装Centos7教程

大数据技术之Centos-7.5安装版本:V1.01.1安装Centos7.51.1.1在VMware Workstation新建虚拟机勾选cpu虚拟化引擎选项1.1.2设置及安装Centos7.5(1)选中虚拟机右键设置,选择镜像文件路径(2)启动虚拟机(3)选中install Centos 7进行安装选择语言为中文软件选择,选择带有gui服务器,右侧不选选择系统安装位置,直接点完成自动分区配置网络开始安装

2021-08-02 16:07:59 125

原创 Spring生命周期

作者:方程式能今天做好的事就不要等到明天。以梦为马,学习趁年华。spring是什么轻量级的JavaEE开源框架,是一种容器框架,用来装载Java Bean对象,是个中间层框架,江湖人称万能胶,可以和市场上的主流框架进行无缝集成,比如mybatis、redis、encache等。让企业开发方便快捷。Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架从大小与开销方面都是,spring是轻量级的。通过控制反转的技术达到松耦合目的–比如A对象有B属性,正常为A主动创建.

2021-07-31 10:00:20 685

原创 centos7安装MySQL8简易教程

一、检测是否存在DByum安装MySQL简便、稳定,centos7默认的db是mariadb,先卸载mariadb,先查看是否安装mariadb,命令如下:rpm -qa | grep mariadb如果则拷贝名称,使用下面命令删除rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64二、安装MySQL81、yum仓库下载MySQL:sudo yum localinstall https://repo.mysql.com//mysql80-commu

2021-07-25 12:45:49 372 2

原创 tomcat基本流程

tomcat核心组件的架构:Server{ Service[]{//真正给tomcat提供功能standardService处理的HTTP请求 Connector[]:端口监听服务涉及 apr,nio,nio2 Engine:{:控制处理逻辑 Host[]{//虚拟主机,映射域名 Context[]:{//代表web应用 Wapper[]{//每个wapper封装一个Servlet的配置详情

2021-07-24 13:56:42 435

原创 NAT穿透(UDP打洞)

1、NAT(Network Address Translator)介绍NAT有两大类,基本NAT和NAPT。1.1、基本NAT静态NAT:一个公网IP对应一个内部IP,一对一转换动态NAT:N个公网IP对应M个内部IP,不固定的一对一转换关系1.2、NAPT(Network Address/Port Translator)现在基本使用这种,又分为对称和锥型NAT。锥型NAT,有完全锥型、受限制锥型、端口受限制锥型三种:a)Full Cone NAT(完全圆锥型):从同一私网地址端口192.1

2021-07-21 22:22:12 1712

原创 zeroTier实现内网穿透-moon服务搭建

序言frp 很多人都了解,是一个用于内网穿透的高性能的反向代理应用,简单点说就是可以把 NAT 后面的某台机器的端口转发到公网 IP上去,类似 ngrok 或者花生壳内网版,好处是可以自建。UDP 打洞是一种 NAT 穿透技术,与上面 frp 的区别在于,frp 的转发模式本质是通过具有公网 IP 的服务器 M来进行流量转发(frp 也提供 xtcp 模式来进行 NAT 穿透,但是成功率太低,效果不佳),这样如果服务器 M的带宽有限,就会成为传输时的瓶颈,无法有效利用全部带宽。Zerotier

2021-07-21 21:05:51 25573 1

原创 IT江湖我的路

人只要为了生存,就摆脱不了江湖的纷争。 江湖,江湖,江湖在哪里?江湖就在人群中,看得见的刀光剑影,看不见的勾心斗角,说到底还是人心的江湖,人分男女,心分善恶,红尘滚滚人在利往,究其本源,都是人心难测,今生苦苦生计,为钱奔波,流落他乡,世世都会遇上爱与恨,惧与拼,留与离,救与被救,我非电影中打打杀杀的江湖人,都是走着江湖路,这便是江湖。 好多时候,我都会一直保有一颗平常心,学会感恩,信守诺言,尽量不生气,要争气,不要拖延要积极,不要心动要行动。既然选择了IT...

2021-07-06 22:38:34 104

原创 vim命令多行操作

一、文件内多行注释: 1. 按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式; 2. 在命令模式下h键或j键选择需要注释的多行; 3. 按下(大写)“i”键,进入插入模式; 4. 输入注释符#或// 5. 最后按下“Esc”键。注:在按下esc键后,即可出现二、文件内删除多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v, 进入列模式...

2021-07-06 22:20:54 10480

原创 计算机的补码世界

就讨论16位int的情形吧,这是个数学问题整型数在计算机里面都是按照“补码”来存储的,补码是什么呢?请看:0. 补码的最高位,代表符号位,0为正1为负1. 对于正整数,补码和该整数的二进制码一样2. 对于负整数,相当于对其绝对值的二进制码按位取反,然后+1,最后再把符号位置为1(当然还可以有更简便的算法【数学里面叫有限域的算法,用模运算来计算可能比较符合一般习惯一点】,不过逻辑电路层面是这么实现的,个人认为这么说明比较底层一点)来几个直观的例子:+3的补码是0000 0000 0000 001

2021-06-14 16:30:04 167

原创 项目整改优化分析

2021-06-13 12:14:17 126

原创 软件编码阶段解读

软件编码的作用是将系统分析和系统设计的结果和内容转换为多条线实际产品的过程 。 编码是软件项目开展过程中必须的、不 可或缺的、极为重要的环节。 7.2 编码阶段的目标和任务 目标: 按照系统设计阶段产生的文档,进行软 件系统功能开发,整合各个功能模块,实现 系统的集成运行,并满足需求分析阶段提出 的性能要求。 任务: 将详细设计的结果转化为用具体程序设 计语言编写的程序代码。 做好: (1)对编码任务进行工作分解,在整体项 目计划的基础上,制定本阶段的工作计划(包 括进度、人员、费用、质量、自测试等); (

2021-06-12 13:35:51 5417

原创 Nginx反向代理负载均衡

普通的负载均衡软件,如LVS,其实现的功能只是对请求数据包的转发、传递,从负载均衡下的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真是用户;而反向代理不一样,反向代理服务器在接收访问用户请求后,会代理用户重新发起请求代理下的节点服务器,并把数据返回给客户端。在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器,而非真实的网站访问用户。 upstream_module和健康检测ngx_http_upstream_module 是负载均衡模块,可以实现网站的负载均...

2021-03-21 16:26:51 65

原创 JavaWeb项目分层理念

一、背景  从08年进入Java世界以来,初出茅庐,Java为网络而生,为并发而生。网络应用编程,自然涉及到MVC分层模型,谈起分层模型,大部分都会认为,很简单嘛,无非就是Controller、Service、Dao三层。看起来简单,很多人其实并没有把他们指责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成dao的桥梁,透明传输,这其实是很多人开发...

2018-09-03 17:55:30 2395

原创 类加载器getResourceAsStream管理配置文件

package com.tansun;public class ResourceStream { public static void main(String[] args) throws Exception {  /**   * ResourceStream.class.getResourceAsStream 是从class所在目录获取文件   * ResourceStream.class....

2018-04-07 11:11:13 366

转载 关于内存中栈和堆的区别

1、内存分配方面:    堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。    栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、申请方式方面:    堆:需要程序员自己申请,并...

2018-04-07 10:18:28 181

jdk-8u201-linux-x64.tar.gz

jdk开发安装包

2021-03-17

ORACLE数据库总结

一般公司都会面试的资料,比较全面,有表空间,分区表 还有一些有用的东西

2009-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除