自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Builder模式

JavaBeans的缺点:当有许多参数的时候,且许多参数可以为空时,客户端代码就会很难编写,并且较难阅读Builder模式可以将一个类的构建和表示进行分离。 Builder模式比重叠构造器模式更加冗长,因此它只有在很多参数的时候才使用。简而言之,如果类的构造期或者静态工厂中具有多个参数,设计这种类时,Builder模式就是种很不错的选择,特别是当大多数参数都是可选的时候。与传统的重叠构造器模式相比

2017-11-14 22:36:52 360 1

原创 List 分页

int total = list.size();List<Contract> sub = list.subList((currPage-1) * pageSize > total ? total : (currPage-1) * pageSize, currPage * pageSize > total ? total : currPage * pageSize);

2017-08-14 13:56:34 277

原创 博客收录

● Java主线程等待所有子线程执行完毕再执行解决办法集http://blog.csdn.net/star890124/article/details/48243221● Java并发:获取线程执行结果(Callable、Future、FutureTask)http://www.cnblogs.com/studyLog-share/p/5287559.html

2017-08-14 13:53:01 377

原创 深入理解Java虚拟机:虚拟机字节码执行引擎

概述    在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能有解释执行和编译执行两种选择,也可能两者兼备,甚至还可能包含几个不同级别的编译器执行引擎。但从外观上,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。运行时栈帧结构    栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元

2017-03-05 20:47:45 760

原创 深入理解Java虚拟机:类加载器

类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每一个这样的实例用来表示一个 Java 类。实际的情况可能更加复杂,比如

2017-02-19 20:13:46 621

原创 深入理解Java虚拟机:虚拟机类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载过程    从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(

2017-02-19 19:31:47 756

原创 深入理解Java虚拟机:垃圾收集

概述    GC即垃圾回收,是指jvm用于释放那些不再使用的对象所占用的内存。    垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。两种常用的方法是引用计数和对象引用遍历。JVM的GC触发原理    JVM的GC主要是对堆内存的回收,一般把新生代的GC称为minor GC ,把老年代的GC成为 full GC,所谓full gc会先出发一次minor

2017-01-08 20:51:24 433

原创 深入理解Java虚拟机:实战OutOfMemoryError

堆溢出    堆用于存储对象实例,只要不断地创建对象,并且保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。     下面代码中,堆的大小限制为20M,不可扩展(将堆的最小值-Xms参数与最大值-Xmx最大值参数设置为一样,避免自动扩展)通过参数-XX:+HeapDumpOnOutOfMemoryError,可以让

2017-01-02 20:24:43 394

原创 深入理解Java虚拟机:Class文件检验器

什么是Class文件检验器?    Class文件检验器保证装载的class文件内容有正确的内部结构,并且这些class文件相互间协调一致。如果class文件检验器在class文件中发现了问题,它将抛出异常。好的Java编译器不应该产生畸形的class文件,但是Java虚拟机并不知道某个特定的class文件是如何被创建的。因为class文件实质上是一个字节序列,所以虚拟机无法分辨特定的class文件

2016-12-27 19:53:37 794

原创 深入理解Java虚拟机:虚拟机是什么?

Java虚拟机是什么    Java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。    Java虚拟机的主要任务是装载class文件并执行

2016-12-27 19:36:41 747

原创 深入理解Java虚拟机:HotSpot虚拟机对象揭秘

什么是HotSpot?    提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小公司设计的;甚至这个虚拟机最初并非是为Java语言而开发的,它来源于Stro

2016-12-26 22:29:16 1146

原创 深入理解Java虚拟机:运行时数据区域

运行时数据区域    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则以来用户线程的启动和结束而建立和销毁。一、程序计数器(寄存器)    程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码行号指示

2016-12-19 23:34:59 1091

原创 深入理解Java虚拟机:Java发展史

Java发展史    由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的詹姆斯·高斯林(James Gosling)等人于1990年代初开发,它最初被命名为Oak。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。    在2006年11月13日

2016-12-19 21:29:15 1293

原创 我的docker之旅(2):Docker 的核心概念和安装

Docker 的三大核心概念镜像(Image)容器(Container)仓库(Repository)1、Docker 镜像    Docker 镜像类似于虚拟机镜像,可以将它理解为一个面向 Docker 引擎的只读模版,包含了文件系统。     例如:一个镜像可以只包含一个完整的 Ubuntu 操作系统环境,可以把它称为一个 Ubuntu 镜像。镜像也安装了 Apahce 应用程序(或需要

2016-12-11 22:46:04 354

原创 我的docker之旅(1):简介

1.什么是Docker     docker 是基于go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司,dotCloud公司后来改名为 Docker Inc,专注于 docker 相关技术和产品的研发。现在主流的 Linux 操作系统都已经支持 dockek,Redhat RHEL 6.5/CentOs 6.5往上的操作系统、Ubuntu 14.04操作系统都已经默认带

2016-12-11 21:29:35 470

原创 Learn Shiro

一、简介    Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠 结,能更简单的解决项目问题就好了。 本教程只介绍基本的Shiro使用

2016-12-06 19:42:12 482

原创 MYSQL 常用语句

●获取指定时间段的每一天 SELECT DATE_FORMAT(date,'%Y-%m-%d')●获取当前时间两个月前 00:00:00 的时间SELECT CAST((CAST(SYSDATE()AS DATE) - INTERVAL 2 MONTH)AS DATETIME)●格式化时间select date_format(now(), '%Y-%m-%d 23:

2016-12-06 18:45:09 321

转载 mvn jetty:run debug in eclipse

在环境变量里面MAVEN_OPTS的值设置-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n Then in Eclipse 3 click Run >Debug Configurations >create New Remote Java Appl

2016-12-06 18:36:58 446

空空如也

空空如也

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

TA关注的人

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