自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(268)
  • 资源 (8)
  • 收藏
  • 关注

原创 线上问题排查常用命令

一、机器 free -m:以M为单位查看,机器物理内存使用情况,应用程序使用物理内存情况,SWAP内存 top -m:以M为单位查看,机器统计信息(使用时长,负载等),机器内存(物理内存/虚拟内存)及CPU使用情况,支持分进程查看二、JVM...

2020-04-15 09:37:43 292

原创 RPC学习

框架描述:1.服务提供者启动,并向注册中心注册服务节点2.客户端启动,并从注册中心拉取最新服务节点3.客户端与服务节点直接建立Socket通信,完成远程调用4.服务节点发生变化,注册中心通知客户端,pull or push?关于RPC Client:1.服务节点列表,需在本地缓存,防止注册中心挂掉 如何更新缓存的服务节点数据?2.客户端采取...

2020-04-12 16:13:19 406

原创 理财知识

1、净资产收益率(ROE)计算公式:净资产收益率=税后净利润/平均所有者权益指标含义:衡量了公司股东投资的资产所实现的回报,回报越高,说明公司对资金利用和管理越高效2、市净率(PB)计算公式:市净率=股价/每股净资产指标含义:代表投资人为持有单位资产所支付价格的高低,相同行业内公司比较,市净率越低的代表估值更低,投资价值高3、市盈率(PE)计算公式:市盈率(PE)=股价...

2019-04-20 11:08:28 538

原创 Spring BeanPostProcessor

2019-03-30 14:41:55 186

原创 Java动态代理

Java动态代理技术Jdk Proxycglib proxy新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入J...

2018-10-27 21:09:30 375

原创 filter、interceptor、aop

Filter interceptor aop 实现 高级servlet,依赖Web容器 Spring框架 拦截类型 只能拦截controller 只能拦截controller 可以拦截rpc调用 在哪配置 web.xml springMvc上下文 执行顺序 ...

2018-09-18 08:18:29 528

原创 JVM内存分区再熟悉

1.string.intern从常量池返回字符串常量或将字符串常量放入常量池中2.JVM内存分区虚拟机栈(栈大小/栈深度)、程序计数器、方法区、堆(分代)3.编写内存泄露代码vm options:-Xms10M -Xmx10M -Xmn5M -verbose:gc -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:MetaspaceSize=8m...

2018-08-19 17:28:52 305

原创 JDK之动态代理

1、基本原理1.1 原理描述:使用代理模式必须要让代理类和目标类实现相同的接口,客户端通过代理类来调用目标方法,代理类会将所有的方法调用分派到目标对象上反射执行1.2 涉及技术:代理、反射1.3 局限性:必须基于接口实现2、实践2.1 定义接口及实现类public interface Say { void sayHello(String content);...

2018-08-19 17:12:06 165

原创 项目中用到的GC参数

(1)总体GC策略 = ParNew + CMS + Serial Old(后备预案)(2)后备预案:CMS期间GC和用户线程同时运作,会产生浮动垃圾,此时CMS预留空间(1-92%)不足时,GC失败,JVM启动临时GC收集器(3)CMS缺陷: CPU密集型,占用应用不低于25%CPU使用率 GC同时产生浮动垃圾,由于GC与用户线程并发运行,后者还在不停产生浮动垃圾...

2018-07-30 08:20:55 709 1

原创 GC

1. GC概述 1.1 GC(Garbage Collection)是JVM的核心组件,它在JVM中以单独的线程(daemon thread)运行,作用于内存堆区域(Stack Space),扫描那些经过new关键字创建的无用的对象并清除以释放内存,必要时整理内存。 // 只作用于堆区域吗? 也会扫描方法区(永久代) // 只处理经过new关键字创建的对象吗? 也会处理无用常量和无用...

2018-07-29 17:18:35 197

原创 两个数相除,四舍五入,保留2位小数,并且去掉小数点后多余0

1、精确除法 BigDecimal num1 = new BigDecimal(weightNum); BigDecimal num2 = new BigDecimal(scale); // 保留2位小数,四舍五入 String numStr = num1.divide(num2,2, RoundingMode.HALF_UP).toString();2、去掉...

2018-07-28 10:57:02 2847

原创 边看边理解Spring day2

1、缓存bean是为了可能会有循环引用的情况?2、业务逻辑处理采用AOP思想preHandlerhandlerpostHandler3、单例缓存    private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(256); // 单例实例缓存...

2018-06-14 10:26:24 247

原创 架构学习-单服务器性能优化

1、服务器架构角度(1)PPC(Process Per Connection)收到一个请求,即fork一个子进程处理(2)prefork提前fork多个子进程,避免创建、销毁进程的耗时(3)TPC(Thread Per Connection)收到一个请求,即创建一个子线程处理(4)prethread提前创建多个线程组成线程池,避免创建、销毁线程的耗时(5)异步IO模型服务器和客户端都维护一个Cha...

2018-06-13 15:20:52 489

原创 架构学习-高性能负载均衡

1、负载均衡手段及适用范围DNS地理级别的负载均衡,根据用户IP分配就近服务器简单粗暴,扩展性查,分配策略简单硬件负载均衡F5、A10,支持百万级别价格昂贵,定制化,稳定可靠,支持DDos防御等软件负载均衡Nginx,LVS,支持5万级别开源软件,可扩展2、DNS...

2018-06-13 14:23:31 294

原创 边看边理解Spring

搞清楚这几类的关系:ApplicationContextAbstractApplicationContextAbstractRefreshableApplicationContextAbstractXmlApplicationContextClassPathXmlApplicationContextFileSystemXmlApplicationContextAnnotationConfigApp...

2018-06-10 15:02:33 303

原创 ZooKeeper学习

1、为什么需要ZooKeeper?(1)现代应用需要分布式部署单台计算机性能升级无法支撑日益庞大的数据量容错容灾考虑(2)在分布式应用场景中,开发和运维人员耗费大量时间处理异构系统的协作通信问题(3)ZooKeeper专门应用分布式系统协作通信,使得开发人员专注业务逻辑2、3、zookeeper基本元素(1)znode持久(persistent)节点:只能通过调用delete来删除临时(ephem...

2018-06-09 10:58:20 259

原创 Guava缓存

1、缓存(Guava Cache等)使用场景(1)目标数据经常重复被访问(2)目标数据计算代价比较高(3)目标数据对实时性要求不高2、Guava Cache与ConcurrentMap区别(1)Guava Cache通常被设定为自动回收元素,ConcurrentMap只有显式删除,否则永久占用内存3、Guava Cache基本原理【获取缓存】-【如果没有

2017-12-08 10:04:50 377

原创 Redis更新缓存策略

1、缓存【失效】:客户端请求数据先从缓存中查询,如果没有再查询数据库,最后将数据放入缓存2、缓存【命中】:客户端从缓存中直接取到数据,返回结果3、缓存【更新】:客户端写入数据到数据库,成功之后,让缓存失效(下次请求时从缓存中拿不到,则查询数据库,再放入缓存)4、为什么不采取更新后删除缓存策略?      防止并发写操作导致脏数据5、为什么不删除缓存后再更新数据库?   

2017-12-08 09:27:38 13668 2

原创 使用Spring AOP结合自定义Java注解实现动态数据源设置

1、定义Java注解@Retention(RetentionPolicy.RUNTIME)// 注解将要写到类型(Class/Interface)还是其它元素(Method等)上,支持package、type、method、field等,一般只会配置一个@Target({ElementType.TYPE}) public @interface DataSource { String va

2017-11-29 16:45:47 1529

原创 HTTP之Content-Type

1、Content-Type即MIME Type,资源的媒体类型,用于客户端(通常是浏览器)与服务器端进行消息内容格式的声明2、HTTP协议中常用的Content-Typetext/htmltext/plaintext/xmlimage/gifimage/jpegimage/pngapplication/xmlapplication/jsonap

2017-11-13 20:13:48 275

原创 Socket通信基础

1、判断socket连接状态 socket类的方法isClosed()、isConnected()、isInputStreamShutdown()、isOutputStreamShutdown()等,这些方法都是本地端的状态,无法判断远端是否已经断开连接 sendUrgentData,查看文档后得知它会往输出流发送一个字节的数据3、通信协议定义 协议组成:协议类型、版本号、数据类

2017-11-10 13:58:21 249

原创 Java模拟耗时任务异步执行

说明:耗时任务开启单独线程处理,任务线程处理完毕通知主线程1、回调接口定义public interface ResponseCallBack { public void printMsg(String msg);}2、模拟耗时任务线程public class TestMain { public static void main(String[] args)

2017-11-07 20:15:58 5150

原创 Java模拟排查线程死锁问题

一、模拟死锁public class App { public static void main( String[] args ) { Object object1 = new Object(); Object object2 = new Object(); System.out.println("main thread st

2017-11-03 11:31:46 734

原创 Java线程池技术

一、线程池概述1、为什么需要线程池提高性能,不用频繁创建&销毁线程方便管理调度2、线程池要素待执行任务(Runnable、Callable)谁来执行(Executor、ExecutorService)执行结果(Future)二、线程池基础框架public ThreadPoolExecutor(int corePoolSize,

2017-11-02 16:03:31 238

原创 yum和rpm

1、什么是rpm rpm是由红帽公司开发的软件包管理方式,使用rpm可以方便的进行软件的安装、查询、卸载、升级等工作。但rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm构成2、什么是yum yum:便捷地添加、删除和更新RPM package,可以非常方便地解决rpm的依赖关系3、rpm操作相关 rpm -ivh < rpm package name>// 安装rpm

2017-10-22 17:22:11 385

原创 ES处理冲突

1、什么是文档对象JSON序列化后是一个文档2、如何唯一确定一个文档_index + _type + _idid可以由外部指定,也可以由ES自动生成3、ES更新文档流程先GET原始文档,然后修改,最后将整个文档进行再次索引处理4、ES中_version变更对应于增删查改操作,ES中索引、put和删除操作时,无论文档有没有变化,它的_version都会增加5、如何处理修改冲突乐观并发控制:所有

2017-10-18 15:19:09 1806

原创 ES集群和分片

1、elasticsearch集群简介ES节点:运行的ES实例ES集群由若干节点组成,这些节点在同一个网络内,cluster-name相同2、集群包含节点类型master节点:集群中的一个节点会被选为master节点,它将负责管理集群范畴的变更,例如创建或删除索引,添加节点到集群或从集群删除节点。master节点无需参与文档层面的变更和搜索,这意味着仅有一个master节点并不会因流量增长而成为

2017-10-18 15:12:48 8149

原创 linux命令分割、if语句、mv&cp、rm、export

1、linux命令之间的分号、&&、|| 分号: 顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会执行(注:换行也能达到效果) &&: 顺序执行各条命令, 只有当前一个执行成功时候, 才执行后面的 ||: 顺序执行各条命令, 只有当前面一个执行失败的时候, 才执行后面的2、输入、if判断是目录还是文件#!/bin/bashread -p "input your f

2017-10-12 11:45:31 704

原创 Python学习day1

1、学习python python 3.x是方向,要学就以3.x为准2、安装python3 brew install python33、如果启动、退出python3 启动:直接输入python3 退出:control+D或者exit()4、python命令行和文件 命令行:输入源代码并执行 文件:保存预先编写源代码,只能执行,不能修改5、Mac下好的python编辑器 如果是Java栈

2017-10-11 10:37:45 201

原创 RRFARE_FRAME框架搭建

1、 数据库设计 (1) 表格设计 设置主键 设置保留字段:reserve1、reserve2、reserve3 设置删除标志字段:id_del 设置创建时间字段:create_time 设置更新时间字段:last_update_time 表格命名:数据库名_业务逻辑名称 数据库命名:公司名_业务逻辑名称 是否有外键约束?(高并发应用一般不设置外键,数据完整性由应用端负责)

2017-09-22 08:56:38 269

原创 Redis常用命令

1、Redis 客户端基本操作 Redis-cli连接某个Server:redis-cli -p port 查看运行Redis参数:config get logfile 动态设置Redis参数(不重启):config set logfiles2、Key相关操作 查询key是否存在:exists keyname 查询所有key:keys * 新建key:执行COMMAND时

2017-09-22 08:52:02 237

原创 分布式架构与分布式锁

1、分布式CAP理论

2017-09-21 17:33:32 330

原创 Spring AOP

AOP是面向对象编程的一种补充。面向对象是对现实场景进行自上而下的抽象和建模,最小粒度是对象,至于对象内部则无能为力,AOP可以深入对象内部,具体来说是方法内部进行监控。 使用AOP好处: (1)将与具体业务无关的公共行为封装成独立模块,并影响业务类,最大限度减少代码重复冗余 (2)AOP在不干扰具体业务逻辑的基础上实现业务需求横向扩展,比如监控系统所有接口方法的调用时间、入参/监控所有接口方

2017-09-21 16:42:27 266

原创 MongoDB常用脚本

客户端:Robomongo 0.9.01、模糊查询 db.getCollection(‘xxx’).find({“name” : {$regex:’济南’}})2、先删除后插入 use db_base; db.getCollection(‘sysConfig’).remove({“sysType” : “xxx”}); db.sysConfig.insert([ {“_i

2017-09-21 11:58:22 741

原创 开发中遇到小问题记录

开发环境:Eclipse + Maven1、Maven工程中执行junit单元测试报错找不到applicationContext.xml 解决方法:有可能是事先调用了mvn clean,重新编译(compile)或打包(package)一下,再执行junit测试2、Maven工程中执行junit单元测试报错当前类ClassNotFound 解决方法:菜单栏—project—clean

2017-09-21 11:47:45 223

原创 semaphore学习

1、semaphore概述 semaphore可以看作是一个许可的集合,用于控制多个线程对有限共享资源的访问。当某个线程需要访问资源时,必须首先从semaphore获取一个许可,使用完资源后再将许可归还给semaphore。2、semaphore常用方法控制共享资源的多线程访问 (1)初始化许可数量 private static final int MAX_AVAILABLE =

2017-09-14 20:46:12 398

原创 数据结构之树

1、满二叉树 除叶子节点外,每个节点都有两个子节点,除了最后一层,每一层上的节点数达到最大值,第K层有2(k-1)个子节点,高度为m的满二叉树总共有2m-1个子节点(注意k和m为指数)2、完全二叉树 除最后一层(或两层)外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点3、排序(搜索)二叉树 (1)定义:设x是二叉搜索树中的一个结点。如果y是x左子树中的一个结点,那么

2017-09-07 11:45:47 345

原创 ReentrantLock学习

1、ReentrantLock介绍 ReentrantLock是一种可重入的共享或排它锁 ReentrantLock内部使用CAS实现,不会像Synchronized引起上下文切换和线程调度 ReentrantLock提供比Synchronized更多的功能2、ReentrantLock排它锁 代码示例public class TestTest{ public st

2017-09-07 10:19:37 278

原创 HashMap和TreeMap排序

代码示例public static void main(String[] args) throws ParseException { Map<String, String> hashM = new HashMap<String,String>(); hashM.put("aa", "1"); hashM.put("cc", "4");

2017-09-07 08:57:01 386

原创 学习编写Shell脚本

1、 赋值 (1) 赋值一般采用以下形式:变量名=字符串 (2) 在shell变量引用中,一个变量与一个长字符串的组合,如果当前变量处在字符串的最后,可以利用直接引用的方式;如果处在中间或开头的位置,则可以用花括号将变量名包含起来。如下: #!/bin/bash address=beijing echo addressechoaddress ech

2017-09-06 16:33:34 326

Struts简洁入门工程

Struts简洁入门工程,包含配置文件和Jar包

2016-02-20

Spring入门简洁工程

Spring入门工程,包含配置文件和Jar包

2016-02-20

Hibernate简洁入门工程

Hibernate简洁入门工程,包含配置文件和Jar包

2016-02-20

SpringMVC入门最简洁工程

SpringMVC入门最简洁工程,包含配置文件及最少的Jar包

2016-02-20

学习Axure实例

产品原型软件Axure,学习的时候参考例子实际动手再操作一遍

2013-10-07

COM学习——动态绑定之引用计数

COM入门学习实例,c++程序实现引用计数易于理解,动态绑定相关

2011-06-18

MFC编写简易文本编辑器

用MFC实现记事本的部分功能,包括输入,换行,统计字符、数字等个数,撤销、粘贴、查找等

2011-05-18

bmp位图读取并处理

详解位图文件结构,用VC读取位图并显示,能对位图进行相关处理,如反色、平滑、图像叠加、保存等

2011-05-18

空空如也

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

TA关注的人

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