- 博客(90)
- 收藏
- 关注
原创 mac idea多版本
Mac 下安装jdk1.7和jdk1.8,并可以版本切换IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)
2021-03-05 10:59:27
2423
1
原创 方法区、永久代和元空间的一些问题
jdk8之后永久代去哪了?https://www.zhihu.com/question/39990490/answer/84155229
2020-08-26 12:29:26
300
原创 内存管理
1. 为什么要有逻辑地址程序无法知道可用的物理地址,所以需要作出映射。2. 逻辑地址如何与物理地址映射一种思路是固定偏移量映射。如下图程序1的偏移量是0,程序2的偏移量是200。如果程序1操作的逻辑地址是100,那个物理地址也是100;如果程序2操作的逻辑地址是50,那个物理地址也是偏移量加上50,也就是物理地址250。这样做的缺点会导致内存浪费: 程序运行时内存会动态变化,很难确定边际值。如图中的程序1,即便根据估测最多使用200字节内存,但是平常运行时内存可能100字节都不到,程序利用率较低
2020-07-12 19:55:19
213
原创 Java线程同步机制
线程同步机制是一套用于协调线程间的数据访问及活动的机制,该机制用于保障线程安全以及实现这些线程的共同目标。锁概述线程安全问题的前提是多个线程并发访问共享变量。针对这个情况,将多个线程对共享变量的并发访问转换为串行访问,既一个共享数据同时只能有一个线程访问,该线程访问结束后其他线程才能访问。这个思想的具体实现就是锁。一个线程在访问共享数据时必须申请对应的锁,获得锁以后才能访问共享数据,访问完共享数据后释放锁,其他线程才能继续申请锁。执行线程在获取锁后到释放锁之前的这段时间执行的代码被称为临界区。临界区一
2020-05-24 19:49:49
535
原创 gperftools安装与使用分析java堆外内存
yum install gperftools libunwindexport LD_PRELOAD=/usr/lib64/libtcmalloc.soexport HEAPPROFILE=/DATA1/admin_tmp/gzip/bin/pprof --text /usr/bin/java /DATA1/admin_tmp/gzip.0001.heap
2020-02-23 13:54:38
2707
1
原创 JVM内存结构与垃圾回收机制
程序计数器程序计数器是一块较小的内存空间,主要用来存储当前线程所执行的字节码的行号指示器。它是线程私有的,随线程生随线程死。如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器则为空。栈每个线程会有一个私有的栈。每个线程中方法的调用又会在本栈中创建一个栈帧。在方法栈中会存放编译期可知的各种基本数据类型(b...
2019-08-28 23:12:25
606
原创 HTTP 2.0
这里写自定义目录标题HTTP的历史http 0.9http 1.0http 1.1HTTP1.X的困境HTTP/1.x 客户端需要使用多个连接才能实现并发和缩短延迟HTTP/1.x 不会压缩请求和响应标头,从而导致不必要的网络流量HTTP/1.x 不支持有效的资源优先级,致使底层 TCP 连接的利用率低下HTTP2.0 技术简介二进制分帧层数据流、消息和帧每个来源一个连接头部压缩服务器推送HTTP...
2019-07-26 18:20:40
1158
转载 网络带宽问题
作者:八里土人链接:https://www.zhihu.com/question/40309762/answer/92055780来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 补充几个啊。 首先楼主没有澄清带宽和速率的问题。这个问题非常有意思。 比如我...
2019-01-12 12:12:18
1198
转载 CAP 理论常被解释为一种“三选二”定律,这是否是一种误解?
原始来源: CAP 理论常被解释为一种“三选二”定律,这是否是一种误解?作者:facetothefate 链接:https://www.zhihu.com/question/64778723/answer/224266038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 是误解,一般来说 P 是前提。所以基本是CA里选,...
2018-07-21 19:03:41
966
转载 正则表达式中 .* 与 .*? 的区别
来源:正则表达式中 .* 与 .*? 的区别简单说是贪婪匹配与非贪婪匹配的区别。比如说匹配输入串A: 101000000000100使用 1.*1 将会匹配到1010000000001, 匹配方法: 先匹配至输入串A的最后, 然后向前匹配, 直到可以匹配到1, 称之为贪婪匹配。使用 1.?1 将会匹配到101, 匹配方法: 匹配下一个1之前的所有字符, 称之为非贪婪匹配。所有带...
2018-05-20 17:01:08
27376
转载 深入浅出 TCP/IP 协议
原始地址: 深入浅出 TCP/IP 协议 TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系...
2018-04-14 12:33:19
358
转载 MySQL之explain 的type列 & Extra列
文章原地址: MySQL之explain 的type列 & Extra列explain 可以分析 select 语句的执行,即 MySQL 的“执行计划。一、type 列MySQL 在表里找到所需行的方式。包括(由左至右,由最差到最好): | All | index | range | ref | eq_ref | const,system | null |ALL(所...
2018-03-31 15:41:10
523
转载 TCP连接复用(TCP Connection Reuse)
原始地址: TCP连接复用(TCP Connection Reuse)负载均衡技术简介 现代企业信息化应用越来越多的采用B/S应用架构来承载企业的关键业务,因此,确保这些任务的可靠运行就变得日益重要。随着越来越多的企业实施数据集中,应用的扩展性、安全性和可靠性也越来越受到企业的重视。 负载均衡技术通过设置虚拟服务器IP(VIP),将后端多台真实服务器的应用资源虚拟成一台高性能的应...
2018-03-30 11:11:46
14511
转载 TCP三次握手/四次挥手
原始地址TCP三次握手/四次挥手一,三次握手TCP使用三次握手建立一个连接:第一次握手:客户端发送SYN包至服务器,并进入SYN_SENT状态,等待服务器确认第二次握手:服务器收到客户端的SYN包,发送一个ACK,同时发送自己的SYN,此时服务器进入SYN_RCVD状态第三次握手:客户端接收到服务器发送的SYN+ACK后,进入ESTABLISHED状态,并发送服务器SYN包的确...
2018-03-28 20:56:19
241
转载 yii2.0请求的生命周期
文章原地址:yii2.0请求的生命周期用户向入口脚本 web/index.php 发起请求。入口脚本加载应用配置 并创建一个应用实例去处理请求。应用通过请求组件 解析请求的路由。应用创建一个控制器实例去处理请求。控制器创建一个动作实例并针对操作执行过滤器。如果任何一个过滤器返回失败,则动作取消。如果所有过滤器都通过,动作将被执行。动作会加载一个数据模型,或许是来自数据库。...
2018-03-28 14:25:59
1630
转载 说说http/webserver/fastcgi/php-fpm
来源:说说http/webserver/fastcgi/php-fpm 前一段时间又重读了《HTTP权威指南》一书,觉得有一些理论知识还是蛮重要的,需要进行一番整理,让自己之后对整条web链路有个更清晰的认识。一:Http请求:当用户打开浏览器并输入一串url地址时,到最终页面内容呈现在用户眼前时,这之间的步骤可大致整理如下:1)用户输入http://www.lxlxw.me。2...
2018-02-27 17:27:58
306
转载 关于CGI 和 PHP-FPM需要弄清的
原文地址: 关于CGI 和 PHP-FPM需要弄清的首先我们引入一些概念,搞清楚 CGI 和 FastCGICGI 通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。FastCGI 快速通用网关接口(F...
2018-02-27 17:00:30
568
原创 tcpkit在CentOS6 安裝
yum -y install readline-develgit clone https://github.com/git-hulk/tcpkit.git /* 首先… 我得先拿到代码*/ cd tcpkit/src make /* make install 是可选,要不要安装到标准的路径 */参考文章tcpkit
2018-01-22 16:38:17
285
转载 获取姓氏笔画数代码
文章原始地址:获取中文名第一个姓氏笔画数created by 2261617274@qq.com at 2015-10-15 15:18:06@param 姓名@return 笔画数eg.author:wintergetNamenum(‘王小明’);function getNamenum($name){ $sur = mb_substr($name,0,1,'utf-8');
2018-01-03 14:04:20
1617
原创 PHP各个版本新特征汇总
PHP 5.3新增特征添加了命名空间的支持.添加了静态晚绑定支持.添加了跳标签支持.添加了原生的闭包(Lambda/匿名函数)支持.新增了两个魔术方法, __callStatic 和 __invoke.添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号.使用 Heredoc 来初始化静态变量和类属性/常量变为可能.可使用双引号声明 Heredoc,
2017-12-29 17:29:35
397
转载 理解 PHP 延迟静态绑定 (late static bindings)
简单理解PHP延迟静态绑定static::中的static其实是运行时所在类的别名,并不是定义类时所在的那个类名。这个东西可以实现在父类中能够调用子类的方法和属性。使用(static)关键字来表示这个别名,和静态方法,静态类没有半毛钱的关系,static::不仅支持静态类,还支持对象(动态类)。预备概念转发调用所谓的“转发调用”(forwarding call)指的是通过以下几种方式进行的静态调用:
2017-12-29 16:52:28
491
转载 MySQL性能优化建议
原文来源:MySQL逻辑架构及性能优化原理 下面会从3个不同方面给出一些优化建议。但请等等,一句忠告:不要听信自己看到的关于优化的“绝对真理”,包括本文所讨论的内容,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设。 表的设计与数据类型优化选择数据类型只要遵循小而简单的原则就好,越小的数据类型通常会更快,占用更少的磁盘、内存,处理时需要的CPU周期也更少。越简单
2017-12-27 18:25:38
268
转载 常用指令 参考《鸟哥的Linux私房菜+基础学习篇 第三版》
文章原始地址:常用指令 参考《鸟哥的Linux私房菜+基础学习篇 第三版》ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录 touch 创建空文件 echo 创建带有内容的文件。 cat 查看文件内容 cp 拷贝 mv
2017-12-27 10:47:45
872
原创 Linux常用指令随手记
netstat : 监控网络和网络对应进程netstat -[atunlp] 参数: -a :将目前系统上所有的联机、监听、Socket 数据都列出来 -t :列出 tcp 网绚封包的数据 -u :列出 udp 网绚封包的数据 -n :不已程序的服务名称,以端号 (port number) 来显示; -l :列出目前正在网绚监听 (listen)的服务; -p
2017-12-26 18:09:51
211
转载 redis持久化RDB和AOF
原始地址Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可
2017-12-26 17:27:19
189
转载 MySQL查询执行过程
MySQL查询过程 用户总是希望MySQL能够获得更高的查询性能,最好的办法是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,就会发现:很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。 当向MySQL发送一个请求的时候,MySQL到底做了些什么呢?下图展示了MySQL的查询过程。客户端/服务端通信协议MySQL客户端/服务端通信协议是“半双工
2017-12-24 15:53:43
400
转载 MySQL逻辑架构
MySQL逻辑架构如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎
2017-12-24 14:05:20
379
转载 【MySQL】20个经典面试题
原博文来源:【MySQL】20个经典面试题1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;2、MySQL中myisam与innodb的区别,至少5点问5点不同; innodb引擎的4大特性 2者selectcount(*)哪个更快,为什么 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义(1)、varchar与char的区别 (
2017-12-22 17:55:53
12539
原创 Redis的应用场景
缓存对热点数据进行缓存,项目是直播项目,常用来缓存登陆用户信息、直播间的嘉宾列表(嘉宾类似这个直播间的会员,享受各种特权)、主播信息等,这些都是使用hash类型进行保存的。会话用Redis来存储会话信息,多个服务器都可以共享这个会话信息。这个是使用Yii2框架实现的。计数器用来实现:直播间的访问人数与关注人数、活动的点击数量、点播视频的评论数量等,这部分都是使用字符串存储,然后调用incr指令就很可
2017-12-22 16:50:13
276
原创 Redis的数据结构简介
本文参考以下文章: Redis实战 Redis 命令参考常用数据结构Redis支持5种数据结构,分别是STRING(字符串)、LIST(列表)、HASH(散列)、SET(集合)、ZSET(有序集合)。Redis的一部分指令对这5中数据类型是通用的,如DEL、TYPE等;但也有一部分Redis指令只对特定的一种或者两种结构支持。STRING(字符串)数据结构STRING结构示意图:
2017-12-22 15:37:59
957
转载 正则表达式分组、断言详解
提示:阅读本文需要有一定的正则表达式基础。 正则表达式中的断言,作为高级应用出现,倒不是因为它有多难,而是概念比较抽象,不容易理解而已,今天就让小菜通俗的讲解一下。 如果不用断言,以往用过的那些表达式,仅仅能获取到有规律的字符串,而不能获取无规律的字符串。 举个例子,比如html源码中有xxx标签,用以前的知识,我们只能确定源码
2017-12-13 14:55:58
406
原创 PHP使用copy函数复制windows文件时出现failed to open stream: Invalid argument in错误
原始代码:$source = 'G:\www\offline\版本号.txt';$destination = __DIR__ . DIRECTORY_SEPARATOR . 'll.txt';copy($source,$destination);报错 Warning: copy(G:\www\offline\版本号.txt): failed to open stream: Invalid ar
2017-11-21 12:00:13
11048
1
转载 Nginx中unknown directive "if(!-e"解决方案
来源:Nginx中unknown directive “if(!-e”解决方案 今天在写Nginx中URL重写的时候,一直报错如下 [emerg]: unknown directive “if(!-e” in /usr/local/nginx/conf/nginx.conf:124 检查了好几遍,配置文件也找不到问题所在 最后才发现原来是if和(之间必须有个空格
2017-11-09 13:05:27
6362
转载 PHP 5.3.0以上推荐使用mysqlnd驱动
什么是mysqlnd驱动? PHP手册上的描述: MySQL Native Driver is a replacement for the MySQL Client Library (libmysql). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0. mysqldnd即my
2017-08-23 22:10:43
690
原创 RabbitMQ安装及PHP扩展安装
RabbitMQ标签(空格分隔): 未分类安装RabbitMQ安装 ErlangErlang依赖库:GCC 编译使用Ncurses 可以在Linux终端中写出字符用户界面的一个库OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。yum -y install make gcc gcc-c++ k
2017-07-24 15:50:45
1517
原创 rabbitmq-c安装出现POPT_ARG_ARGV错误解决方法
安装的最新版本rabbitmq-c时最后编译时总是报错,报错如下[ 91%] Building C object tools/CMakeFiles/amqp-publish.dir/publish.c.o/usr/local/src/rabbitmq-c-master/tools/publish.c: In function ‘main’:/usr/local/src/rabbitmq-c-ma
2017-07-24 13:10:29
2123
原创 MySQL锁机制相关博文-看这些就够了
mysql共享锁与排他锁 MySQL的并发控制与加锁分析 MySQL锁系列经典文档 mysql隔离级别及事务传播
2017-07-16 18:22:48
414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人