自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java19虚拟线程都来了,我正在写的线程代码会被淘汰掉吗?

深入了解Java虚拟线程

2022-10-07 22:05:47 445 1

原创 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul

本文为《高性能网络编程游记》的第六篇“性能追击:万字长文30+图揭秘8大主流服务器程序线程模型”。最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让大家见笑了。本文我们来探索一下主流的各种应用服务器的网络处理模型,看看大家都是怎么设计网络程序的。在本文中,我会从Node.js、Apache Server、Nginx、Netty、Redis、Tomcat、MySQL、Zuul等常用的服务器程序,给大家逐一分析,分析各种服务器程序的性能,心中有数,才能手中有术,从此性能是熟客。虽.

2021-03-10 00:00:24 595 2

原创 HTTPS:网络安全攻坚战

本文为《三万长文50+趣图带你领悟web编程的内功心法》第五个章节。5、HTTPS我们知道,明文传输和不安全是HTTP的其中一个特点,但是随着越来越多机密的业务交易转移到线上,如银行转账、证券交易、在线支付、电商等,我们对传输的安全性有了更高的要求,为此,出现了HTTP的扩展:HTTPS,Hypertext Transfer Protocol Secure,超文本传输安全协议。HTTPS默认端口号为433,基于HTTP扩展了安全传输的特性,其他特性完全沿用HTTP。5.1、HTTPS协议架构我.

2021-02-26 07:52:25 428

原创 HTTP常用请求头大揭秘

本文为《三万长文50+趣图带你领悟web编程的内功心法》第四个章节。4、HTTP常用请求头大揭秘上面列出了报文的各种请求头、响应头、状态码,是不是感到特别晕呢。这节我们就专门挑一些最常用的请求头,举例说明请求头对应支撑的HTTP功能。4.1、数据类型、压缩编码,语言,内容协商和质量值我们来看一个最基本的HTTP交互。其中,GET表示方法,就不多说了。Host:Host 请求头指明了请求将要发送到的服务器主机名和端口号。Host让虚拟主机托管成为了可能,也就是一个IP上提供多个Web服务。.

2021-02-25 21:50:11 2417

原创 HTTP/1.1报文详解

本文为《三万长文50+趣图带你领悟web编程的内功心法》第三个章节。3、HTTP/1.1报文详解在RFC2616中心详细的描述了HTTP/1.1[^3]的报文,感兴趣的朋友也可以前往阅读。HTTP是基于TCP的,HTTP作为应用层协议,会在TCP/IP协议栈往下传递的时候,不断封装数据帧,如下图:上面HTTP正文即是以我们HTTP报文格式来组织的。下面我们看看具体的HTTP报文的格式。3.1、HTTP报文组成部分HTTP请求和响应都使用如下通用的格式:start-line:起始行.

2021-02-24 08:53:15 1449

原创 初识HTTP/1.1:可扩展,可靠性,请求应答,无状态,明文传输

本文为《三万长文50+趣图带你领悟web编程的内功心法》第二个章节。2、初识HTTP/1.1接下来我们先来简单介绍下HTTP/1.1的优缺点,好让大家对它有个认识,然后再进一步深入了解。2.1、可扩展正是因为HTTP规范中限制很少,告诉你可以做什么,但是不会告诉你各种条条框框不能做什么,所以,很容易扩展,这也是为什么从HTTP/0.9诞生,一直扩展升级,添加更多的特性的原因。2.2、传输可靠性由于底层是基于TCP协议的,所以继承了TCP传输数据的可靠性,主要体现在[^10]:数据的顺序.

2021-02-20 22:32:41 870

原创 三万长文50+趣图带你领悟web编程的内功心法:一文带你深入解读HTTP的发展史

看到题目,大家是不是认为根据上一篇(两万字长文50+张趣图带你领悟网络编程的内功心法)一样,其实不然,我们上一边介绍的是网络编程的基本功,有了这些基本功之后,我们就可以在此之上构建更加接近实际应用的web程序了。为了快速展示他们的层次关系,我用几本书叠了起来进行说明,顺便给大家推荐这几本基本算是这些领域比较权威的书籍。如下图,由下往上看:TCP/IP构成了网络编程的基础设施;Socket套接字编程为应用层提供了访问TCP/IP协议栈的接口;在应用层上面,指定了面向Web编程的HTTP协议;Tom

2021-02-20 21:48:44 305

原创 两万字长文50+张趣图带你领悟网络编程的内功心法

前言我大学是学网络工程专业,也就是那种拉网线,面向网线编程的。依稀记得学习计算机网络这门课程的时候搭建的IT宅 itzhai.com个人网站。算一下,学这门课程也已经快十年了。某一天,偶然又看到了这本书:翻了下,发现里面的内容竟然还是毫不过时,真的是越底层的知识越有价值呀。我擦了擦书面的灰尘,决定要为它写点什么,于是又从书架上找了相关的书籍:来回翻阅和梳理总结,逐渐输出了这篇文章,献给对网络不太熟悉,又想快速从入门到熟练的朋友们。相信大家拿到Socket API,就可以很快写好代码,收发消

2020-08-03 21:48:24 1568

原创 SQL运行内幕:从执行原理看调优的本质

相信大家看过无数的MySQL调优经验贴了,会告诉你各种调优手段,如:避免 select *;join字段走索引;慎用in和not in,用exists取代in;避免在where子句中对字段进行函数操作;尽量避免更新聚集索引;group by如果不需要排序,手动加上 order by null;join选择小表作为驱动表;order by字段尽量走索引…其中有些手段也许跟随者MySQL版本的升级过时了。我们真的需要背这些调优手段吗?我觉得是没有必要的,在掌握MySQL存储架构和SQL执行

2020-06-28 21:12:52 1057

原创 洞悉MySQL底层架构:游走在缓冲与磁盘之间

提起MySQL,其实网上已经有一大把教程了,为什么我还要写这篇文章呢,大概是因为网上很多网站都是比较零散,而且描述不够直观,不能系统对MySQL相关知识有一个系统的学习,导致不能形成知识体系。为此我撰写了这篇文章,试图让这些底层架构相关知识更加直观易懂:尽量以图文的方式描述技术原理;涉及到关键的技术,附加官网或者技术书籍来源,方便大家进一步扩展学习;涉及到的背景知识尽可能做一个交代,比如讨论到log buffer的刷盘方式,延伸一下IO写磁盘相关知识点。好了,MySQL从不会到精通系列马上就要

2020-06-02 21:59:51 614 2

原创 数据结构:答应我,别再逃避我了好吗?

本文我们来介绍一下编程中常见的一些数据结构。为什么要学习数据结构?随着业务场景越来越复杂,系统并发量越来也高,要处理的数据越来越多,特别是大型互联网的高并发、高性能、高可用系统,对技术要求越来越高,我们引入各种中间件,这些中间件底层涉及到的各种数据结构和算法,是其核心技术之一。如:ElasticSearch中用于压缩倒排索引内存存储空间的FST,用于查询条件合并的SkipList,用于提高...

2020-05-01 11:17:26 481

原创 架构演变之路:为何要搞微服务架构?

有不少朋友或同事都问过我这个问题:为什么我们要搞微服务架构,一个项目把代码从头撸到尾不是很方便吗,开发更快速,部署也容易。而且一提起微服务,涉及的技术就一大堆,好像几辈子也学不完。怎么解答这个问题呢?我想还是通过架构的发展变迁史来说起,为什么会出现现在的各种架构。只有从整体上了解了架构的脉络,我们才好更加全方位的评估一个架构。为此,我们有理由来梳理一下架构发展的来龙去脉,究竟为何会出现微服务,...

2020-05-01 10:52:17 2019

原创 如何远离浮躁的碎片化学习,给自己增加职场竞争力

由于疫情的影响,最近在家办公盛行。有同学跟我抱怨,说他们公司某某员工穿着睡衣就开视频会议了。然后开完会议就躺在沙发上面办公,越躺越低,然后不小心睡着了。起来就发现到了下班的点了。心里那个虚呀,于是晚上加班继续完成任务。我觉得这是在家办公效率低的原因之一吧…言归正传,今天我想分享一点关于学习方法的内容,顺便引出一些干货给大家。于是早早洗漱精心打扮一番坐在电脑前开始干活了。事实证明这个仪式感对效...

2020-03-29 17:00:58 418

原创 Java最大栈深度有多大

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入JVM大型撕逼现场。为了能够让大家从大型撕逼现场中脱颖而出,最近我苦思冥想如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。为了让JVM相关知识点能够形成一个体系,arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。持续更新中,欢迎...

2020-02-15 16:25:40 4511 1

原创 一篇图文彻底弄懂类加载器与双亲委派机制

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入JVM大型撕逼现场。为了能够让大家从大型撕逼现场中脱颖而出,最近我苦思冥想如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。为了让JVM相关知识点能够形成一个体系,arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。持续更新中,欢迎...

2020-02-15 16:24:52 1459 3

原创 一篇图文彻底弄懂Class文件是如何被加载进JVM的

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入JVM大型撕逼现场。为了能够让大家从大型撕逼现场中脱颖而出,最近我苦思冥想如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。为了让JVM相关知识点能够形成一个体系,arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。持续更新中,欢迎...

2020-02-15 16:24:04 1520

原创 Class文件十六进制背后的秘密

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入JVM大型撕逼现场。为了能够让大家从大型撕逼现场中脱颖而出,最近我苦思冥想如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。为了让JVM相关知识点能够形成一个体系,arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。持续更新中,欢迎...

2020-02-15 16:23:00 4188 2

原创 一文彻底弄懂Java垃圾回收机制

无论你是跟同事、同学、上下级、同行、或者面试官讨论技术问题的时候,很容易卷入JVM大型撕逼现场。为了能够让大家从大型撕逼现场中脱颖而出,最近我苦思冥想如何把知识点尽可能呈现的容易理解,方便记忆。于是就开启了这一系列文章的编写。为了让JVM相关知识点能够形成一个体系,arthinking将编写整理一系列的专题,以尽量以图片的方式描述相关知识点,并且最终把所有相关知识点串成了一张图。持续更新中,欢迎...

2020-02-15 16:18:29 929

原创 10分钟教你如何hack掉Java编译器

10分钟教你如何hack掉Java编译器1、程序编译执行流程1.1、一般执行流程1.2、编译案例2、Java程序编译类型2.1、Java程序编译执行过程3、javac3.1、javac中的主要类3.2、javac主要处理流程4、注解处理器4.1、注解处理器与反射的区别4.2、如何实现一个注解处理器4.2.1、写一个注解4.2.2、写一个注解处理器4.2.3、通过SPI注册你的注解处理器4.2.4、...

2020-02-06 12:43:08 1964

原创 Java对象历险记 [动图]

Java对象历险记对象的分配和回收流程1、优先在Eden区分配对象2、大对象直接进入老年代3、长期存活对象进入老年代4、空间分配担保导读对象在JVM内存中是如何流转的什么是空间分配担保什么时候对象会流转到老年代对象的分配和回收流程如上图动画所示:1、优先在Eden区分配对象Eden区空间不足,触发Minor GC,标记可回收对象,然后Eden区存活对象拷贝到往Survi...

2020-02-02 13:12:43 158

原创 一篇图文彻底弄懂Class文件是如何被加载进JVM的

一篇图文彻底弄懂Class文件是如何被加载进JVM的1、加载一个Class文件1.1、加载阶段1.1.1、如何触发加载Class文件1.1.2、获取二进制流的方式1.1.3、验证二进制字节流1.2、连接阶段1.2.1、验证阶段验证阶段做什么事情1.2.1.1、文件格式验证1.2.1.2、元数据验证1.2.1.3、字节码验证1.2.1.4、符号引用验证1.2.2、准备阶段1.2.3、解析阶段1.3、...

2020-01-18 11:11:42 4196

原创 API管理工具对比,制定您的API管理平台

有一定工作年限的人一定会接触过通过word文档或者wiki的方式来进行接口对接交流的介质。后来为了方便协作修改接口,又逐渐的开始有人通过markdown文档,提交到版本管理系统的方式来编写接口。后来随着浏览器的发展,出现了有利于接口调试的插件,最常见的就是postman,可以很方便的向接口发起post和get请求,并附加各种请求头和cookie等,并且支持编写接口测试脚本来做接口测试。您也可以把...

2018-12-13 20:03:16 2223

原创 Phabricator集成Jenkins实现自动化构建

phabricator-jenkins-pluginphabricator-jenkins-plugin是Uber开发的让Phabricator支持通过Jenkins进行自动化构建的工具,通过引入该工具,我们可以很容易实现如下相关功能:提交代码评审之后自动触发构建测试,并且把构建测试结果附加到评审单子里面;代码通过arc land命令合并并推送到远程分支之后,可以自动触发项目构建,特别的,...

2018-11-23 20:57:34 2098

原创 Phabricator集成Jenkins-配置篇

1、安装插件:根据github上面的phabricator-jenkins-plugin插件readme文件进行配置。在Jenkins安装插件页面搜索phabricator-jenkins-plugin插件并且安装:1.1、Phabricator新加bot账号配置在Phabricator用户管理中创建一个bot账号:在创建界面中需要填写邮箱地址,因为此账号会自动通过验证,如果没有可...

2018-11-23 20:08:20 1548

原创 Socket通讯编程之资源回收的问题

在客户端要关闭socket之前需要先通过发送消息告诉服务器端:    //通知服务器端关闭socket    pw.println(version + author + time + "bye" + end);1、服务器端收到消息后转发消息给客户端关闭socket的消息并关闭,并退出while循环或者结束该socket的接收线程:Code:     w

2010-12-26 19:29:00 3384

原创 双击startup.bat,启动不了tomcat,JAVA_HOME environment variable is not defined correctly

双击startup.bat,启动不了tomcatJAVA_HOME environment variable is not defined correctly

2010-12-23 13:06:00 7259 1

转载 cmd中文件夹的命名注意事项

cmd中文件夹的命名注意事项

2010-12-20 22:10:00 2660

原创 IE6兼容性的几个问题

IE6兼容性的几个问题

2010-12-11 23:50:00 3832

原创 Buffer overrun detected!

Buffer overrun detected!

2010-12-05 14:42:00 7397

原创 Socket通讯编程实现简单的任意聊天程序

Socket通讯编程实现简单的任意聊天程序

2010-11-25 10:31:00 1544

原创 用多线程编写多人聊天程序基本原理分析

用多线程编写多人聊天程序基本原理分析

2010-11-25 10:28:00 2787

原创 margin与padding在不同版本的IE的表现

html:css:div#test1{       width:210px;       height:150px;       background:#5cb3f0;}div#test1 img{       display:block;       width:200px;       height:136px;       margin:0px;       padding:0px;}margin:    margin:0px        没有撑开,在IE6,IE7和IE8中,如图:       

2010-10-12 23:31:00 1247

原创 Unable to compile class for JSP

Unable to compile class for JSP

2010-10-12 23:29:00 1864

原创 用MyEclipse写jsp文件时,出现光标不见了或者乱跑的情况

问题:用MyEclipse写JSP文件时,光标在输完一个字母后就不见了,或者会乱跑原因:这个跟MyEclipse的版本有关,或者可能是插件的问题,算是MyEclipse的一个bug……解决方法: 方法1:在 MyEclipse 工具栏中依次选择 Window-->Preferences--> MyEclipse, 在validation 中将 suspend all valida

2010-10-12 23:26:00 1252

原创 无法定位程序输入点...于动态链接库 msvcrt.dll上

无法定位程序输入点...于动态链接库 msvcrt.dll上

2010-10-01 18:54:00 4868 2

ext-jsb-3.0.0_ext-3.3.1

Ext JS 3.0以上版本在eclipse中使用spket插件设置自动提示所需的相关工具包

2011-03-19

空空如也

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

TA关注的人

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