`
fancy888
  • 浏览: 38489 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论
文章列表
      Java是一门面向对象的编程语言,用对象来定义,描述和操作一切。对象数据存储在计算机内存中,Java的内存模型到底是个什么样子,让Java引 为自豪的垃圾回收器又是如何工作的,如何针对JVM的内存管理进行性能调优,笔者将通过本文带您揭开这些Java世界深处不为人知的内幕。      文章导航   堆内存(Heap) 垃圾回收器(GC) 垃圾回收策略 堆栈内存(Stack) JVM如何使用堆内存 堆内存结构图 内存溢出 内存优化最佳实践 内存参数设计示例     阅读全文 ...
      对于运行在网络上的MIS系统而言,处理数据的是整个系统的主要任务,翻开程序我们可以看到,80%以上的代码都在处理数据的CRUD操作。采用一种什么样的框架结构,能够使得处理数据的操作变得简单且易理解,这是大部 ...
      使用Jdbc调用存储过程相信大多数朋友在开发过程中都会用到,本例使用一个工具类将调用存储过程的方法封装起来,隐藏了大部分的处理逻辑,使用起来还是很方便的。   package com.coolfancy; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.Date; import java.sql.SQLException; import java.sql.Types; import java.ut ...
      最近项目越来越多的使用Spring MVC,抽时间研究了一下Spring MVC的源码,基本理清了Spring MVC的整个处理流程,随着对Spring源码的深入学习,越来越感叹整个Spring设计思想的博大精深。         要掌握Spring MVC的核心处理流程,必须先掌握Spring MVC的几个核心组件,本文将对针对这些核心组件作详细的描述。         阅读全文(很长)         更多精彩原创文章请关注笔者的原创博客:http://www.coolfancy.com    
      OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。         OAUTH有1.0和2.0两个版本,2.0版本在1.0版本的基础上做了很多调整和改进,但目前尚不完善。         Spring Secrutiy的大名相信大家都应该有所了解,新的Spring Security版本对oAuth1.0有了完美的支持,支持oAuth2.0的版本目前正在开发过程中。      ...
     无聊翻译了一篇Hibernate Validation官方自定义校验类的E文,感兴趣的朋友可以参考一下:      阅读全文        更多精彩原创文章请关注笔者的原创博客:http://www.coolfancy.com    
      在Weblogic集群环境下,请求被代理服务器动态的分配到多个节点上,如何在程序中判断当前提供服务的是哪个节点呢?         笔者试过取当前服务器IP地址的方法,但如果集群是部署在同一台机器上,那这个方法无效。也试过取服务器端口号,但是由于请求都是从代理服务器转发过来的,所以通过Request对象取得的端口号实际上是代理服务器的端口号。也试过在程序中加入不同的配置文件来解决,但这样作增加了部署的难度(需要每个节点单独部署)。        其实有一个非常简单的作法可以解决这个问题,就是判断JVM的启动参数中的"weblogic.Name"参数。因为在 ...
      表单数据的检验是应用程序必不可少的组成部分,通常来讲,表单数据的校验分为前台校验和后台校验两部分,前台校验使用JS脚本在提交数据前进行校验,后台校验在数据提交后进行校验。       出于安全性的考虑 ...
      创建对象的方法很多,常见的有构造函数,静态工厂方法,工厂方法等。以上三种方法不适合创建需要提供多个参数的对象,而其中某些参数是可选的场景。读者可能会想到通过空的构造方法先构建一个对象的雏形,然后调用getter和setter方法向对象内部注入状态数据。这种方式看似很不错,但还是可能存在对象的状态数据未完全写入前对象已被使用的风险。         建造者模式将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。      ...
      代理模式对其他对象提供一种代理以控制对这个对象的访问。         在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。         代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。         笔者总结代理模式的两个核心内容:一是隔离访问者对被访问对象之间的直接交互,对被访问对象的一切操作通过代理对象执行,这一点与装饰模式和外观模式类似;另一方面代理对象对被代理对象的业务逻辑作出修改,可以增加、屏蔽部分业务逻辑,这一点是 ...
        享元模式以共享的方式高效地支持大量的细粒度对象。           在面向对象的程序设计语言看来,一切事务都被描述成对象(Object)。对象拥有状态(属性)和行为(方法),我们将具有相同行为的对象抽象为 ...
      外观模式为子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。         网上有许多安保系统应用外观模式的例子,在这里我举一个客服中心的例子,客户投诉一般会经过以下一系列操作:登记投诉信息、分配受理部门、提交投诉信息。         没有客服MM的时候,客户投诉需要自己操作登记信息、分配部门并且提交投诉等,我相信你一定会很快疯掉。           有了个客服MM后,用户直接和客服打交道,由客服MM替我们完成后继的操作。           在上面的例子里,服务MM的角色就是外观模式中定义 ...
      装饰器:动态地给一个对象添加一些额外的职责。         举个常见的例子,咖啡店主要的任务是提供咖啡,但为了迎合客户的口味,我们可以在提供咖啡时加点糖或其它的调味品,在这里咖啡是被装饰的对象,咖啡店扮演了装饰器的角色,而那些糖呀什么的调味品就是装饰的内容。         正如上面提到的咖啡店的例子,装饰器模式强调装饰器本身不能破坏被装饰者所提供的服务。这里可以理解为两层含义:一是被装饰者的服务必须被暴露出来,二是装饰器本身不能修改被装饰者所提供服务的内容。也就是说咖啡店只能提供咖啡,不管你加了什么,但必须是咖啡,不能是茶或别的什么东西。         阅 ...
      单例(Singleton)设计模式保证每个类只有一个实例,并为这个实例提供一个全局的访问点。       与工具类中的静态成员不同,单例类一般用来保存应用程序的状态数据,这些数据在应用程序的各个部分都可能被访问 ...
      桥接:将抽象部分和实现部分分离,使它们都可以独立的变化。         桥接模式在整个Gof体系中算是一个比较抽象且难以理解的设计模式。作为结构类模式中重要的一环,桥接模式在某些层面成功地解决了“类爆炸”的问题,而这一点,尤其对初级开发者而言,正是经常遇到且难以解决的难题。         关于“类爆炸”(有些文章也称为“类膨胀”),是一个一直困扰广大开发者的难题。现实世界中总是充满太多可变因素,如果没有一个好的抽象过程,只是按照简单想法将这些变化的因素进行排列组合,并设计相应的类与之一一对应,那么,你会发现应用程序中的类数量会急剧增加,而最糟糕的是这一切都是基于静态设计的 ...
Global site tag (gtag.js) - Google Analytics