自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

vasonyang随记

临渊羡鱼不如退而结网

  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用iterm2查看日志时屏幕持续滚动将老内容冲掉的设置

在刚使用iterm2的时候使用它来查看服务器上的日志,当看到想找的日志的时候,想让当前屏幕停在这里,看完日志后再通过滚轮继续查看新的日志,但是iterm2默认的情况下,新的日志还在一直不断的追加进来,当现在能看到的日志行数达到1000行的时候,原来的旧的日志会自动的被顶没了。这种情况就需要设置一下勾上图中圈起来的复选框,不限制能够回看的行数。OK了。...

2021-05-10 15:20:04 2787

原创 在EditPlus中使用正则表达式

工作中遇到这样的情景:将数据库中表的列名、字段类型、字段长度、字段注释整理到word的表格中,若使用的数据库不是常用的Mysql等数据库则不能直接通过工具导出成想要的格式,这时我选择使用这样的方式:1、将数据库中表的DDL语句复制出来粘贴到EditPlus中,如下图:2、Ctrl+H将双引号,逗号 都替换为空字符串---> 即将双引号、逗号都删掉,使用【"|,】匹配3、将每行开头的空字符串删掉使用【^ +】匹配。4、将字段类型和长度到COMMENT之间的部分删掉,使用【\)

2020-10-29 09:39:39 1768 1

原创 JVM垃圾收集器

前面一篇文章讲了jvm的垃圾收集算法思想,今天说说具体的垃圾收集器。具体收集器:Serial:单线程的垃圾收集器,用于新生代,使用复制算法。在进行垃圾收集时会暂停其它所有的工作线程,直到它收集结束。称作“Stop The World”。ParNew:新生代收集器,使用复制算法,其实就是Serial收集器的多线程版本。目前除了Serial收集器之外,只有它能与CMS收集器配合工作,也是使用...

2020-04-15 22:18:54 162

原创 JVM垃圾收集算法思想

算法思想:标记-清除 算法分为两个阶段:标记和清除。首先标记出所有需要回收的兑现,标记完成后统一进行回收。 标记过程就是JVM判断对象是否还“活着”的过程。算法不足:效率问题,标记和清除两个阶段的效率都不高;标记清除之后会产生大量不连续的内存碎片,碎片太多时,若要存储较大对象时无法找到足够的连续存储空间则不得不提前触发另一次垃圾收集动作。复制算法将可用内存按容量划分为大小相等的两块,每次...

2020-04-12 16:18:36 134

原创 JVM判断对象是否"已死"

JVM垃圾收集,回收的是那些已经“死去”的对象空间,即不可能再被任何途径使用的对象。那么首先要进行的就是判断哪些对象还“活着”,哪些已经“死去”。那么JVM如何判断哪些对象空间可以被回收呢?第一种可以使用引用计数算法,就是在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1。任何时刻当计数器为0的对象就是不可能再被使用的。这个算法有个缺点就是很难解决...

2020-04-12 13:43:11 104

原创 JVM运行时数据区学习总结

jvm学习了有一段时间了,今天来简单的总结一下。其实,我们平时使用的JRE 或JDK中的JVM都只是某个厂商提供的JVM产品,是对JVM规范的某一个具体实现,由于各个厂商对于JVM有各自不同的实现,所以我们要学习的其实是JVM总体的概念和规范。我们总是提及JVM,其实JVM的内容很多,我们学习最多的还是它的运行时数据区,今天简单总结的就是这一部分。运行时数据区分为:方法区、堆、虚拟机栈...

2020-04-05 17:09:48 114

原创 RabbitMQ学习(一)

rabbitmq 由四部分:生产者,消息队列,消费者是最重要的三个概念,生产者发消息到消息队列中去,消费者监听指定的消息队列,并且当消息队列收到消息之后,接收消息队列传来的消息,并且给予相应的处理.RabbitMQ来说,除了这三个基本模块以外,还添加了一个模块,即交换机(Exchange).它使得生产者和消息队列之间产生了隔离,生产者将消息发送给交换机,而交换机则根据调度策略把相应的消息转...

2019-05-15 14:53:18 151

原创 java防止反射破坏单例模式

我们都知道单例模式是为了实现只创建一个实例,但是java 的反射机制可以破坏这种单例模式,这种通过反射来破坏单例的例子网上多的是,我就不列出来了,今天我们来说说怎么防止使用java的反射机制来破坏单例,查了查网上有很多是在单例的类中增加一个boolean类型的flag,然后在构造函数中来改变flag的值,然后再调用构造函数的时候判断这个flag是否已经改变了,这样来防止重复创建对象实例,当看到这种...

2019-05-07 13:52:09 3871 15

原创 springboot2.x初探(五)

这一篇文章还是接着上一篇继续分析。还是先上一张图:我们继续看第十三步创建异常报告实例:这个类就是一个报告SpringApplication启动过程中的错误的。具体的创建过程我们就不再细看,继续下一个步骤:14.准备上下文:代码中第一行和第二行是设置context的环境和资源加载器、类加载器、注册了一个单例的beannamegenerator,applyinitial...

2019-05-06 18:07:03 322

原创 springboot2.x初探(四)

这篇文章接着上篇文章继续。先上一张步骤图:上两篇文章我们已经分析到第十步了,这篇文章我们继续往下分析。具体方法如下:先判断了Mode,若为OFF则就不打印banner了,从这里我们知道这个banner的打印与否是可以设置的,可以使用spring.main.banner-mode=off配置。接下来创建了一个banner:从这类中我们看到了很多熟悉的信息,有b...

2019-05-04 18:11:24 147

原创 springboot2.x初探(三)

这篇文章接着 springboot2.x初探(二)下面看第九步,准备运行环境上面第八步准备好的参数在这里用上了,看看这个方法:先看获取环境的方法:通过debug可以知道我这里的应用是 SERVLET类型,所以创建的是 StandardServletEnvironment。然后看配置环境的方法:可以看到它就是一个模版方法,是为了有顺序地调用configureP...

2019-04-29 16:10:41 1268

原创 springboot2.x初探(二)

这篇文章接着 springboot2.x初探(一)上篇文章中我们对 1 处的代码进行了分析,这篇文章来继续分析 2 处的代码:由于这个方法比较长所以截了两个图,下面我们就按照截图中步骤的编号来一个一个看。我们先来看看 1 处的StopWatch是什么从类上的注释可以知道,这就是一个简单的记录开始时间和结束时间的功能的封装,它是非线程安全的。它的start 方...

2019-04-28 18:04:35 428

原创 吐槽 OneNote2016

看到有的同事在用OneNote记笔记,所以手痒就用它来记录了一下springboot2.1的源码学习过程,其中贴了很多图片,图片上还有自己写的注释,弄了两天才写完一篇东西,然后想把它放到博客上,当看到它有导出到word的时候甚是欣喜事实证明我还是高兴地太早了,我将我的笔记导出到word无论是 docx格式还是doc格式,导出的内容都是空白的(此时心中有千万只神兽奔腾而过~~~~~),你微软...

2019-04-23 16:12:33 4251 1

原创 springboot2.x初探(一)

Springboot 是从 Application类的 main方法开始运行的,通过运行SpringApplication的run方法,将要运行的类放入参数中,开始运行的。因此我们从这里开始跟踪代码来学习Springboot的启动过程中都做了什么事情。Springboot的入口类:下面来看实际运行的SpringApplication类的run方法的源码:先是调用了 ...

2019-04-23 15:29:04 306

原创 springboot2.1 使用jsp作为页面

本次想在本地试试springboot2.1和jsp的整合,过程中遇到了很多问题,在此处记录一下。我最后使用的是外部的tomcat来运行项目,不是使用的springboot自带的tomcat。网上查的 spring-boot-sample-web-jsp 的例子中<dependency> <groupId>javax.servlet&...

2019-04-22 10:00:55 3767

原创 创建一个 vue项目

1、安装 node.js2、安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org注:cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm3、cnpm install -g vue-cli4、cnpm install webpack -g5、剩下的 参考https:/...

2019-04-03 15:03:08 140

原创 linux虚拟机间SSH互信配置

master、slave1、slave2 SSH互信设置1、在master、slave1、slave2中分别执行ssh-keygen -t rsa 然后三次回车生成密钥2、在master中执行 cat /root/.ssh/id_rsa.pub &gt; /root/.ssh/authorized_keys3、将slave1和slave2中 /root/.ssh/id_rsa.pub中的文件...

2019-03-10 17:11:07 707

原创 虚拟机设置主机名,关闭防火墙

虚拟机设置主机名,关闭防火墙1、vim /etc/sysconfig/network2、NETWORKING=yes HOSTNAME=master3、:wq关闭防火墙:CentOS6.5:1、永久性生效,重启后不会复原开启:chkconfig iptables on关闭:chkconfig iptables off2、即时生效,重启后复原开启:service iptabl...

2019-03-10 16:34:26 1521

原创 复制虚拟机

安装虚拟机后,可以将安装好的一个虚拟机快速复制两份出来,这样就有了三个安装好的虚拟机,分别命名为master,slave1,slave2.在VMWare中将复制出来的两个虚拟机加载进来,这个时候会发现slave1和slave2的IP和master的IP是一样的,并且发现master能 通过curl www.baidu.com命令上网,但是slave1和slave2并不能通过curl命令上网。这...

2019-03-10 16:13:40 926

原创 win10中spark环境的配置

使用的软件版本:jdk使用的1.8winutils 为从 这里:https://github.com/steveloughran/winutils下载的相应版本的1、先配置JDK环境,在环境变量中配置好 JAVA_HOME,CLASSPATH,PATH中添加上%JAVA_HOME%\bin,%JAVA_HOME%\jre\bin,需要注意的是,jdk的路径中不要出现空格,否...

2018-12-18 17:47:47 1007

原创 spark+ansj中文分词

我是在win10中创建的maven项目,使用的是ansj _seg 5.1.6版本https://github.com/NLPchina/ansj_seg &lt;dependency&gt; &lt;groupId&gt;org.ansj&lt;/groupId&gt; &lt;artifactId&gt;ansj_seg&...

2018-12-18 17:28:32 1128

转载 写公共类时需要注意的线程安全的问题

我们知道 线程安全问题都是由全局变量及静态变量引起的。1) 常量始终是线程安全的,因为只存在读操作。 2)每次调用方法前都新建一个实例是线程安全的,因为不会访问共享的资源。3)局部变量是线程安全的。因为每执行一个方法,都会在独立的空间创建局部变量,它不是共享的资源。局部变量包括方法的参数变量和方法内变量。有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例...

2018-11-08 14:06:12 441

原创 Netty中ChannelPipeline和ChannelHandler的关系

ChannelPipeline为ChannelHandler链提供了容器,并定义了用于在该链上传播入站和出站事件流的API。当Channel被创建时,它会被自动地分配到它专属的ChannelPipeline。ChannelHandler安装到ChannelPipeline中的过程:一个ChannelInitializer的实现被注册到了ServerBootstrap(或者用于客户端的Boo...

2018-10-30 17:42:23 944

原创 Netty 中的ChannelHandler接口的一些作用说明

作为开发人员的角度来看,ChannelHandler是Netty的主要组件,它充当了所有处理入站和出站数据的应用程序逻辑的容器。ChannelHandler的方法是由网络事件(其中术语“事件”的 使用非常广泛)触发的。事实上,ChannelHandler可专门用于几乎任何类型的动作,例如将数据从一种格式转换为另外一种格式,或者处理转换过程中所抛出的异常。举例来说,ChannelInboun...

2018-10-29 10:51:18 1081

原创 Netty 中 ChannelFuture 接口的作用

正如我们所知道的Netty中所有的I/O操作都是异步的,由于一个操作的结果可能不会立即返回,所有我们需要一种可以在之后的某个时间点确定其结果的方法,为此,Netty提供了ChannelFuture接口,就如JavaJdk中的Future 接口可以返回线程的执行结果一样,我觉得 起名字叫 ChannelFuture也是向 JavaJdk中的Future或FutureTask接口靠拢以便可以让使用的人...

2018-10-26 11:23:35 2193

原创 Netty 中Channel、EventLoop、Thread、EventLoopGroup之间的关系

EventLoop定义了Netty的核心抽象,用于处理连接的生命周期中所发生的事件。一个EventLoopGroup包含一个或者多个EventLoop。 一个EventLoop在它的生命周期内只和一个Thread绑定。 所有由EventLoop处理的I/O事件都将在它专有的Thread上被处理。 一个Channel在它的生命周期内只注册于一个EventLoop。 一个EventLoop...

2018-10-26 11:03:33 3071 2

elasticsearch5.X 安装和head插件安装

ES和ES-HEAD插件的安装,这是5.x版本的安装步骤可以帮助大家安装ES用来学习使用

2017-10-12

springcloud与docker微服务架构实战配套代码

springcloud与docker微服务架构实战配套代码,springcloud与docker微服务架构实战配套代码,springcloud与docker微服务架构实战配套代码

2017-09-21

GoogleProtoBuf开发者指南 非官方

这个文档用于指导开发的,属于非官方发布版本进行选译的,并不完整。供参考使用。 迎来到protocol buffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。

2016-10-20

空空如也

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

TA关注的人

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