自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 抽象工厂

抽象工厂模式的定义 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类 读起来很抽象,很晦涩难懂,程序员就得用程序员的角度去理解问题,代码说明一切。不过在说明抽象工厂模式之前,首先需要理解两个概念:产品族和产品等级 产品族和产品等级 产品族:简单的说,就是一个工厂里生产的所有产品的聚集。 产品等级:也就是说不同工厂生产的同一产品。 下面两张图形象的说明了这两个概念 (以上图片...

2018-11-20 19:03:33 233

原创 Java堆中对象的创建,布局和访问

Java 是一门纯面向对象的语言,因此对象在 Java 中的地位相当之高,大部分的操作都是围绕着对象进行展开,对 Java 对象的深入理解也是很有必要的,不能仅仅停留在关键字 new上,对于 new 的过程也应该了如指掌,清除了这个,才能更好的理解 Java 的对象。Java 对象一般实例化在堆上,所以首先了解一下在 Java 堆中的对象到底是如何的创建、分配空间、以及对象的布局和访问的过程 对象...

2018-11-19 20:03:59 309

原创 Java运行时内存划分

这一章主要讲解 Java程序运行时的内存划分 虚拟机的"虚拟"性 我们一直称呼 Java 虚拟机,既然叫虚拟机,那究竟是对什么进行虚拟呢?一种情况就是对 Java 运行时的内存区域进行划分,虚拟出几块区域,针对这几块区域实现它的管理目的,比如跨平台、 GC(垃圾回收)、类的加载等。所以说虚拟机的虚拟性在于它会将你已知的概念进行组合,用一套它自己的描述方式进行描述,但是底层还是我们学过的那些概念,下...

2018-11-15 15:17:14 145

原创 工厂方法模式

简单工厂的不足 上一节讲的简单工厂能够满足少量类的创建,但是严重破坏了开闭原则,每次添加一个新的类都得到大的工厂中去注册,然后用户才能从工厂里取出产品,更主要的是,用户必须要记住产品的名称,或者产品的类类型,这对使用者来说是不友好的。我们希望用户知道他想要的产品是在哪个工厂里,通过这个工厂就能获取他想要的,而不关心具体的创建细节,以及产品究竟放在哪。这个时候就有必要使用简单工厂的升级版—工厂方法模...

2018-11-15 14:02:57 113

原创 简单工厂模式

简单工厂其实并不能叫做设计模式,更多的像是一种编程习惯,只是将创建类的对象集中在一起创建,根据用户传入的类型判断创造什么实例返回。简单的说,有个类专门用来创造实例,像一个工厂,用户想要什么就去这个工厂提供的接口中去获取,工厂类收到请求后进行判断,看用户要的是什么类型,然后进行创建返回。 简单工厂实例 有个抽象类 Video public abstract class Video { /*...

2018-11-13 17:20:25 85

原创 jvisualvm监控本地与远程java进程

随时随地监控 在程序运行期间我们可能想随时随地查看程序运行状态、线程活动情况、堆栈的使用状况,那我们总不能每隔几秒就使用命令行然后生成一个 dump 文件查看吧,有没有什么工具能够动态的查看这些,而且支持转储等功能呢?这就需要使用一种可视化的工具进行查看,幸运的是在 java 的安装目录下就自带了这个工具,在 JAVA_HOME\bin目录下有个工具jvisualvm.exe,双击打开即可 打开之...

2018-11-12 19:08:58 1023

原创 jstack实战死锁与死循环

使用场景 当我们的线上程序 CPU 飙高的时候、线程发生死锁的时候等,我们需要排查这些情况,那如何查看进程里的线程信息呢?这个时候需要将进程内的线程运行状态进行转储,好进行分析,这个时候就需要使用 jstack进行分析 基本用法 Usage: jstack [-l] <pid> (to connect to running process) jstack...

2018-11-11 18:52:13 645

原创 java实战内存溢出

内存溢出问题 在实际开发过程中,有可能会遇到内存溢出的错误,如java.lang.OutOfMemoryError: Java heap space,也就是堆内存溢出,这个时候就得排查到底是什么导致了内存溢出,一般情况下,有以下两种情况 内存预分配空间不足 内存泄露 内存分配空间不足,说明启动程序之前对程序整体的空间没有一个很好的预测导致内存空间太小,但是笔者认为这种情况很少见,所以更多的情况...

2018-11-11 17:16:33 159

原创 Java异常体系

根据《Java核心技术》整理 异常体系 1、Java所有的异常都派生于Throwable,并且在Throwable下面派生出Error类和Exception,Error一般是运行时系统内部错误以及资源耗尽,一般很少出现,重点关注Exception,它又分解成两个分支:IOException和RuntimeException RuntimeException通常包括以下几个方面: 错误的类型转换...

2018-11-11 11:37:04 124

空空如也

空空如也

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

TA关注的人

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