自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

看水不是水

微信公众号 - 看水不是水

  • 博客(17)
  • 资源 (2)
  • 收藏
  • 关注

原创 JVM常用命令

jps-q 只输出进程号-m 输出main函数的参数-l 输出类的全名,或者jar包路径-v 输出jvm启动参数配置jstat类装载、内存、垃圾收集、JIT编译等运行数据-class-gc-compiler-printcompilationjinfo实时地查看和调整虚拟机各项参数-sysprops-flagjmap生成堆快照 -...

2019-05-21 10:45:30 156

原创 Java虚拟机之七大垃圾回收器

GC分新生代和老年代,鸟瞰如下:Serial收集器单线程,垃圾收集时,必须暂停其他所有的工作线程Client模式下的默认新生代收集器.简单而高效(限定单个CPU,与其他收集器的单线程比)ParNew收集器Serial收集器的多线程版本除了Serial收集器外,目前只有它能与CMS收集器配合工作Parallel Scavenge收集器吞吐量优先(Throughput)的...

2019-05-17 16:25:30 278

原创 Java虚拟机之四大回收算法

标记-清除算法 最基础的收集算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程其实在前一节讲述对象标记判定时已经介绍过了.它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进而得到的.主要不足有两个:效率问题,标记和清除两个过程的效率都不高;空间问题,标记清除之后会产生大量不连续的内存碎...

2019-05-17 16:18:47 301

原创 CompletableFuture

Future有一定的局限性,无法实现某些场景的异步处理将两个异步计算合并为一个(这两个异步计算之间相互独立,同时第二个又依赖于第一个的结果). 等待Future集合中的所有任务都完成. 仅等待Future集合中最快结束的任务完成(有可能因为它们试图通过不同的方式计算同一个值),并返回它的结果. 通过编程方式完成一个Future任务的执行(即以手工设定异步操作结果的方式). 应对Futu...

2019-05-13 10:02:44 134

原创 Java虚拟机之破坏双亲委派

破坏双亲委派:一个典型的例子便是JNDI服务,JNDI现在已经是Java的标准服务,它的代码由启动类加载器去加载,但JNDI的目的就是对资源进行集中管理和查找,它需要调用由独立厂商实现并部署在应用程序的ClassPath下的JNDI接口提供者(SPI,Service Provider Interface)的代码,但启动类加载器不可能“认识”这些代码啊!那该怎么办?为了解决这个问题,Java设...

2019-05-08 13:58:25 248

原创 Java虚拟机之双亲委派模型

Java主要有两种类加载器:一种是启动类加载器(BootstrapClassLoader),这个类加载器使用C++语言实现[1],是虚拟机自身的一部分;另一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全都继承自抽象类java.lang.ClassLoader。从Java开发人员的角度来看,类加载器还可以划分得更细致一些,绝大部分Java程序都会使用到以下3种系...

2019-05-08 13:38:32 176

原创 Java虚拟机之双亲委派

package java.lang;/** * * @ClassName: Object * @Description: TODO(这里用一句话描述这个类的作用) * @author pangning@58.com * @date 2019年5月7日 下午6:24:18 * */public class Object {}执行javac Object.jav...

2019-05-07 19:09:35 181

原创 Java虚拟机之类加载机制

类的生命周期如下图:加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。注意,这里笔者写的是按部就班地“开始”,而不是按部就班地“进行”或“完成”,强调这点是因为这些阶段通常都是互相交叉地混合式进行的,通常会在...

2019-05-07 17:34:41 106

原创 Java虚拟机之GC日志

阅读GC日志是解决JVM问题的基础33.125:[GC[DefNew:3324K->152K(3712K),0.0025925secs]3324K->152K(11904K),0.0031680secs]100.667:[FullGC[Tenured:0K->210K(10240K),0.0149142secs]4603K->210K(19456K),[Perm:2999K->2999K...

2019-05-07 14:53:08 371

原创 Java虚拟机之GC收集器

2019-05-07 14:40:57 159

原创 Java虚拟机之GC算法

标记清除算法一个是效率问题,标记和清除两个过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。复制算法(新生代)可用内存按容量划分为大小相等的两块标记整理(老年代)让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存分代收集把J...

2019-05-07 14:40:12 162

原创 Java虚拟机之GC基础

内存的动态分配与内存回收技术已经相当成熟,为什么我们还要去了解GC和内存分配呢?需要排查各种内存溢出、内存泄漏问题。 GC成为系统瓶颈时,需要实施必要的监控和调节。程序计数器、虚拟机栈、本地方法栈3个区域生命周期同线程;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,方法结束或者线程结束时就跟随着回收了。J...

2019-05-06 17:20:46 138

原创 DNS解析顺序

解析顺序  1)浏览器缓存  当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在);  2)系统缓存  当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP;  3)路由器缓存  当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步...

2019-05-06 14:36:16 2750

原创 8.Netty之断线重连

Netty之断线重连

2019-05-04 23:26:06 194

原创 7.Netty之心跳检测

tcp心跳检测

2019-05-04 23:25:44 151

原创 6.Netty之序列化反序列化

Java序列化目的:网络传输 对象持久化原生Java序列化缺点不支持跨语言 码流太大性能低推荐其他ProtoBuf Thrift Marshalling Kyro MessagePack

2019-05-04 23:24:07 300

原创 5.Netty之TCP拆包粘包

TCP网络传输之拆包粘包。产生原因熟悉tcp的都知道内部有个滑动窗口协议,分组以及限流。 数据包大于缓冲区 MSS大小的TCP分段 以太网payload大于MTU进行IP分片解决方案fixed length split head body ect......

2019-05-04 23:17:09 155

matlab教程

matlab教程,里面有图片也有我word文档,也有ppt可以学习

2014-05-23

免疫算法matlab代码

还不错的算法,可以借鉴和学习一下。可以运行

2014-05-23

空空如也

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

TA关注的人

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