- 博客(171)
- 资源 (43)
- 收藏
- 关注
原创 js 数据类型检测 深浅克隆详解
/** * 数据类型检测 * typeof 正规军 根据计算机底层存储的二进制检测的 * + 返回结果是一个字符串,字符串包含数据类型 例如number\string\boolean\undefined\symbol\bigint\object\function * instanceof 基于xxx instanceof 类检测时,浏览器会把它转换为类.[Symbol.hasInstance](xxx),Symbol.hasInstance在Function原型上,所以instanceof.
2020-11-16 11:04:42
311
原创 js prototype_proto_Function详解
/** * 所有的类都是函数数据类型的 即 所有的函数都是Function的实例 * 每个类(函数)都具备prototype(显式原型),并且属性值是一个对象,对象中存储的是供‘对象实例’能调用的公共属性和方法 * 并且类的原型对象天生具备一个属性:constructor,指向类本身 * 每个对象(普通对象、prototype、实例、函等数)都具备:_proto_原型链,属性值是当前实例所属类的原型 * 实例._proto_ === 类.prototype * 函数._proto_ === .
2020-11-16 11:02:40
799
原创 js_this_arguments_callbindapply 详解
/** * THIS 函数的执行主体,跟执行上下文不是一个概念 *全局的this是window *this跟函数在哪执行和在哪定义没有必然联系 * * 可以按照一下规律确实执行主体是谁: * + 给当前元素的某个事件行为绑定方法,事件触发,方法中的this是当前元素本身 * 例如给body的click绑定方法,则方法中的this就是body,(特殊情况 ie678下基于attachEvent实现的DOM2事件绑定,绑定方法中的this不是元素本身,而是window) * .
2020-11-16 11:01:02
311
原创 js 闭包 基础 示例 高级
浏览器垃圾回收机制/**GC:浏览器垃圾回收机制【栈内存:EC】全局执行上下文:在浏览器加载页面的时候形成,然后在页面关闭的时候释放(页面刷新:先释放,重新加载中后再形成)私有上下文:函数执行会形成一个私有上下文(代码块中let/const也会形成私有上下文) + 一般情况下代码执行完就会出栈释放 + 然后当前上下文中的某个内容(一般是一个堆(对象、函数))被上下文以外的事物占用了,则当前上下文不能被释放*【堆内存:HEAP】以谷歌浏览器为例 按照
2020-11-03 10:33:18
355
原创 js 变量提升 代码详解
/** * 变量提升:在当前上下文中(全局/私有/块级),JS代码自上而下执行之前,浏览器会提前处理一下事情 * 可以理解为词法解析的一个环节 * * 会把当前上下文所有带var、function关键词的进行提前声明或者定义。es6中的let\const不会 * var a= 10; * 声明declare: var a; * 定义defined:a=10; *var、function 没有优先级,自上而下查找提升,不会重复声明 *** * * 基于var\function 在全局上下.
2020-10-30 11:33:35
197
原创 js 数据类型转换 常见转化
把其他类型转化为Number类型 1.特定需要转换为Number的 + Number([val]) + parseInt/parseFloat([val]) 2.隐式转换(浏览器内部默认需要先转换为Number再进行计算的) + isNaN([val]) + 数学运算(特殊情况:+在出现字符串的情况下不是数学运算,是字符串拼接) + 在==比较的时候,有些值需要转换为数字再进行比较把其他类型转换为数字Number('') // 0Number('1.
2020-10-27 10:50:06
320
原创 TCP三次握手四次挥手简析
七层网络模型应用层网络服务与最终用户的一个接口。协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP表示层数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)格式有,JPEG、ASCll、EBCDIC、加密格式等[2]会话层建立、管理、终止会话。(在五层模型里面已经合并到了应用层)对应主机进程,指本地主机与远程主机正在进行的会话传输层传输控制层定义传输数据的协议端口号,以及流控和差错校验。协议有:..
2020-06-07 00:37:50
350
原创 mysql事务隔离级别与锁
MySQL的四种事务隔离级别事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 3、隔离性(Isolation..
2020-06-05 14:28:48
517
原创 JVM理论知识
java虚拟机(java virtual machine,JVM),一种能够运行java字节码的虚拟机。作为一种编程语言的虚拟机,实际上不只是专用于Java语言,只要生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。比如kotlin、scala等。JVM的基本结构JVM由三个主要的子系统构成类加载子系统 运行时数据区(内存结构) 执行引擎类加载机制类的生命周期1.加载将.class文件从磁盘读到内存2.连接2.1 验证验证字节码
2020-05-27 12:03:49
271
翻译 JVM字节代码指令
字节代码指令由一个标识该指令的操作码和固定数目的参数组成:操作码是一个无符号字节值——即字节代码名,由助记符号标识。例如,操作码 0 用助 记符号 NOP 表示,对应于不做任何操作的指令。 参数是静态值,确定了精确的指令行为。它们紧跟在操作码之后给出。比如GOTO标记 指令(其操作码的值为 167)以一个指明下一条待执行指令的标记作为参数标记。不要 将指令参数与指令操作数相混淆:参数值是静态已知的,存储在编译后的代码中,而 操作数值来自操作数栈,只有到运行时才能知道。字节代码指令可以分为两类:.
2020-05-11 13:15:24
316
原创 javasisit对class字节码基本使用以及对一个class多次修改
需求:(1)对UserServiceImpl现有字节码进行修改逻辑操作 (2)修改完成后使用该class (3) 再次修改UserServiceImpl字节码,添加新逻辑 (4)修改完成后使用该class遇到的问题: (1)一个类只能被加载一次 (2)类加载后默认不能为修...
2019-11-21 17:41:27
1256
1
原创 Tomcat BIO、NIO线程模型简析
Tomcat BIO、NIO线程模型简析 Tomcat 支持四种线程模型介绍各IO 简单说明 描述 BIO 阻塞式IO,即Tomcat使用传统的java.io进行操作。该模式下每个请求都会创建一个线程,对性能开销大,不适合高并发场景。优点是稳定,适合连接数目小且固定架构。 NIO ...
2019-11-13 16:20:23
747
原创 spring framework 结构
原文地址:https://docs.spring.io/spring/docs/4.3.25.RELEASE/spring-framework-reference/htmlsingle/#overview-getting-started-with-springContainer:spring-Core 、spring-beans 包含了框架的核心实现,包括IOC依懒注入等特性...
2019-10-18 23:23:39
208
原创 GIT服务与gitlab搭建
git服务搭建安装依赖的包yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker下载git源码并解压$ wget https://github.com/git/git/archive/v2.23.0.zip$ unzip v2.2...
2019-10-16 13:23:18
235
原创 java agent的简单使用
package com.meng.apm.javaagent.simple;import java.lang.instrument.Instrumentation;/** * jdk1.5以后引入了javaAgent技术,javaAgent是运行方法之前的拦截器。 * 我们利用javaAgent和ASM字节码技术,在JVM加载class二进制文件的时候,利用ASM动态的修改加载的c...
2019-09-25 10:45:36
812
原创 redis 分布式锁超时或者异常的解决方案redisson
redis分布式锁超时或者异常的解决方案redissonhttps://redisson.org/ https://github.com/redisson/redisson/wiki/8.-%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E5%92%8C%E5%90%8C%E6%AD%A5%E5%99%A8...
2019-07-18 16:25:37
5767
2
转载 proto2 proto3 变化
总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。1、在第一行非空白非注释行,必须写:syntax = “proto3”,否则默认版本是proto2;2、字段规则移除了 “required”,并把 “optional” 改名为 “singular”;在 ...
2019-06-19 15:30:57
1954
原创 gRPC HelloWord Java版
java helloword demohttps://grpc.io/docs/quickstart/githttps://github.com/grpc/grpc-java官方示例已经相当完整,直接复制使用即可一下以examples中的helloword为例首先:本地新建项目grpc,然后导入examples pom下的依赖包然后导入helloword.proto,编译项...
2019-06-17 14:42:32
447
原创 Web表现层性能优化
习Web表现层性能优化1:Web表现层调用过程分析2: Web表现层性能优化概述3:分阶段讲述Web表现层的优化思路和具体的优化手段 (1)连接网络并发送请求部分 (2)网络来回传输内容部分 (3)服务器处理请求部分 (4)浏览器渲染绘制部分Web表现层调用过程分析从输入URL地址或者点击URL的一个链接到页面呈现的一次请求,大致需要下面几个步骤1:查找DNS,解析出...
2019-06-16 14:58:18
324
原创 gRPC 初识
官方文档概念文档https://grpc.io/docs/guides/java helloword demohttps://grpc.io/docs/quickstart/引导文档https://grpc.io/docs/guides/以上是建议学习顺序以下是概念文档的翻译,以后会出具体实现代码简介gRPC 是一个高性能、开源和通用的 RPC 框架,...
2019-06-13 17:36:05
513
原创 Protocol Buffers 3.0
定义:一种 结构化数据 的数据存储格式。(类似于xml, json)作用:通过将 结构化的数据进行串行化(序列化),从而实现数据存储/rpc数据交换的功能序列化:将数据结构或对象 转换成 二进制的 过程饭序列化:将在序列化过程中所生成的二进制串 转换成 数据结构或对象 的过程。特点:相对于xml,json,protocol buffer有如下特点:...
2019-06-13 17:31:43
526
原创 高并发理论与解决思路
高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每 个请求都需要服务端耗费资源进行处理,并做出相应的反馈。 从服务端视角看高并发 服务端处理请求需要耗费服务端的资源,比如能同时开启的进程数、能同 时运行的线程数、网络连接数、cpu、I/O、内存等等,由于服务端资源是有限 的,那么服务端能同时处理的请求也是有限的高并发问题的本质就是:资源的有限性 高并发带来的问题 服务端的处理和响...
2019-06-10 22:11:06
463
原创 LVS
LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。LVS工作在TCP/IP协议的四层,其转发是依赖于四层协...
2019-06-09 18:29:54
192
原创 KeepAlived简介与原理
简介:Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管, 它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA ...
2019-06-08 21:23:52
781
原创 HA高可用
HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。1:HA通常是软件和硬件相结合的集群方案,是自动且透明的2:只有硬件的方案不是HA,那是热备,通常是人工的切换备用机3:HA通常由软件检测故障,一旦故障发生立即切换服务到集群中正常的服务上,通 过提供故障恢复,实现最大化系统和...
2019-06-08 20:57:53
978
原创 Lambda Expressions 1
One issue with anonymous(匿名的) classes is that if the implementation of your anonymous class is very simple, such as an interface that contains only one method, then the syntax of anonymous classes may...
2019-05-27 10:51:49
285
转载 Memcached的数据存储方式
一,理解Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1,先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题。分配给Slab的内存空间被称为Page,默认是1M。一个Slab下可以有多个Page。 2,然后把一个Page分成很多个chunk块,chunk块是用于缓存记录的空间。chunk的大小是先有一个基本值,然后根据...
2019-05-19 16:30:32
774
转载 Varnish、Squid、Ngx_cache性能测试对比
nginx并不能从根本上提升服务器性能,如果是单体应用可能还会导致服务器性能下降,nginx更偏向于解决服务器扩容和分布式系统部署,此处比较几个常用的缓存以下均为转载Varnish、Squid、Ngx_cache性能测试对比一:概括:varnish与squid是在业内比较主流的web缓存加速技术,与传统的web加速技术apache cache和nginx cache相比,做的更专业...
2019-04-25 15:25:39
1070
原创 nginx URL重写模块(Rewrite)
官方文档http://nginx.org/en/docs/http/ngx_http_rewrite_module.html中文文档http://www.nginx.cn/doc/standard/httprewrite.html翻译比较详细中文文档http://shouce.jb51.net/nginx/StandardHTTPModules/Rewrite.html建议两个文...
2019-04-24 13:14:54
678
原创 nginx http模块
官方文档http://nginx.org/en/docs/http/ngx_http_core_module.html、中文文档http://www.nginx.cn/doc/standard/httpcore.html翻译比较详细中文文档http://shouce.jb51.net/nginx/left.html建议两个文档个都看看防止遗漏中文文档不全Nginx的HTTP配...
2019-04-23 16:24:05
2618
原创 nginx events 事件模块
中文文档地址http://www.nginx.cn/doc/core/events.html官方文档地址http://nginx.org/en/docs/ngx_core_module.html#use建议两个文档个都看看防止遗漏中文文档不全事件模块指令,重点看看:use和worker_connectionsworker_processes 一般设置成cpu数worker...
2019-04-23 10:22:24
661
原创 nginx 日志模块
控制nginx如何记录请求日志中文文档http://www.nginx.cn/doc/standard/httplog.html官方文档http://nginx.org/en/docs/http/ngx_http_log_module.html建议两个文档个都看看防止遗漏中文文档不全主要指令access_loglog_formatopen_log_file_...
2019-04-23 10:06:38
424
原创 nginx核心模块配置 主模块配置
官方文档地址http://nginx.org/en/docs/中文文档地址http://www.nginx.cn/doc/http://shouce.jb51.net/nginx/left.html建议两个文档个都看看防止遗漏中文文档不全Nginx的进程结构 启动Nginx的时候,会启动一个Master进程,这个进程不处理任何客户端的 请求,主要用来产生worker进程,一...
2019-04-23 09:49:58
360
原创 nginx安装和基本使用命令
首先在官网下载nginxhttp://nginx.org/en/download.html解压该文件tar -xzvf nginx-1.14.2.tar.gz安装依赖1:需要gcc,系统自带了,没有的话,需要先安装2:需要pcre,安装的命令示例如下: yum install pcre*3:需要zlib,安装的命令示例如下:yum install zlib...
2019-04-22 14:59:42
351
原创 基于spring @EnableWebSocket 实现socket通信业务处理优化
本篇文章针对基于spring @EnableWebSocket 实现socket通信业务处理的处理在socket通信默认情况下是线程不安全的,当多个线程访问同一个socket实体是将会发生错误,具体看源码当socket发送信息是改变自身状态,当另一个线程发送时会检查状态,当状态不为初始值是将抛出异常,本人解决思路是将每个socket客户端的信息根据放到单独队列去处理,以实现单线程操作不...
2019-04-18 14:30:42
8223
1
原创 基于springboot @EnableWebSocket 注解完成基本的socket通信以及socket握手权限
基于spring boot 完成客户端实时通信,此处对整体流程做了简要实现,下一篇讲在此业务上实现通信优化不涉及socket存储处理以及发送的逻辑代码首先添加pom 依赖 <dependency> <groupId>org.springframework.boot</groupId> ...
2019-04-18 14:01:58
13151
1
转载 template.js 用法
html 模板 artTemplate.js一、官网(artTemplate){https://aui.github.io/art-template/}(artTemplate 简洁语法版){https://github.com/aui/art-template/wiki/syntax:simple}二、特别好的博客地址(artTemplate教程){http://
2017-12-21 09:42:33
11087
转载 正则表达式全部符号解释
正则表达式全部符号解释字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属
2017-12-19 21:04:39
369
Android FFmepg demo
2015-10-19
android ffmpeg demo2
2015-10-13
Android语音信息相关技术
2015-09-09
android示波器
2015-09-09
android 静默安装与卸载
2015-09-09
js实现拖拽编辑控件
2020-04-20
精通并发与Netty 涉及到的代码
2019-07-16
grpchellowordstram.zip
2019-06-17
Web表现层性能优化.pdf
2019-06-16
Keepalived快速上手.pdf
2019-06-09
MongoDB快速上手.pdf
2019-06-04
Memcached快速上手.pdf
2019-05-27
ActiveMQ.rar
2019-05-27
android react native
2016-11-13
AndroidNDKSimple
2016-03-21
java openfire smack
2016-03-03
Android 模仿QQ/微信 未读消息显示
2016-02-24
android Parcelable
2016-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人