自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (4)
  • 收藏
  • 关注

转载 java高分局之jstat命令使用

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意:使用的jdk版本是jdk8.类加载统计:C:\Users\Administrator>jstat -class 2060Loaded Bytes Unloaded Bytes Time 15756 17355.6 ...

2018-05-31 18:27:45 240

原创 visualVm插件中心

默认的插件中心地址不可用,可以更改为https://visualvm.github.io/pluginscenters.html中的地址。

2018-05-31 15:43:01 1306

转载 Java垃圾回收(GC)机制详解

一、为什么需要垃圾回收  如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现是,给对象中添加一个...

2018-05-29 14:00:38 125

转载 linux内核调优tcp_max_syn_backlog和somaxconn的区别

The behavior of the backlog argument on TCP sockets changed with Linux 2.2. Now it specifies the queue length for completely established sockets waiting to be accepted, instead of the number ...

2018-05-28 18:30:27 19289

转载 Java垃圾回收时对对象的标记分析

引用计数法(Java未使用)给对象添加一个引用计数器,对象被引用加一,引用失效时计数器减一可达性分析法(Java虚拟中使用的方法)枚举出根节点,根据根节点向下分析,与根节点有引用关系的视为存活对象,与根节点没有关系则可以回收java引用类型强引用-----指程序代码中普遍存在的,类似Object obj = new Object(),只要强引用存在则对象永远不会被回收软引用-----描述一些有用但...

2018-05-26 17:53:55 307

原创 并发限流器

package com.richinfo.sipop.web.admin.aop;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicLong;import javax.servlet.ht...

2018-05-26 10:28:49 340

转载 Spring boot中使用aop详解

aop是spring的两大功能模块之一,功能非常强大,为解耦提供了非常优秀的解决方案。现在就以springboot中aop的使用来了解一下aop。 一:使用aop来完成全局请求日志处理创建一个springboot的web项目,勾选aop,pom如下: [html] view plain copy print?<?xml version="1.0" encoding="UTF-8"?>...

2018-05-25 13:42:15 484

转载 Redis在京东到家的订单中的使用

背景Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,下面介绍下Redis在京东到家的订单列表中的使用场景。主要从以下几个方面来介绍:订单列表在Redis中的存储结构Redis和DB数据一致性保证Redis中的分布式锁缓存防穿透和雪崩订单列表在Redis中的存储结构订单列表数据在缓存中,是以用户的唯一标识作为键,以一个按下单时间倒序的有序集合为值进行存储的。大家都知道Redis...

2018-05-22 13:48:28 532

转载 Redis分布式锁的正确实现方式

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足...

2018-05-22 13:42:21 155

转载 java代码块

在编程过程中我们可能会遇到如下这种形式的程序:public class Test { { //// }}      这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法。一般来说代码块是不能单独运行的,它必须要有运行主体。在Java中代码块主要分为四种:一、 普通代码块      普通代...

2018-05-16 13:11:13 96

转载 使用序列化实现对象的拷贝

 我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性能的提升非常明显。然而我们知道拷贝分为深拷贝和浅拷贝之分,但是浅拷贝存在对象属性拷贝不彻底问题。关于深拷贝、浅拷贝的请参考这里:渐析java的浅拷贝和深拷贝一、浅拷贝问题我们先看如下代码:public clas...

2018-05-16 12:18:04 188

转载 CAP理论中的P理解

分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性更具体一点说:1、一致性:读操作总能读取到之前完成的写操作,满足这个条件的系统称为强一致系统,这里的“之前”一般对同一个客户端而言。2、可用性:读写操作在单台机器发生故障的时候仍然能够进行,...

2018-05-15 16:00:27 1036

转载 cap理论

一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就...

2018-05-15 15:59:31 157

转载 java基础

http://www.cnblogs.com/skywang12345/p/3323085.html

2018-05-09 10:59:06 83

原创 性能监控

linux系统监控1.uptime【系统时间】  上图中,左起第一条信息 17:03:55,是当前系统时间,以24小时格式输出。【系统运行时间】  上图中,左起第二条信息 up 161 days, 21:58,是系统累计运行时间。上图显示系统已经运行了161天21小时58分钟。  如果系统累计运行时间没超过24小时,这里将只会显示小时和分钟,或只显示分钟。  当系统重启后将会清零。【已登录用户的数...

2018-05-07 00:08:54 285

转载 Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。一般vmstat工具...

2018-05-06 23:41:49 95

转载 JAVA NIO之浅谈内存映射文件原理与DirectMemory

JAVA类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。   在传统的文件IO操作中,我们都是调用操作系统提供的底层标准IO系统调用函数  read()、write() ,此时调用此函数的进程(在JAVA中即java进程)由当前的用户态切换到内核态,然...

2018-05-04 13:44:33 141

转载 Java NIO直接缓冲区与非直接缓冲区区别

物理磁盘->内核地址空间->用户地址空间->应用程序OS                              ->                           JVM直接缓冲区内核地址空间和用户地址空间之间形成了一个物理内存映射文件,减少了之间的copy过程。存在风险:用于不易控制GCpackage com.expgiga.NIO;import java....

2018-05-04 13:30:33 190

转载 java字节序、主机字节序和网络字节序扫盲贴

java程序员是幸福,因为相对于C/C++的不跨平台,JVM为我们屏蔽了大量的底层细节和复杂性,让我们能够将精力放在实现特定的业务逻辑上,所以使用java开发项目效率是比较高的。同时java程序员是悲哀的,就是因为JVM屏蔽了很多技术细节,导致java程序员基本功普遍较差,对一些基本概念理解不深,甚至根本没有听说过。作为一个java程序员,我深深的感到自己知识面的狭窄。无意中看到了字节序,以前竟然...

2018-05-04 13:26:27 1393

转载 【Java对象解析】不得不了解的对象头

一:对象头HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。  HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据, 如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,这部分数据的长度...

2018-05-04 13:19:24 215

转载 Java对象大小内幕浅析

最近突发奇想,忽然对Java对象的内存大小感兴趣,去网上搜集了一些资料,并且做一下整理,希望能够各位帮助。  如果:你能算出new String(“abc”)这个对象在JVM中占用内存大小(64位JDK7中压缩大小48B,未压缩大小64B), 那么看到这里就可以结束了~ Java对象的内存布局:对象头(Header),实例数据(Instance Data)和对齐填充(Padding)。  虚拟机的...

2018-05-04 13:18:26 365

转载 伪共享(false sharing),并发编程无声的性能杀手

在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素。前段时间学习了一个牛X的高性能异步处理框架 Disruptor,它被誉为“最快的消息框架”,其 LMAX 架构能够在一个线程里每秒处理 6百万 订单!在讲到 Disruptor 为什么这么快时,接触到了一个概念——伪共享( false sharing ),其中提...

2018-05-04 11:01:13 141

转载 最近5年133个Java面试问题列表

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你...

2018-05-04 10:57:12 125

转载 深入一致性哈希(Consistent Hashing)算法原理,并附100行代码实现

摘要:     本文为实现分布式任务调度系统中用到的一些关键技术点分享——Consistent Hashing算法原理和Java实现,以及效果测试。    本文为实现分布式任务调度系统中用到的一些关键技术点分享——Consistent Hashing算法原理和Java实现,以及效果测试。(代码实现见:https://github.com/yaohonv/pingpong/tree/master/c...

2018-05-04 10:47:50 151

转载 一致性哈希算法

一直性Hash算法在很多场景下都有应用,尤其是在分布式缓存系统中,经常用其来进行缓存的访问的负载均衡,比如:redis等<k,v>非关系数据库作为缓存系统。我们首先来看一下采用取模方式进行缓存的问题。一致性Hash算法的使用场景   假设我们的将10台redis部署为我们的缓存系统,存储<k,v>数据,存储方式是:hash(k)%10,用来将数据分散到各个redis存储系统...

2018-05-04 10:42:34 117

转载 RateLimiter

RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类.1.限流每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性.即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统瘫痪.通常的策略就是拒绝多余的访问,或者让多余的访问排队等待服务,或者引流.如果要准确的控制QPS,简单的做法...

2018-05-03 19:34:38 482

转载 高并发系统之限流特技

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限...

2018-05-03 19:32:31 126

全文检索详细设计文档.docx

基于elasticSearch做的全文检索,这是详细设计文档。包括结构化数据的检索,非结构化数据(文档类,如word,pdf等)检索。结构化数据,基于logstash导入。非结构化(文档),可以通过接口,本地扫描/远程扫描进入ES。

2020-03-17

JAVA核心知识点整理.rar

JAVA核心知识点整理,针对java体系的一个核心知识点的总结,比较详细和有深度,可以提高和完善自己的能力,对求职面试也有很大的帮助。

2020-01-03

java记事本程序源码

这是一套用java语言开发的记事本程序源码,功能很完善,没有bug。

2011-01-13

空空如也

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

TA关注的人

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