![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
1.Java
文章平均质量分 76
hxwhou
坚持就是胜利!
展开
-
应该被记住的8位Java人物
摘要:这里列举了8个Java人物,他们创建了对Java社区贡献很大的框架、产品、工具和图书,也因此改变了 Java 的编码方法。本文列举了8个Java人物,他们创建了对Java社区贡献很大的框架、产品、工具和图书,也因此改变了Java的编码方法。一起来认识下吧。8.Tomcat和Ant创办人James Duncan Davidson,1997年到2001年在Sun公司工作,转载 2013-02-25 11:26:01 · 507 阅读 · 0 评论 -
如何创建并运行java线程
Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:1Tread thread = new Thread();执行该线程可以调用该线程的start()方法:1thread.start();翻译 2013-12-17 15:29:38 · 1141 阅读 · 0 评论 -
mina高并发连接导致java.io.IOException: Too many open files解决方法
这几天在实习的公司给一个项目搞测试,主要测试项目部署在Linux Server上的并发访问,即所谓的压力测试;模拟网关,建立大量并发连接,用的是apache的mina建立的NioSocketConnector();在多线程的模式下,开启了1000个连接,结果抛出异常“java.io.IOException: Too many open files",导致无法创建新的连接,服原创 2013-12-25 20:37:56 · 4987 阅读 · 0 评论 -
[Effective Java]考虑用静态工厂方法代替构造器
本文主要介绍如何使用静态工厂方法已经在那种场合来使用这种方式代替构造方法。 众所周知,对于类而言,我们为了获得一个类的实例对象,通常情况下会提供一个公有的(public) 的构造器。当然除了这种方法以外,我们还可以通过给类提供一个public的静态工厂方法(static factory method)的方式来完成,让它返回一个类的实例。原创 2014-05-21 20:49:08 · 1678 阅读 · 0 评论 -
Eclipse插件开发之TreeViewer
contentprovider在插件开发和RCP(Rich Client Platform)开发中常常被用到,譬如你要创建一个TreeViewer(树形控件)就需要一个ITreeContentProvider,如果要实现一个TableViewer(表控件)就需要一个IStructuredContentProvider,contentprovider主要的作用就是返回当前界面中的数据。1.内容提供器(ITreeContentProvider)TreeViewer的内容提供器(ITreeContentP原创 2014-06-04 21:43:31 · 3251 阅读 · 0 评论 -
HashMap中的keySet()和entrySet()
1、基本概述SetMap.EntryK,V>>entrySet() 返回此映射中包含的映射关系的 set 视图。SetK> keySet() 返回此映射中包含的键的 set 视图。2、效率分析对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍原创 2014-06-05 09:09:57 · 1730 阅读 · 0 评论 -
Java中的NIO和IO的对比分析
总的来说,java中的IO和NIO主要有三点区别:IO NIO面向流 面向缓冲阻塞IO 非阻塞IO 无 选择器(Selectors)1.面向流与面向缓冲Java NIO和IO之间第一个最大的区别是,IO是面向流的,N原创 2014-05-22 21:21:30 · 1046 阅读 · 0 评论 -
Java中的不可变类
在学习Java的过程中,我们时常会遇到这样一个概念——不可变类。本文旨在对此做一简单的解释。1. 不可变类:创建该类的实例后,该实例的属性是不可改变的,java提供的包装类和java.lang.String类都是不可变类。当创建它们的实例后,其实例的属性是不可改变的。原创 2014-05-23 21:36:46 · 2233 阅读 · 1 评论 -
详解ClassLoader加载类的流程及自定义ClassLoader
Java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职:Bootstrap ClassLoader 负责加载java基础类,主要是 %JRE_HOME/lib/ 目录下的rt转载 2014-05-28 22:04:12 · 3845 阅读 · 0 评论 -
运行jar应用程序时引用其他jar包的四种方法
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName我们就只要在MANIFEST.MF转载 2014-05-28 22:22:39 · 3083 阅读 · 0 评论 -
Java中String和Date、Timestamp之间的相互转换
一、String与Date(java.util.Date)互转 1.1 String -> DateString dateStr = "2010/05/04 12:34:23";Date date = new Date(); //注意format的格式要与日期String的格式相匹配DateFormat sdf = new SimpleDateFormat("yyyy/MM转载 2014-05-29 18:27:45 · 1068 阅读 · 0 评论 -
基于MINA实现server端心跳检测(KeepAliveFilter)
MINA自带了对心跳协议的支持,可以对心跳做出细致的配置,本文在次基础上实现了server端对client端的心跳检测。在开始之前先简单介绍下keepAlive的机制:首先,需要搞清楚TCP keepalive是干什么用的。从名字理解就能够知道,keepalive就是用来检测一个tcp connection是否还连接正常。当一个tcp connection建立好之后,如果双方都不发送数据的原创 2013-10-30 23:18:08 · 11734 阅读 · 4 评论 -
详解使用wsgen和wsimport开发WebService
本文旨在描述如何使用jdk自带的wsgen.exe 和wsimport.exe开发WebService。本文旨在描述如何使用jdk自带的wsgen.exe 和wsimport.exe开发WebService。本文旨在描述如何使用jdk自带的wsgen.exe 和wsimport.exe开发WebService。原创 2014-06-14 17:53:49 · 2810 阅读 · 0 评论 -
Mule ESB 学习笔记(1)
1. 简介Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMS、Web Services、JDBC、HTTP以及其他技术。2. 整体结构图 整体结构从上图可见,Mule通过Transports/Connectors与外围的异构系统连转载 2014-06-15 21:36:30 · 1572 阅读 · 0 评论 -
Mule ESB 学习笔记(2)
6. 配置模式Mule 3.0版本提供了“pattern”的机制。Pattern总结了实际使用过程中的常见场景,以简化的服务配置方式提供。6.1 简单服务模式(simple service pattern)简单服务模式用于简化同步服务调用的配置,对应消息传递方式中的请求-响应方式。图 简单服务模式简单服务模式通过simple-service 元素配置,主要的元素属性包括:转载 2014-06-15 21:50:52 · 1627 阅读 · 0 评论 -
Mule ESB 学习笔记(3)
写之前的内容时,Mule刚刚3.0.1版本,很多官方文档还没有更新(尤其示例代码),维持在V2的状态。经过了一年多的时间,Mule社区版发展至了3.2版本,并且推出了Mule Studio可视化开发工具(当前beta状态,支持Mule 3.1.2)。将以前自己验证的示例代码在3.1.2版本上又跑了一遍(有些变化),在此做一下记录。一. 服务调用1. Mule实现并提供Web S转载 2014-06-15 21:53:27 · 1734 阅读 · 0 评论 -
Java多线程协调控制之wait¬ifyAll
最近在复习Java基础,看到多线程这块顺便写写多线程的协调控制程序。需求:假设系统中有两个线程分别代表取款者和存款者,现在系统的要求是存款者和取款者不断的重复存、取款操作,并且要求每当有存款者将钱存入指定账户中时,取款者就立即取出这笔钱,即不允许存款者连续两次存钱,也不允许取款者两次取钱。下面代码实现:1.首先是账户Account类;package com.原创 2014-09-04 22:26:26 · 1148 阅读 · 0 评论 -
在java程序中动态设置java.library.path
最近在做一个项目的过程中需要用到第三方的jar包和动态链接库(dll),其中jar包可以直接引入,问题是在开发的时候dll可以放在System32下,但是当项目完成后build的时候,这种方式就行不通了,所以必须考虑其他的方式来引用所需的dll文件。我们知道,在VM参数处通过-Djava.library.path后将加载路径指定到自己的lib目录后,程序可以正常启动。原创 2014-11-28 11:01:48 · 24076 阅读 · 1 评论 -
Java程序员必知的常用工具集
我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用到的常用工具。一、编码工具1.IDE:Eclipse或者IDEA,熟悉尽可能多的快捷键,《Eclipse常见快捷键列表》2.插件: (1) Findbugs,在release之前进行一次静态代码检查是必须的(2)转载 2013-12-13 16:18:42 · 1295 阅读 · 0 评论 -
超实用的Java数组技巧攻略
本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用。本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用! 0. 声明一个数组(Declare an array) 12转载 2013-11-04 21:26:35 · 973 阅读 · 0 评论 -
Java程序员应该了解的10个面向对象设计原则
摘要:Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。查看Apache和Sun的开放源代码能帮助你发现其他Java设计原则在这些代码中的实际运用。面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Obs转载 2013-02-25 11:32:45 · 471 阅读 · 0 评论 -
浅谈Java中的几种随机数
摘要:众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在Java转载 2013-02-25 18:55:32 · 469 阅读 · 0 评论 -
Java应用程序窗口关闭的方法
1.使用JFrame的enableEvents和processWindowEvent import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MainFrame extends JFrame { public MainFrame() { enableEvents原创 2013-03-19 10:29:51 · 3607 阅读 · 0 评论 -
java中的继承用法示例
本文通过代码示例的方式来展示Java语言中继承的实现创建ManagerTest.java 文件Manager 继承(extends) Employee注意super 的使用必须作为子类的构造器的第一条语句出现;super 与 this 的比较:super 的两个用途:1、调用超类(父类)的方法 2、调用超类(父类) 的构造器this 的两个用途:1、引原创 2013-03-23 10:43:25 · 1940 阅读 · 0 评论 -
java中抽象类的使用示例
关于抽象类、抽象方法的说明:1、在自下而上的类的继承层次结构中,上层的类更具通用性,甚至可能更加抽象;2、抽象类是类的抽象概述,仅提供类的定义,而不提供类的具体实现细节。抽象类的实现交由派生类(子类)来完成。3、抽象类的声明中包括abstract关键字,抽象类的存在是为了给派生类提供一种约定;4、为了提高程序的清晰度,包含一个或多个抽象方法的类本身必须被声明为抽象的;5、抽象方原创 2013-03-23 16:46:09 · 2567 阅读 · 0 评论 -
关于相等测试与继承+Hashcode+toString ,求指导!
在这个示例中演示的是 相等测试与继承+Hashcode+toString具体的代码及运行结果如下:Console如下:alice1 == alice2: truealice1 == alice3: falsealice1.equals(alice3): truealice1.equals(bob): falsebob.toString(): Employee[name=原创 2013-03-23 22:20:27 · 998 阅读 · 0 评论 -
LinkedHashMap和HashMap的区别与联系
由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下。?import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.Map;public class TestLi原创 2013-08-20 09:27:22 · 1294 阅读 · 0 评论 -
严重: Dispatcher initialization failed java.lang.RuntimeException:
1、核对lib包commons-fileupload-1.2.1.jar,commons-io-1.3.2.jarcommons-logging-1.0.4.jarfreemarker-2.3.16.jarognl-3.0.jarstruts2-core-2.2.1.jarxwork-core-2.2.1.jar 注意2.1以前是没有commons-原创 2013-08-14 17:44:44 · 1777 阅读 · 0 评论 -
Java之Enum的使用与分析
public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){ return this.context; } priv转载 2013-08-27 19:56:26 · 778 阅读 · 0 评论 -
拦截器(Interceptor)中的invocation.invoke()是什么意思?
关于在Struts2的自定义的验证拦截器(Interceptor)中的invocation.invoke()是什么意思?package com.xjtu.interceptor;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;im原创 2013-08-16 16:08:59 · 17430 阅读 · 0 评论 -
Java中的Set,List,Map的区别
对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. JAVA集合主要分为三种类型: Set转载 2013-09-07 11:27:31 · 1023 阅读 · 0 评论 -
Java中的Set集合类
1. 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的。Set最大的特性就是不允许在其中存放的元素是重复的。根据这个特点,我们就可以使用Set 这个接口来实现前面提到的关于商品种类的存储需求。Set 可以被用来过滤在其他集合中存放的元素,从而得到一个没有包含重复新的集合。 2. 常用方法 按照定义,Set 接转载 2013-09-07 11:29:29 · 1684 阅读 · 0 评论 -
java使用省略号代替多参数(参数类型... 参数名)
J2SE 1.5提供了“Varargs”机制。借助这一机制,可以定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。本文介绍这一机制的使用方法,以及这一机制与数组、泛型、重载之间的相互作用时的若干问题。到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都转载 2013-10-02 11:23:24 · 12040 阅读 · 0 评论 -
Java NIO原理和使用
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取React转载 2013-10-23 09:33:26 · 1675 阅读 · 0 评论 -
log4j.properties配置与加载
log4j.properties总结:一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。Log4j由三个重要转载 2013-11-15 17:12:55 · 9187 阅读 · 0 评论 -
java中的IO详解
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWr转载 2013-11-01 22:29:06 · 2047 阅读 · 0 评论 -
CAS实现SSO单点登录原理
1. CAS简介1.1. What is CAS?CAS(Central Authentication Service) 是 Yale大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于Web SSO)。CAS开始于2001年, 并在 2004年 12月正式成为JA-SIG的一个项目。1.2. 主要特性1、 开源的、多转载 2016-03-30 13:24:30 · 17098 阅读 · 3 评论