上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: JDK 对线程组类注释: A thread group represents a set of threads. In addition, a thread group can also include other thread groups. The thread groups form a tr 阅读全文
posted @ 2018-11-17 23:48 BarryW 阅读(5626) 评论(2) 推荐(1) 编辑
摘要: 1.监控程序运行堆栈 ......//do something 2. 计时及运行次数; 定义计时: 阅读全文
posted @ 2018-11-09 18:48 BarryW 阅读(1638) 评论(0) 推荐(0) 编辑
摘要: 1.概述Jcmd是一个诊断Jvm的命令集工具, 集成了包括Jps, Jstack以及采集JFR信息等功能. 它必须运行在被诊断Jvm进程的同一台机器上.1)查询JVM进程及PID/dapeng-container/bin # jcmd -l252 sun.tools.jcmd.JCmd -l13 c 阅读全文
posted @ 2018-09-09 17:34 BarryW 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 尽管Scala还有一些基于语言特性的设计模式,单本文还是着重于介绍大家所周知的经典设计模式,因为这些设计模式被认为是开发者之间交流的工具。 创建型设计模式 创建型设计模式 1、工厂方法模式 2、延迟加载模式 3、单例模式 结构型模式 结构型模式 1、适配器模式 2、装饰模式 行为型 行为型 1、值对 阅读全文
posted @ 2018-09-09 16:06 BarryW 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者 阅读全文
posted @ 2018-04-02 17:58 BarryW 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 栈:LIFO(后进先出) 队列:FIFO(先进先出) 1、栈:LIFO(后进先出) 1.1、栈的顺序存储结构实现: 1.2、栈的链式存储结构实现: 1.3、基于LinkedList实现的栈结构: 2、队列:FIFO(先进先出) 2.1 队列的顺序存储结构实现 2.2、循环队列的顺序存储结构实现 2. 阅读全文
posted @ 2018-04-01 23:29 BarryW 阅读(728) 评论(0) 推荐(0) 编辑
摘要: 1、Linux系统基础知识 Linux 基础优化配置 Linux系统根目录结构介绍 linux系统重要子目录介绍 Linux基础命令(之一)详解 Linux基础命令(之二)详解 Linux文件系统 Linux系统链接文件介绍 Linux系统文件属性之用户、组、权限 Linux系统修改权限与默认权限 阅读全文
posted @ 2018-04-01 18:45 BarryW 阅读(1640) 评论(1) 推荐(1) 编辑
摘要: 引言 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。 A 阅读全文
posted @ 2018-04-01 18:30 BarryW 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 我们知道AtomicInteger和AtomicLong的原子操作,但是在这两个类在CAS操作的时候会遇到ABA问题,可能大家会疑问什么是ABA问题呢,请待我细细道来: ABA问题:简单讲就是多线程环境,2次读写中一个线程修改A->B,然后又B->A,另一个线程看到的值未改变,又继续修改成自己的期望 阅读全文
posted @ 2018-04-01 18:24 BarryW 阅读(1989) 评论(0) 推荐(0) 编辑
摘要: (一)vi/vim是什么?Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行 阅读全文
posted @ 2018-04-01 11:40 BarryW 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 1. top命令 top命令经常用来监控Linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。 输入top命令 1.1 系统运行时间和平均负载: top命令的顶部显示与uptime命令相似的输出 这 阅读全文
posted @ 2018-04-01 11:17 BarryW 阅读(8611) 评论(1) 推荐(1) 编辑
摘要: 1、穿透 穿透:频繁查询一个不存在的数据,由于缓存不命中,每次都要查询持久层。从而失去缓存的意义。 解决办法: 持久层查询不到就缓存空结果,查询时先判断缓存中是否exists(key) ,如果有直接返回空,没有则查询后返回,注意insert时需清除查询的key,否则即便DB中有值也查询不到(当然也可 阅读全文
posted @ 2018-03-30 21:48 BarryW 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 1、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。 2、锁实现的基本原理 2.1、volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁要更加方 阅读全文
posted @ 2018-03-30 21:34 BarryW 阅读(25181) 评论(4) 推荐(3) 编辑
摘要: 【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。 由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1升水,因此6只能向5倒4升水,然后将6剩余的2升,倒入空的5里面,再灌满6向5里倒3升,剩余3升。 阅读全文
posted @ 2018-03-28 18:27 BarryW 阅读(9435) 评论(0) 推荐(0) 编辑
摘要: 1、匹配验证-验证Email是否正确 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public static void main(String[] args) { // 要验证的字符串 String str = "service@xsoftlab.net"; // 邮箱验证规则 阅读全文
posted @ 2018-03-26 18:08 BarryW 阅读(308) 评论(0) 推荐(0) 编辑
摘要: HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用), 阅读全文
posted @ 2018-03-21 22:15 BarryW 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 一、什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二、事务特性(4种): 原子性 (atomicity):强调事务的不可分割;一致性 (consistency):事务的执行的前后数据的完整性保持一致;隔离性 (isolation):一个事务执行的过程中 阅读全文
posted @ 2018-03-19 22:35 BarryW 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务方法作拦截、过滤、预处理,主要是在方法中首先进行预处理动作 阅读全文
posted @ 2018-03-19 15:38 BarryW 阅读(415) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经走了一年多。 在使用 Spring Cloud 之前,我们对微服务实践是没有太多的体会和经验的。从最初的开源软件云收藏来熟悉 Spring Boot,到项目中的慢慢使用,再到最后全面拥抱 Sprin 阅读全文
posted @ 2018-03-18 23:21 BarryW 阅读(1918) 评论(0) 推荐(0) 编辑
摘要: 简介 线程池作为提高程序处理数据能力的一种方案,应用非常广泛。大量的服务器都或多或少的使用到了线程池技术,不管是用Java还是C++实现,线程池都有如下的特点:线程池一般有三个重要参数: 来 看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若 阅读全文
posted @ 2018-03-18 23:16 BarryW 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 电商平台营销时候,经常会碰到的大流量问题,除了做流量分流处理,可能还要做用户黑白名单、信誉分析,进而根据用户ip信誉权重做相应的流量拦截、限制流量。Nginx自身有的请求限制模块ngx_http_limit_req_module、流量限制模块ngx_stream_limit_conn_module基 阅读全文
posted @ 2018-03-18 23:06 BarryW 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如 阅读全文
posted @ 2018-03-18 23:03 BarryW 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。 二. 单例模式的特点 1. 单例模式只能有一个实例。 2. 单例类必须创建自己的唯一实例。 3. 单例类必须向其他对象提供这一实例。 三. 单例模式VS静态类 在知道了什么是 阅读全文
posted @ 2018-03-18 21:32 BarryW 阅读(2779) 评论(0) 推荐(0) 编辑
摘要: 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能再服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样 阅读全文
posted @ 2018-03-18 21:11 BarryW 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 排序算法稳定性表示两个值相同的元素在排序前后是否有位置变化。如果前后位置变化,则排序算法是不稳定的,否则是稳定的。稳定性的定义符合常理,两个值相同的元素无需再次交换位置,交换位置是做了一次无用功。 下面为七种经典排序算法指标对比情况: 一、插入排序 InsertionSort 介绍: 插入排序的工作 阅读全文
posted @ 2018-03-18 17:18 BarryW 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 1、 MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足: (1)集中式处理,势必造成性能瓶颈; (2)应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影 阅读全文
posted @ 2018-03-17 22:58 BarryW 阅读(5852) 评论(0) 推荐(0) 编辑
摘要: 1.非分片字段查询 Mycat中的路由结果是通过分片字段和分片方法来确定的。例如下图中的一个Mycat分库方案: 根据 tt_waybill 表的 id 字段来进行分片 分片方法为 id 值取 3 的模,根据模值确定在DB1,DB2,DB3中的某个分片 如果查询条件中有 id 字段的情况还好,查询将 阅读全文
posted @ 2018-03-17 22:44 BarryW 阅读(1452) 评论(0) 推荐(0) 编辑
摘要: 搜索引擎:Solr与Elasticsearch比较分析 Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache 阅读全文
posted @ 2018-03-17 22:23 BarryW 阅读(320) 评论(0) 推荐(0) 编辑
摘要: Solrcloud介绍: SolrCloud(solr集群)是Solr提供的分布式搜索方案。 当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。 当索引量很大,搜索请求并发很高时,同样需要使用SolrCloud来满足这些需求。 不过当一个系统的索引数据量少的时候是没有必要使用Sol 阅读全文
posted @ 2018-03-17 22:17 BarryW 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 先来看个例子: 1. 示例1:假设有如下的一张表: DROP TABLE IF EXISTS testTable; CREATE TABLE testTable ( ID BIGINT NOT NULL AUTO_INCREMENT COMMENT 'auto increment id', HOST 阅读全文
posted @ 2018-03-17 21:52 BarryW 阅读(10791) 评论(5) 推荐(6) 编辑
摘要: 一、不落俗套的开始 1、背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。 2、盗一张学习CAS 阅读全文
posted @ 2018-03-17 18:29 BarryW 阅读(4641) 评论(1) 推荐(0) 编辑
摘要: Round 1:背景 Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。阿里巴巴近几年对开源社区的贡献不论在国内还是国外都是引人注目的,比如:JStorm捐赠给Apache并加入Apache基金会等,为中国互联网人争足了面子,使得阿里巴巴在国人眼里已经从电商升级为一 阅读全文
posted @ 2018-03-17 14:05 BarryW 阅读(3888) 评论(0) 推荐(1) 编辑
摘要: Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。 dubbo协议 缺省协议,使用基于mina1.1.7 阅读全文
posted @ 2018-03-17 13:45 BarryW 阅读(4488) 评论(0) 推荐(0) 编辑
摘要: Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider 阅读全文
posted @ 2018-03-17 13:33 BarryW 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两 阅读全文
posted @ 2018-03-16 18:15 BarryW 阅读(413) 评论(0) 推荐(0) 编辑
摘要: synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下 阅读全文
posted @ 2018-03-15 22:14 BarryW 阅读(385) 评论(0) 推荐(0) 编辑
摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jinfo、jstat、jmap+jhat、jstack等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰 阅读全文
posted @ 2018-03-15 21:19 BarryW 阅读(5128) 评论(0) 推荐(1) 编辑
摘要: 一、线程5种状态 新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。 阻塞状态 阅读全文
posted @ 2018-03-15 21:15 BarryW 阅读(2076) 评论(0) 推荐(0) 编辑
摘要: Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler): 文件事件处理器使用 I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监 阅读全文
posted @ 2018-03-14 23:28 BarryW 阅读(26971) 评论(0) 推荐(7) 编辑
摘要: 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解。 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就能更容易理解,代码中会用到一个计算结果的工具类,见文章代码部分。 相关 阅读全文
posted @ 2018-03-14 23:25 BarryW 阅读(2388) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页