自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路漫漫,水迢迢

八十一难拦路七十二变制敌

  • 博客(279)
  • 收藏
  • 关注

原创 深入理解JVM:HotSpot虚拟机对象探秘

对象的创建 java是一门面向对象的语言,在Java程序运行过程中无时无刻有Java对象被创建出来。在语言层面上,创建对象(克隆、反序列化)通常是一个new关键字而已,而在虚拟机中,对象的创建过程如下: 1、当虚拟机遇到new指令时,首先将去检查这个指令参数是否能在常量池中定位到一个类的引用符号,并且检查这个符号引用代表的类是否被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。

2015-08-11 19:17:17 2157 2

原创 深入理解JVM:JVM运行时数据区域分类

JVM在执行java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间。有些区域随着虚拟机的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范1.7》规定,Java虚拟机所管理的内存分为以下几个区域: 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存 程序计数器 是一块较小的内存

2015-08-09 19:43:49 2095 1

原创 精通Hibernate——Java对象在JVM中的生命周期

当应用程序通过new语句创建一个对象时,JVM会为这个对象分配一块内存空间,只要这个对象被引用变量引用,他就一直存在在内存当中。当这个对象不被任何对象引用的时候,他的生命周期就意味着结束,JVM会在适当的时候回收这个对象。下面通过代码来演示下生命周期:Customer c = new Customer("Tom",new HashSet());Order o1 = new Order("Tom_o

2015-08-05 19:27:13 914

原创 精通Hibernate——映射一对多双向自身关联关系

首先我们来看下图: 每种商品类别代表一个Category对象,每一个Category可以和父列表关联,同时也可以和子类别关联,为了表达这种一对多的双向自身关联关系可以在Category类中定义两个属性: parentCategory:引用父类别对象 childCategories:引用一组子类别对象 下面看看Category的源代码:public class Category imp

2015-08-05 19:24:48 1251

原创 ExtJS的定时调用函数

<link rel="stylesheet" type="text/css" href="<%=basePath %>/ext-3.4/resources/css/ext-all.css"> <script type="text/javascript" src="<%=basePath%>/ext-3.4/adapter/ext/ext-base.js"></script> <scr

2015-08-05 19:21:30 2504

原创 精通Hibernate——建立双向一对多关联

当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象或者一组与他关联的对象。 对象位于内存中,在内存中从一个对象导航到另一个对象显然比到数据库中查询数据速度快多了。类与类之间到底建立双向还是单向都是由业务决定。以Customer和Order为例,如果软件应用有大量这样的需求: 根据客户可以查询该客户所有的订单 根据给定的订单可以查询发出订单的客户 以上需求就需要我们为Custome

2015-08-04 19:43:09 682

原创 ExtJS的document使用

<script type="text/javascript"> // document是最重要的window对象,有了document对象引用可以操作HTML页面中所有元素 Ext.onReady(function(){ // 创建div Ext.getBody().createChild({

2015-08-04 17:19:25 1480

原创 ExtJS的History使用

// 窗体对象有个记录历史的对象——history,使用这个对象可以实现上一页、下一页等效果。 // 例如:history.go()下一页,history.go(-1)上一页 // 在使用Ext.history之前,必须现在页面中放置一个表单元素,可以直接将HTML代码写到页面中,也可以使用ExtJs的DOM接口来创建 // Ext.getBody()

2015-08-04 17:16:27 1876

原创 Pdf与Base64编码之间的转换

在我们的工作有时候我们需要将图片或者pdf文件转换为Base64编码,然后从服务器端下载传输到本地,在这里我列举下两者之间的转换方法: Base64编码转换为pdf:/** * Description: 将base64编码内容转换为Pdf * @param base64编码内容,文件的存储路径(含文件名) * @Author fuyuwei * Creat

2015-08-03 22:09:25 47768 2

原创 ExtJS的预配置类使用

<link rel="stylesheet" type="text/css" href="<%=basePath %>/ext-3.4/resources/css/ext-all.css"> <script type="text/javascript" src="<%=basePath%>/ext-3.4/adapter/ext/ext-base.js"></script> <scr

2015-07-30 22:59:37 713

原创 ExtJS的面向对象编程(继承、重写)

<link rel="stylesheet" type="text/css" href="<%=basePath %>/ext-3.4/resources/css/ext-all.css"> <script type="text/javascript" src="<%=basePath%>/ext-3.4/adapter/ext/ext-base.js"></script> <scr

2015-07-29 21:42:05 2595

原创 JavaScript的类定义与继承

// 创建对象 var obj = { property:"this is property", method:function(){ return "I'm a method"; }, // toString会在对象

2015-07-28 21:56:27 939

原创 精通Hibernate——建立单向多对一关联

在类与类之间各种各样的关系中,要算多对一的单向关联关系和关系数据库中的外键参照关系最匹配了。因此,通常选择从Order到Customer的多对一单向关联。简要代码如下:public class Customer implements Serializable{ private Long id; private String name; ....}public class

2015-07-28 21:53:13 843

原创 ext is not defined

今天我在搭建Extjs开发环境的时候,引入了如下配置:<link rel="stylesheet" type="text/css" href="<%=basePath %>/ext-3.4/resources/css/ext-all.css"><script type="text/javascript" src="<%=basePath%>/ext-3.4/ext-all.js"></script

2015-07-28 12:48:34 1516

转载 如此理解面向对象编程

这篇教程是怎么来讲述 OOP 的。它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设 Unix 很不错,Windows 很差这个把下面这段代码描述成是Hacker Solution。(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码)public class PrintOS{ public static void main (final String[] args

2015-07-28 08:44:29 659

原创 精通Hibernate——Hibernate内置标识符详解

1、increment标识符生成器 由Hibernate以递增的方式为代理主键,例如:<hibernate-mapping> <class name="mypack.IncrementTester" table="INCREMENT_TESTER" > <id name="id" type="long" column="ID" > <meta att

2015-07-27 22:00:24 1359

转载 评估企业是否适合开发复合业务服务

简介本文讨论企业计划和开发一个 CBS 支持策略,从传统企业架构过渡到支持 CBS 的参考架构所需的步骤。我们将讨论一些用于分析和评估企业架构是否遵守业务、应用程序、集成和技术、以及它们的相关关键参数的不同维度的方法。这将有利于我们理解企业是否准备好使用 Composite Business Services (CBS) 构建解决方案,发现当前存在的差距,并满足企业落后的每个维度中的要求。多数组织已

2015-07-27 17:38:02 868

原创 各个开源框架下载地址

前一段时间看了《Spring技术内幕》这个书,感觉阅读起来比较费劲,大家可以直接下载源码进行阅读,更重要的可以自己写一些小demo,方便自己理解和学习,下面我找了一些主流框架的源码下载地址有需要的朋友可以自行下载,以后发现更多的地址会后续补全 Spring源码地址: https://github.com/SpringSource/spring-framework Spring JPA源码地址:

2015-07-27 10:49:47 916

原创 UML中的序列图(时序图)

序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。 序列图中涉及的元素: 生命线 生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线

2015-07-26 16:45:58 4536

原创 UML中的用例图

用例图构成:参与者(actor)、用例(use case)、子系统(subsystem) 关联(Association) 泛化(Inheritance) 就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。 指向父用例 包含(include) 包含关系用来把一

2015-07-26 16:34:00 892

原创 UML中的类图

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。 依赖(Dependency):虚线箭头表示 1、依赖关系也是类与类之间的联结 2、依赖总是单向的。(#add 注意,要避免双向依赖。一般来说,不应该存在

2015-07-26 16:27:39 878

转载 代码评审这点事,元芳你怎么看

前言 百度百科上说:“代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。”这篇百科的内容好像是几年前CSDN上的一篇博文,但不管他们怎么抄,代码评审大概就是这么个意思。 代码评审,没多大点事,貌似可有可无,但不管你怎么回避,确实不能也无法做到视而不见。 代码评审的尴尬 最典型的介绍代码评审的开展方法就是:搞个3、5个人,什么小组长、秘书、测试人员啦,然后

2015-07-26 16:11:42 1269

转载 IT架构——降低成本和复杂性

导读:实现经济效益关键是让业务部门和IT部门的负责人共同努力,不仅合理地设计业务应用和流程,还要使核心IT基础设施和运营合理化。本文介绍如何降低IT架构的成本和复杂性。 关键词:IT架构 业务部门 IT部门 IT架构成本 在经济低迷期间,企业都在寻找一切机会削减成本。IT是总支出中的一个重要部分——在某些行业中占5%,甚至更多,但它对收入和利润的直接贡献却往往难以评估。因此,许多首席执行官和首席

2015-07-26 15:56:45 6946

原创 精通Hibernate——Java的内存地址与Hibernate的内置对象标识符

在Java语言中,判断两个对象引用变量是否相等,有以下两种比较方式: (1)比较两个变量所引用对象的内存地址是否相同,“==”就是比较的内存地址。此外,在Object类中定义的equals(Object o)也是按内存地址来比较的。如果用户自定义的类没有覆盖equals(Object o)方法,也是按照内存地址来比较的。例如,以下代码用new语句共创建了两个Customer对象,,并定义了三个Cu

2015-07-25 20:27:21 1544

原创 精通Hibernate——Hibernate核心接口

应用程序可以通过Hibernate的API访问数据库,Hibernate API中的接口可分为以下几类: 提供访问数据库的操作(保存、更新、删除、查询)接口,这些接口包括Session、Transaction、Query接口 用于配置Hibernate的接口:Configuration 回调接口,使应用程序接受Hibernate内部发生的事件,并做出相关回应,这些接口包括:Intercepto

2015-07-23 22:55:05 1011

原创 Java程序性能优化技巧

1、优化循环体 如果循环次数很多,循环体内代码处理不好问题就会被放大。 for(int i=0;i

2015-07-23 12:50:33 1029

原创 WebService工作原理及传输安全问题

WebService是一种可以接收从Internet或者Intranet外其他系统发来的请求,是一种轻量级的独立通讯技术。 XML(Extensible MarkUp Language)扩展型标记语言,是面向短期临时的数据处理,面向万维网,是SOAP的基础 SOAP(simple object Access protocol)简单对象存取协议 WSDL(WebService descripti

2015-07-23 12:49:12 4633

原创 如何用XFire在Web应用中搭建WebService

1、 新建一个Web项目(无需做任何处理) 2、 添加XFire所需要的jar文件 3、 配置web.xml详情见我的空间日志 4、 创建XFire框架的发布文件services.xml,创建目录在class文件夹下: WEB-INF\classes\META-INF\xfire\services.xml 5、 src创建接口和接口实现类 6、 修改services.xml,

2015-07-23 12:46:27 1860

原创 精通Hibernate——域对象之间的关系

在域模型中,类之间存在四种关系 1、关联(Association) 类之间的引用关系,可以有一对一、一对多和多对多,例如customer与order之间就是一对多public class Order{ // 与order对象关联的Customer对象 private Customer customer;}以上代码建立了从Order类到Customer类的关联,同样也可以建立从C

2015-07-23 11:18:13 1069

原创 重构——让你的代码接近框架源码

前一段我们的项目搞了一次重构,我简单做了一个ppt,下面我们来一起分享下 代码的坏味道 1、重复代码(难维护) •提取公共函数 2、函数过长(难理解) •拆成若干函数 3、类过大(难理解) •拆成若干类 4、参数多(难用) •将参数封装成结构或类 5、万能类(改动频繁) •拆,将总是一起变化的东西放在一块儿,合久必分 6、天女散花逻辑(需求变动改很多类) •将各个修

2015-07-22 23:55:14 4028 1

原创 数据库中的悲观锁和乐观锁详解

数据中的锁分为两类:悲观锁和乐观锁,锁还有表级锁、行级锁 表级锁例如: SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除 行级锁例如: select * from table_name where id = 1 for upda

2015-07-22 23:28:15 2329

原创 Spring学习笔记——Spring如何装配各种类型的属性以及实际应用

在类中的定义的属性我们可以通过Spring的容器给他们赋值,Spring这种功能在我们实际中有什么作用呢?举个我在工作中实际用的例子吧, 如果我们把数据库的连接配置文件加密了,我们就不能直接加载使用了,这时候我们需要先把配置文件进行解密,然后把解密之后的值赋给一个常量类,这时候我们通过加载这个常量类中的属性来完成数据库的连接。 代码如下: <!-- 解密config.properties文

2015-07-20 22:43:16 831

原创 Spring学习笔记——Spring依赖注入原理分析

我们知道Spring的依赖注入有四种方式,分别是get/set方法注入、构造器注入、静态工厂方法注入、实例工厂方法注入 下面我们先分析下这几种注入方式 1、get/set方法注入public class SpringAction { //注入对象springDao private SpringDao springDao; //一定要写被注入对象的set方法

2015-07-18 23:55:58 3621

原创 Target runtime Apache Tomcat v6.0 is not defined.错误解决方法

我们在用Eclipse导入一个新的项目时,如果我们使用JDK1.7和tomcat7时,导入的项目会在Eclipse的Marker下提示Target runtime Apache Tomcat v6.0 is not defined.的错误,解决方案是在你的项目下的.settings问价下找到org.eclipse.wst.common.project.facet.core.xml,打开如下:<?xm

2015-07-15 22:23:42 3591

原创 final修饰符的三种使用场景

final有三种使用场景,分别是修饰变量、方法和类,无论哪种修饰,一旦声明为final类型,你将不能改变这个引用了,编译器会检查代码,如果你试图再次初始化,编译器会报错。下面我来具体说说每一种修饰场景。 1、修饰变量 当final修饰一个变量的时候一般把他作为常量,通常和static关键字配合使用。例如: private static final String ISSUCCESS_FLAG =

2015-07-14 17:40:57 5419

原创 Extjs学习笔记——Ext.data.JsonStore使用说明

Ext.data.JsonStore继承于Ext.data.Store,使得从远程JSON数据创建stores更为方便的简单辅助类。JsonStore合成了Ext.data.HttpProxy与Ext.data.JsonReader两者。如果你需要其他类型的proxy或reader组合,那么你要创建以Ext.data.Store为基类的配置。 代码实例:var store = new Ext.da

2015-07-14 12:01:05 12674 1

原创 Spring学习笔记——Spring实例化Bean的三种方式

在我们的项目中我们可以不用struts、可以不用Hibernate等,但几乎每一个项目都用到了spring了,这是为什么呢? 一、为何使用Spring 1、降低组件之间耦合,实现软件各层之间的解耦 2、可以使用容器提供的众多服务,如:事务管理、消息服务等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务,也不需要处理负责的事务传播。 Hibernate的事务操作:public voi

2015-07-13 22:08:57 981

原创 Struts2学习笔记——struts.xml配置文件中通配符详解

在struts.xml中,我们可能对普通的配置使用比较多,什么通配符、结果返回Json格式等,这种不具有普遍性,并不是每一个开发者每一个项目都用到的东西。例如下面这个配置我们使用的比较多:<package name="finance" extends="struts-default"> <action name="login" class="com.fyw.user.action.Login

2015-07-13 18:31:01 1780

原创 Spring学习笔记——Sprin管理Bean的原理

当我们使用Spring时候在Xml文件中通过<bean id="service" class="com.finance.service.AmountServiceImpl" />配置就可以操作该Bean的属性和方法,那么Spring到底是如何实现的呢?下面让我们自己实现这个过程。 首先我模拟Spring的命名方式创建一个Bean管理类MyClassPathXMLApplicationContext

2015-07-13 13:36:10 1572

原创 Spring学习笔记——为何使用Spring

在我们的项目中我们可以不用Hibernate、可以不用Struts、可以不用ibatis但是我们几乎每一个项目都用到了Spring,这是为什么?下面让我们分析下Spring有何优点: 1、降低组件之间耦合,实现软件各层之间的解耦 2、可以使用容器提供的众多服务,如:事务管理、消息服务等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务,也不需要处理负责的事务传播。 Hibernate的

2015-07-13 13:21:29 1042

空空如也

空空如也

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

TA关注的人

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