
编程语言
文章平均质量分 75
shan9liang
悟空
展开
-
记录-Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
出自: http://www.cnblogs.com/dolphin0520/p/3920397.html在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier...转载 2015-06-30 23:16:23 · 1524 阅读 · 2 评论 -
CheckStyle使用总结(2)
CheckStyle的最佳实践 一、 Sun’s Code Conventions的修改 在CheckStyle的最新发布版本中,有一个对于Sun的Java编码规范的配置文件信息。但是,其中有很多条目并不一定符合项目开发的需要。就算是对于很多优秀的开源项目,按照这个规范来进行检查,也会出现成千上万的错误。 下面提出的一些修改意见,是从实际项目执行过程中总结出来的,可以作为大家的参原创 2013-10-24 09:01:11 · 4438 阅读 · 12 评论 -
CheckStyle使用总结(1)
因为项目中要用到CheckStyle来自动化地控制编码规范,特意学习了一下,总结如下CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。CheckStyle检验的主要内容 ·Javadoc注释 ·命名约定 ·标题 ·Impo原创 2013-10-24 09:00:27 · 4548 阅读 · 12 评论 -
JPA基本API描述
JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。JPA是JSR-220(EJB3.0)规范的一部分,在JSR-220中规定实体对象(EntityBean)由JPA进行支持。所以JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立运行,开发和测试更加方便。 下面通过一张图来原创 2013-05-30 08:39:47 · 5244 阅读 · 7 评论 -
测试pager-taglib
Pager-taglib,支持多种风格的分页显示。实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。pg:pager 这个标签用来设置分页的总体参数,一切分页标签都在其内工作。 url原创 2013-05-21 08:35:52 · 2164 阅读 · 2 评论 -
ANT速写
一、为什么使用ANT当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来原创 2013-05-20 09:11:21 · 3738 阅读 · 3 评论 -
DRP中用到的几个filter
1、利用filter对一些不变的数据进行简单缓存,例如图片 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpSe原创 2013-03-16 17:07:14 · 1370 阅读 · 4 评论 -
java synchronized
锁在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。 synchronized同步当使用同步块时,如果方法下的同步块都同步到一个对象上的锁,则所有的任务(线程)只能互斥的进入这些同步块。 举例说明: 1、Test1.java演示了4个线程(包括main线程)试图进入某个类的三个不同的方法的同步块中 线程1调用method1线程2调用method2原创 2013-03-14 14:30:30 · 1396 阅读 · 4 评论 -
项目中用到小技术点
一、1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName获取用户信息:Page.User获取客户端电脑名:Page.Request.UserHostName获取客户端电脑IP:Page.Request.UserHostAddress 2. 在网络编程中的通用方法:获取当前电脑名:static System.Net.Dn原创 2013-02-15 07:57:48 · 1112 阅读 · 4 评论 -
java complier compliance level问题引发的思考
问题起源:今天再在ESB调用WebService测试,需要在jboss上部署一个ejb项目(ejb发布的webservice),过去部署好好的代码,这次再部署上去竟然报错了,log记录的错误如下:[org.jboss.detailed.classloader.ClassLoaderManager] (HDScanner) Unexpected error during lo原创 2013-12-11 17:28:08 · 31640 阅读 · 30 评论 -
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
RPC(Remote Procedure Call Protocol)RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。 Web ServiceWeb Ser原创 2013-06-04 10:31:49 · 84402 阅读 · 23 评论 -
CAS集群修改点
TGT、ST数据共享多台CAS服务器共享TGT、ST数据,由于TGT、ST数据没有存储到SESSION中,所以需要单独处理TGT、ST数据的共享。可采用的方式有多种,例如:redis、memcached等NOSQL数据库,登录量小的可以选择关系型数据库等。Redis:1、继承AbstractDistributedTicketRegistry类,重写ticket的增删改查方法import java....原创 2016-02-27 21:52:21 · 1929 阅读 · 1 评论 -
System.out.println("占个地方>>"+(++sum羞愧))
占个地方>>3原创 2015-02-28 23:38:12 · 1253 阅读 · 2 评论 -
XStream初识
XStream是一个Java对象和XML相互转换的工具,提供了所有的基础类型、数组、集合等类型直接转换的支持。XStream对象相当于Java对象和XML之间的转换器,转换过程是双向的,不用任何映射就能实现多数 Java 对象的序列化,在生成的 XML 中对象名变成了元素名,类中的字符串组成了 XML 中的元素内容。使用 XStream 序列化的类不需要实现 Serializable原创 2014-12-26 22:57:00 · 1670 阅读 · 10 评论 -
实现Java代码在内存中编译执行
一般的java的动态编译是需要先生成java文件,然后编译成class,最后用classloader加载进来,生成最终的实例。 我在这里介绍一种方法,不需要任何java类文件,将字符串输入到内存,然后编译,加载,执行,整个过程全部在内存中实现,不会产生.java和.class文件,做到了洁净无污染。环境:jdk 1.6原创 2014-10-25 11:34:11 · 6203 阅读 · 10 评论 -
Mybatis动态构建Sql(无实体类)
先简单说下Mybatis的动态sql,这不是今天的重点。MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。例如,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息MyBatis中用于实现动态SQ原创 2014-10-26 17:29:36 · 9385 阅读 · 76 评论 -
聊聊单元测试(三)——Spring Test+JUnit完美组合
这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了。因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得。如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦。如果单独去写一个测试用类,这样太繁琐了。于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~原创 2014-10-26 17:35:15 · 106332 阅读 · 45 评论 -
《java系统性能调优》--1.发现瓶颈
性能啊!性能!之所以想写写性能调优,也是有感于我们的项目,我们采用一些手段使得系统性能上升了一个台阶,总是需要把这点经验沉淀一下。随着工作的深入,关于系统性能的事肯定还有很多,也算是通过这个系列文章做做笔记。优化可能包括应用级别的优化,也可能包括代码级别的优化。“要进行优化,先得找到性能瓶颈!” 忘记是从哪里看到了这句话,但总算切中要害。原创 2014-05-03 10:19:13 · 6388 阅读 · 18 评论 -
扩展spring类实现自动读取配置文件
在使用spring的时候,我们使用Properties配置器把properties文件装载到Spring的上下文中,如下: 这样在Spring的配置文件中可以用表达式来获得load进来的properties内容,如下: lookup-on-startup="true" cache原创 2014-04-15 11:25:58 · 7452 阅读 · 15 评论 -
项目中用到的一个导入Excel的方法
#region 导入试题 /// /// 导入按钮事件 /// /// /// protected void btnImport_Click(object sender, EventArgs e) { try { //获取题型 str原创 2013-02-15 07:57:09 · 1612 阅读 · 3 评论 -
项目中一个用于导出word的方法
public void MakeThePaper(string paperPath, string paperName, string[] qesNbu, string[] queType, int[] queCon, ArrayList[] path) { //定义 Microsoft.Office.Interop.Wor原创 2013-02-15 07:57:29 · 1307 阅读 · 3 评论 -
抽象类PublicPage封转一些页面常用方法
namespace Test.Web.Common { /// ///PublicPage继承page,实现了自己的一些方法供子类继承 /// public abstract class PublicPage : System.Web.UI.Page { /// /// 构造函数 ///原创 2012-12-22 15:10:47 · 1123 阅读 · 2 评论 -
程序员的饭碗和杯具
你有没有这样的经历?在需求阶段搞得很复杂,需要各种各样的功能,然后系统设计的时候,想用这个设计模式,那个架构,等等,总是想把自己的系统搞得功能强大,灵活性好,可扩展性好等等,有时候为了照顾用户体验加了一堆乱七八糟的东西,总认为自己能建一座鸟巢。然后等到编码的时候,忽然发现,数据库设计不合理,缺这少那,更悲催的是,需求错了,用户真的需要这些东西吗?一遍,两遍,N遍改。结果,就一直改啊改的,把系统原创 2012-02-20 16:52:39 · 12788 阅读 · 73 评论 -
VB总结
注:通过这个地址下面的地址,可以看到清晰完整的大图:http://35free.net/shan9liang/vb/VB.htm很多联系都没有画出,我觉得一层层往上打包的过程,会越来越注重主要矛盾。小矛盾,次要矛盾就不明显了。当就一个点深挖的时候,又是一个向下解包的过程,又会凸显很多联系。文件处理这个模块,总觉得有点别扭,不知道放得合不合适。我觉原创 2011-01-12 16:34:00 · 1096 阅读 · 3 评论 -
比较Cint() , int() , fix() ,round()的区别
Cint 小数部分超过0.5的部分都进位,不分正负例如:Cint(2.51)=3 Cint(-2.51)=-3 小于等于0.5的部分都舍去,不分正负例如:Cint(2.49)=2 Cint(-2.49)=-2 Cint(2.5)=2 Cint(-2.5)=-2 Int 取到的是小于这个数的最大整数例如:原创 2011-01-14 18:13:00 · 5389 阅读 · 2 评论 -
C#集合
出处:http://www.cnblogs.com/feisky/archive/2009/10/29/1591956.htmlSystem.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,转载 2011-10-26 15:56:49 · 1276 阅读 · 2 评论 -
C#方法重载(overload)方法重写(override)隐藏(new)
一、重载:同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同。这样才能通过传递不同的参数来决定到底调用哪一个。 值得注意的是,方法重载只有通过参数不同来判断调用哪个方法,而不能通过返回值。至于原因,可以这样理解,你调用一个方法,如果有多个方法同名,系统必须要知道到底你要调用哪一个,参数可以帮助系统在方法入口处得到答案,他根据你给的参数就知道该使用原创 2011-09-15 12:38:41 · 25927 阅读 · 4 评论 -
C#委托(delegate)与事件(event)
在C#中,委托(delegate)是一种引用类型,在其他语言中,与委托最接近的是函数指针,但委托不仅存储对方法入口点的引用,还存储对用于调用方法的对象实例的引用。简单的讲委托(delegate)是一种类型安全的函数指针. 仅仅看它的概念,可能还是很模糊,我们来举例子由浅入深地说明一下。(强烈提醒:注意代码中的一些关键注释。代码完全可以复制下来直接运行。)原创 2011-09-20 09:27:38 · 3340 阅读 · 3 评论 -
变量的声明和作用域——VB
一、声明变量变量在使用前,必须在代码中进行声明,即创建该变量。在使用变量之前,首先需要声明变量。就是说,必须事先告诉编译器在程序中使用了哪些变量,及这些变量的数据类型以及变量的长度。这是因为在编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,这样可以优化程序的执行。声明变量有两种方式:隐式声明、显式声明。隐式声明:变量可以不经声明直接使用,此时VB给该变量原创 2010-12-21 14:55:00 · 5757 阅读 · 5 评论 -
举例说明常用字符串处理函数
Option ExplicitPrivate Sub Command1_Click() Dim strtest As String, strtest1 As String, strtest2 As String Dim strtest3 As String, strtest4 As String, strtest5 As String Dim strtest6 A原创 2011-01-14 18:15:00 · 1542 阅读 · 2 评论 -
ASP.NET总结
从开始学习ASP.NET到总结ASP.NET,再到回顾ASP.NET,大概学的就是这些东西原创 2012-01-27 20:39:14 · 1519 阅读 · 5 评论 -
SqlHelper V1.0 (C#)
/// /// Depiction:数据库助手类V1.0/// Author:贾琳/// Create Date: 2011/12/2 9:47:48/// using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;us原创 2011-12-07 08:28:57 · 1571 阅读 · 5 评论 -
J2SE小结
都是些J2SE最基本最常用的东西。画完这个东西预示着从此转向java了吧。原创 2012-03-08 10:04:28 · 1535 阅读 · 7 评论 -
动态数组的声明与例子练习
动态数组在有些情况下,用户可能不知道需要多大的数组,这时就需要用一个能够改变大小的数组,这就是动态数组。动态数组可以在任何时侯改变大小。在VB中,动态数组是最灵活、最方便的一种数组。利用动态数组还有助于有效管理内存,因为动态数组是使用时才开辟内存空间,在不使用这个数组时,还可以将内存空间释放给系统。这样就可以最大限度地节省内存,提高运行速度。创建动态数组需要2步,第一步和固定长度数组(静态原创 2011-01-12 16:36:00 · 1881 阅读 · 2 评论 -
C#构造函数和析构函数
构造函数和析构函数 转载http://www.cnblogs.com/philzhou/archive/2010/08/10/CSharp_Constructor.html本节说明对象的创建、初始化和销毁过程。本节介绍下列主题: l 类构造函数l 结构构造函数l 析构函数类构造函数本节将讨论三种类构造函数:类构造函数的类型注释转载 2011-09-17 21:13:33 · 3349 阅读 · 1 评论 -
索引器indexer
一、索引器的基本概述 索引器定义类似于属性,但其功能与属性并不相同,可以看成是属性的增强版,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。 1、索引器的定义 定义的一般形式: [修饰符] 数据类型this[索引类型 index] { get{//获得属性的代码}原创 2011-09-22 08:48:55 · 1524 阅读 · 2 评论 -
项目组成和开发步骤——VB
一个VB项目的组成:可以由多个工程组成,一个工程就是一个EXE文件。一个工程中可由多个单文档界面(SDI)、一个多文档界面(MDI),最多一个资源文件组成。 SDI和MDI的区别: 我们如果使用过基于 Windows 的应用程序,很容易注意到不是所有用户界面看上去或操作起来都是一样的。用户界面样式主要有两种:单文档界面 (SDI) 和多文档界面 (MDI)。SDI原创 2010-12-15 23:37:00 · 2237 阅读 · 4 评论 -
静态数组的声明与例子练习
数组的定义与声明在使用数组之前,一般要声明数组,当然也可以采用隐式声明的方法。声明数组的方法与声明各种类型的变量一样,可以用Dim,Private,Public或Static来声明,只不过声明数组时需要设置数组的上下界,也就是数组下标索引的起始值和中止值。(1)静态数组:其声明的语法如下: Dim│Private│Public│Static 数组名([下标下界 To]下标原创 2011-01-12 16:35:00 · 1701 阅读 · 2 评论 -
VB全局对象
清晰大图:http://35free.net/shan9liang/vb/VB全局对象.htm1、为什么全局对象不用声明?答:在VB中,全局对象就是一个特殊的类,这个类只有唯一一个特殊的实例,这个实例不需要定义,直接使用就可以。2、全局对象(类)和别的类有什么区别? 答:主要就一点,不用定义,直接使用。3、为什么只有这几个是全局对象?答:个人原创 2011-01-14 18:12:00 · 1603 阅读 · 3 评论 -
图解VS2010打包全过程
最近刚刚打包发布了用VS2010开发的一个收费系统,借此讲一讲打包过程,供大家参考。首先打开已经完成的工程,如图:下面开始制作安装程序包。第一步:[文件]——[新建]——[项目]——安装项目。名称——可以自己根据要求修改。位置——是指你要制作的安装文件存放在什么目录内,可以根据需要修改,笔者一般是把它放在本工程的同一个目录内。原创 2011-11-10 19:22:45 · 13642 阅读 · 10 评论