自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 2021-04-06 GC调优记录

机器配置: 8C 16G设置GC参数一、采用CMS-Xmx6144m -Xms6144m //整个堆内存 6G-Xmn4096m // 年轻代 4G-Xss128k // 线程栈的大小-XX:SurvivorRatio=6 // 设置年轻代中 Eden 和 Survivor区的比值,6 表示 6:2:2新生代 4G:Eden- 2458M, S0: 819M , S1: 819M-XX:MaxPermSize=512m-XX:ParallelGCThreads=8...

2021-04-06 11:46:52 285

原创 常用超级链接

一、技术1、倒排索引: https://www.cnblogs.com/softidea/p/9851836.html https://zh.wikipedia.org/wiki/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95 https://segmentfault.com/a/11900000189279542、Swing:3、log4j2 https://logging.apache.org/log4j/2.x/javad...

2020-07-20 21:28:47 284

原创 Java多线程学习笔记(五)线程池

一、线程池的基本类: Executors -- 线程池工厂, 通过 Executors 可以取得一个拥有特定功能的线程池。 ThreadPoolExecutor -- 线程池,实现了Executor 接口,因此通过这个接口, 任何 Runnable对象都可以被 ThreadPoolExecutor线程池调度。二、 Executor框架的工厂方法:...

2019-05-18 14:16:48 208

原创 Netty笔记

Netty实现了哪些形式的Reactor模式了?单线程Reactor多线程ReactorMultiple Reactor主从ReactorEventLoopEventExecutor视图ServerBootstrapgroup - BossEventLoopGroupchildGroup - WorkerEventLoopGroupchannel - NioSer...

2018-11-02 22:29:36 193

原创 垃圾收集器

1、Serial (串行)收集器:单线程收集器,会停掉应用程序的线程。程序会假死新生代复制算法,老年代采用标记-整理算法。2、ParNew收集器:多线程收集器,还是会停止应用程序的线程3、Parallel Scavenge (JDK8 默认):Server 模式,内存大于2个G,2个cpu,关注点事吞吐量,高效率的利用CPUCMS关注点事用户线程的停顿时间(提高用户体验)吞吐量:...

2018-10-24 22:20:56 163

原创 Java多线程学习笔记(四)volatile StampeLock semaphore

一、基本概念1、原子性:操作不能被打断,要么成功要么失败。i++不是原子操作。2、可见性:一个线程修改了数据,其他线程立刻可见。3、顺序性:4、volatile 保证程序的可见性,和顺序性。不能保证对复合操作(如i++)的原子性。javap -vxxx.class利用了CPU的指令:ACC_VOLATILE (jvm) >cpu 指令场景:状态标记锁或cas可...

2018-09-12 22:44:38 318

原创 Spring AOP

Aspectj 可以实现 AOPSpring AOP 提供两种编程风格:   AspectJ Support-  利用AspectJ 的注解。  Schema-based AOP support : xmlJoin Point (连接点):方法advice: 通知:前置,后置,环绕,异常, finally(after)aspect 要骄傲感point cut: 切点,链接点...

2018-09-05 23:11:42 154

原创 Spring mvc 原理剖析

Spring mvc 体系结构SimpleServletHandler 

2018-08-31 22:22:16 198

原创 Spirng 事务底层原理分析

一、数据库事务的基本特性 1、select @@tx_isolation 二、Spring 对事务的支持与使用。3个接口: TransactionDefiniton 事务顶定义platformTransactionManager  事务管理TransactionStatus 事务状态事务传播机制:PROPAGATION_REQUIREDPROPAGATION_SUPPO...

2018-08-29 22:17:26 372

原创 Kafka学习笔记

Kafka 用Scala 语言编写一、基本概念1、Topic2、Producer3、customer4、Broker kafka的性能与保留的数据量的大小没有关系,因此保存大量的数据(日志信息)不会有什么影响。 kafka中的consumer对集群的影响是非常小的,添加一个或者减少一个consumer,对于集群或者其他consumer来说,都是没有影响的,因此每...

2018-08-23 15:04:50 167

原创 Mybatis学习笔记

核心概念:Configuration:管理mysql-SqlSessionFactory: Session 管理工厂接口Session:ExecutorMappedStatementStatementHandlerResultSetHandler方法调用链:DefaultSqlSession.selectOne().selectList()  ...

2018-08-23 02:53:35 182

转载 设计模式实现 -- 单例模式

1、一般单例,    优点:实现方式简单,十分可靠。    不足:无法对 instance 实例做延迟加载。如果单例的创建过程很慢,而由于 instance 是 static 的,    因此在 JVM加载单例类是,单例对象就会被建立。如果此时,这个单例类在系统中还扮演其它角色,    那么在任何使用这个单例的地方都会初始化这个     public class Singleton { priva...

2018-07-04 10:37:42 154

转载 性能能优化的一般思路

1、有明确的性能指标,比如 qps 等,清楚的指出优化的对象和最终目标。2、需要在目标平台对软件进行测试,通过各种性能监控和统计工具,观测和确认是否达到相关指标。      若未达到优化目标,则需要查找当前的性能瓶颈。3、可能称为瓶颈的因素:磁盘 I/O, 网络 I/O,CPU,内存。4、找到瓶颈后,首先需要定位相关代码,确认是否在软件实现上存在问题或优化空间。若有,则进行代码优化;      若...

2018-06-28 11:56:40 327

转载 垃圾回收算法与思想

1、应用计数法2、标记-清除算法3、复制算法。4、标记压缩算法5、增量算法。

2018-06-06 22:59:00 257

原创 Java 虚拟机内存模型

一、JVM组成:程序计数器虚拟机栈本地方法栈Java堆Java堆方法区1、程序计数器:每一个线程有一个独立的程序计数器,用于记录下一条要运行的指令。各个线程之间的计数器互不影响,独立工作,是一块线程私有的内存空间。如果当前线程正在执行一个Java 方法,程序计数器记录正在执行的 Java 字节码地址。如果当前线程正在执行一个Native 方法,则程序计数器为空。2、Java 虚拟机栈: 也是线程私...

2018-06-02 22:53:35 232

原创 tomcat 配置

1、应用目录和 tomcat 目录分离   应用目录的结构:demoweb/conf, logs, temp, webapps, work  启动tomcat 的命令:   startup.sh,   catalina.sh start/ stop  catalina.sh 的参数:  a、catalina_home - 指定tomcat 在根目录  b、 catalina_base - 指定应用...

2018-05-27 22:52:11 199

原创 tomcat 线程模型

1、BIO: 每个请求都会创建一个线程。2、NIO: 多路复用选择器(select),由 select 分配线程给它,线程读取后立刻会被释放。3、APR:Apache Protable Runtime/Apache 可移植运行库4、AIO: 异步非阻塞式IO, jdk1.7后支持,Tomcat8 之后支持。...

2018-05-15 23:56:14 631

原创 Java 性能调优

一、CPU使用率:       可分为两类:        用户态时间:CPU执行应用代码所占时间的百分比。        系统态时间:CPU执行内核代码所占的时间百分比。    性能调优的目的: 在尽可能端的时间内让CPU使用率尽可能高。(该如何理解?)    Linux上的命令:vmstat 1二、JVM常用调优工具:   1、  jmap -- histo <PID>  >...

2018-05-01 22:37:31 256

原创 Spring AOP 底层实现

1、AOP:  Java Proxy, CGLIB2、Spring AOP 定义组件,通知(Advice) 拦截组件、调用组件3、Spring IoC:       ApplicationContext     ClassPathXmlApplicationContext: 1.加载资源 xml,2、先创建beanFactory,解析xml 文件至 beanDefination 并注册到 fact...

2018-04-04 18:46:11 251

转载 如何在windows系统自带命令查看硬件信息

如何在windows系统自带命令查看硬件信息,怎样dos命令查看硬盘和内存/CPU信息?最直接的是:开始→运行→CMD打开命令提示符,在该窗口下输入systeminfo执行,即可看到几乎所有想知道的系统信息,甚至包括机器上已安装的网卡及其IP。 问题描述: 如何从系统中 查看主板上内存条的数量。最佳答案: 在cmd命令下 输入:wmic memorychip list brief 或者 wmic ...

2018-03-14 23:06:01 19738

原创 Java内存分析

一、浅堆和深堆的概念1、浅堆(Shallow Heap): 一个对象结构所占用的内存大小,即所消耗的内存。如:一个int 类型会占据4个字节。2、深堆(Retained Heap):一个对象被GC 回收后,可以真实释放的内存大小。...

2018-03-02 10:57:03 199

原创 正则表达式使用场景

1、用notepad++ 替换 代码中的空行: 查找 ^(\s*)\r\n 替换为空白即可

2018-01-12 18:49:04 1146

原创 Maven笔记

1、scope 的值:     test - 在测试时生效    compile  - (默认)编译和运行时都会生效    provided 编译的时候生效,打包的时候不生效。    runtime 编译时不生效,打包的时候生效。

2017-12-23 10:25:28 166

原创 Dubbo常规应用

1、入门  a)、consumer -- 客户端,服务消费方、应用程序。  b)、provider -- 服务端、服务提供者。2、架构与基本角色说明   (redis desktop manager )3、dubbo的配置   interface: 接口名称   group:接口分组  version:接口版本

2017-12-14 20:22:40 254

原创 JVM- 类加载过程

1、类加载过程    1)、加载     a)、类的信息加载到方法区。     b)、类对象放在堆里。   2)、链接     a)、验证:文件格式,元数据,字节码,符号引用。               符号引用转为直接引用。      b)、准备: 为静态变量分配内存(方法区)。并初始化成默认值元数据验证。      c)、解析: 常量池中的符号引用替换为直接引...

2017-12-11 00:00:52 264

原创 编写高性能的Java 程序

1、仅定义需要的实例变量,节省对象空间是一种方式,或使用更小的数据类型。能用一个字节就不用一个 int, 用float 代替 double 诸如此类。2、使用大小适当的集合类,或使用简单的实例变量代替集合类。3、对象对齐与对象大小。

2017-11-11 19:35:32 383

原创 Java中被保护的 package名称

偶尔编了段代码,随便起了个报名称:java.puzzlers.exception,结果报异常:java.lang.SecurityException: Prohibited package name: java.puzzlers.exception    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:480)    a

2017-09-08 00:12:25 488

原创 Java多线程学习笔记(三)JDK的线程池框架:Executor

JDK的线程池框架:ExecutorExecutor + execute(Runnable command) ExecutorService + shutdown() + isShudown() :boolean + isTeminated() :boole...

2017-09-01 19:59:58 307

原创 关于方法名是否可以很详细的思考

在一些敏捷开发书籍中提到,详细的方法名会比注释更好。在一些开源软件比如 Spring中,会有很多长方法名。由于Spring 应用很广泛,所以关于这点似乎大家似乎也没有太多的意见。不过,我有点自己的想法:  1、这种编码方式是外国人提的,英语对于他们来说是母语,所有用长方法名哪怕是一句话,对他们来说理解起来,毫不困难,想象一下,如果我们能用中文写方法名,读代码就像读一篇文章一样,应该

2017-09-01 11:02:01 345

原创 Java Class类

1、Object 类的 getClass()方法返回 Class类型实例, Class类可以访问对象所属的类的类型信息。     一个 Class 对象描述了一个特定类的属性。     如: getName() -- 返回类的名称。            Class Class.forName(className) -- 返回指定类的Class对象, 用此方法时要处理异常。

2017-08-13 10:13:18 263

原创 Java动态代理

1、作用: 代理类在运行时创建崭新的类,实现指定的接口调用处理器:实现了 InvocationHandler接口,该接口只有一个方法。Objcect invoke(Object proxy, Method method, Object[] args)2、AOP的实现:    动态代理只能针对接口实现代理,不能针对类。    如果要针对java类提供代理,需要用动态字节码生成

2017-08-13 08:51:50 213

原创 Java多线程学习笔记(二)-各种锁

一、synchroinized 的功能扩展:重入锁jdk6.0以后,重入锁和synchronized之间的性能差距已经不大了。1、ReentrantLock的使用: lock.lock(); //加锁 ... lock.unlock(); //释放锁 优点: a、有明显的操作工程,开发人员手动指定何时加锁,何时释放锁...

2017-08-05 17:33:57 260

原创 写Java代码的小技巧

1、返回零长度的数组或集合而不是 null:     返回集合时可以用     Collections.emptyList()、     Collections.emptySet()、     Collections.emptyMap()。     返回零长度的数组: new Object[0]

2017-07-29 13:34:53 280

原创 JVM 参数汇总

-Xmx-Xss-XX:PermSize-XX:MaxPerSize

2017-07-27 14:00:06 350

原创 Java多线程学习笔记(一)- 基本概念

一、基本概念1、并发与并行: 1)并发:多个任务交替执行。 2)并行:多个任务同时执行。如果系统只有一个CPU,那真实环境中不可能是真实并行,因为一个CPU一次只能执行一个指令。多核CPU有可能出现并行。2、临界区: 一种公共资源或共享数据,每一次只能有一个线程使用它。一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待。3、阻塞(Blockin...

2017-06-28 20:39:37 463

原创 Java虚拟机学习笔记

一、Java 虚拟机架构:1、类加载子系统: 从文件系统或网络中加载 Class信息,加载的类信息存放在一个叫做 方法区 的内存空间。2、方法区: 类的信息,运行时常量池,包括字符串字面量和数字常量。3、堆:虚拟机启动时建立,存放java 对象实例。线程共享。4、直接内存:java 堆之外、直接向系统申请的内存区域,处于性能考虑,读写频繁的场合可以使用直接内存,如NIO库。

2017-05-18 12:02:59 346

转载 windows 下查看使用端口的进程ID和名称

查看455端口的使用进程ID节进程名称1、netstat -ano2、netstat -aon|findstr "445"3、tasklist|findstr "445"4、在任务管理中根据进程ID,找到相关进程名称。

2017-05-13 21:14:41 2148

原创 window程序设计第五版学习笔记

1、C语言必须了解,特别是结构和指针。

2017-04-06 16:07:51 462

原创 Json 数据处理时踩过得坑

1、json 数据转为java 对象时,原先的String 数组, 会变成 ArrayList, 而不会变为 String[].     json 字符串转换为对象时,不会转为数组,只会转为 ArrayList。

2016-10-09 22:00:46 466

原创 Http协议学习笔记

一、Http 首部1、首部结构:   a、请求报文:             请求行,              请求首部字段              通用首部字段 ( 请求和响应都会使用的首部)              实体首部字段              其他   b、响应报文:         状态行            响应首

2016-07-26 23:50:49 321

空空如也

空空如也

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

TA关注的人

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