JAVA
lanmenghcc
这个作者很懒,什么都没留下…
展开
-
java编程规范-注释
注释 对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。(1.42+)说明:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime异常,@thr原创 2013-01-15 10:08:24 · 835 阅读 · 0 评论 -
linux内存管理机制
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows是只在需要内存时,才为应用程序分配内存,并不能充分转载 2014-07-17 10:38:20 · 701 阅读 · 0 评论 -
js自定义对象
一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类、Hashtable类等等。目前在Javascript中,已经存在一些标准的类,例如Date、Array、RegExp、String、Math、Number等等,这为我们编程提供了许多方便。但对于复杂的客户端程序而言,这些还远远不够。转载 2014-07-18 15:57:04 · 563 阅读 · 0 评论 -
java map遍历效率
1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value、遍历key、遍历v转载 2014-06-30 11:57:51 · 697 阅读 · 0 评论 -
SSL证书SOCKET登陆JAVA
有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多。但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能深入地理解Java环境下,SSL的通信是如何实现的。对SSL中的各种概念的认识也可能会仅限于可以使用的程度。本文通过构造一个简单的SSL Server和SSL Client来讲解Java环境下SSL的转载 2014-07-01 17:17:13 · 1894 阅读 · 0 评论 -
Digester解析xml详解
刚刚学了一下Digester如何解析xml文件,所以记录下来,方便以后查看。 一般用来读取xml文件的工具包有DOM、SAX和JDOM等,但用过的人都知道,它们属于比较底层的API,写起来代码量很大,而且如果修改了xml文件的格式,代码也要做大幅度的改动。而使用Apache Jakarta的Digester,解析XML文件非常方便且不需要过多的关心底层的具体解析过程。Digeste转载 2014-07-10 15:02:57 · 1086 阅读 · 0 评论 -
java序列化特点,如何java序列化,序列化与继承
Java 串行化技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种转载 2014-08-22 09:48:21 · 1520 阅读 · 0 评论 -
VisualVM远程连接
-Djava.rmi.server.hostname=192.168.1.160 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.原创 2014-09-10 11:33:14 · 688 阅读 · 0 评论 -
线程状态控制 CountDownLatch和CyclicBarrier的区别
在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而CyclicBarrier在调用reset之后还可以继续使用。那如果只是这么简单的话,我觉得CyclicBarrier简单命名为ResetableCountDownLatch好了,显然不是的。我的理解是,要从他们的设计目的去看这两个类。javadoc里面的描述是转载 2014-09-28 12:44:31 · 594 阅读 · 0 评论 -
sftp服务器配置-vsftpd
环境:CentOS 5.0 操作系统一.安装:1.安装Vsftpd服务相关部件:[root@KcentOS5 ~]# yum install vsftpd*Dependencies Resolved=============================================================================Package转载 2014-10-09 16:21:14 · 6086 阅读 · 2 评论 -
zlib,gzip,zip,7z压缩的区别
zlib是一种数据压缩程序库,它的设计目标是处理单纯的数据(而不管数据的来源是什么)。gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格式),它的设计目标是处理单个的文件。gzip在压缩文件中的数据时使用的就是zlib。为了保存与文件属性有关的信息,gzip需要在压缩文件(*.gz)中保存更多的头信息内容,而zlib不用考虑这一点。但gzip只适用于单个文件,所以我们在UNIX/Linu转载 2014-10-14 09:20:48 · 23274 阅读 · 0 评论 -
GIT操作基本详解(1)
前面第一部分写了Git的一些概念,接下来这一篇准备从最基础的git操作入手,看看在实际工作中如何使用git来管理我们的项目。 1、Git基本设置 先看看Git的一些相关设置: (1) 用户名与Email:由于GIt是分布式版本控制系统,在本地上有一个版本库,我们可以设置自己的用户名与联系方式:代码ken@Linux:~/project$ git转载 2014-11-17 20:50:46 · 785 阅读 · 0 评论 -
GIT操作基本详解(2)
前面第一部分写了Git的一些概念,接下来这一篇准备从最基础的git操作入手,看看在实际工作中如何使用git来管理我们的项目。 1、Git基本设置 先看看Git的一些相关设置: (1) 用户名与Email:由于GIt是分布式版本控制系统,在本地上有一个版本库,我们可以设置自己的用户名与联系方式:代码ken@Linux:~/project$ git转载 2014-11-17 20:52:27 · 714 阅读 · 0 评论 -
java file.io的各种使用
File类 File可以表示一个文件的名字也可以表示某个目录下一堆文件的名字,如果是表示多个文件,那么可以使用list方法来获取他们的set集合,返回的是一系列的字符串。下面我们就来看下如何使用这个类以及相关的FilenameFilter接口。如果想要获取某个目录下的所有文件列表那么直接使用默认的list方法,如果需要筛选特定的文件,那么就可以使用文件过滤器,如下://: io/Di转载 2014-10-20 11:42:18 · 2949 阅读 · 0 评论 -
java.net.SocketException: Too many open files解决方法查看javaIO数量
java.net.SocketException: Too many openfiles错误,一直很头疼,困扰了我很久,今天google了一下,看到了很多种解释,后来才知道linux对进程的打开文件数是有限制的。 lsof -p 12349 查看链接数,12349是tomcat的进程 lsof -P 12349|wc -l ulimit -u 查看open转载 2014-10-20 14:22:11 · 1883 阅读 · 0 评论 -
java线程面试题--精华
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么转载 2014-12-01 22:30:17 · 1282 阅读 · 0 评论 -
Kryo为什么比Hessian快
Kryo 是一个快速高效的Java对象图形序列化框架,它原生支持java,且在java的序列化上甚至优于google著名的序列化框架protobuf。由于protobuf需要编写Schema文件(.proto),且需静态编译。故选择与Kryo类似的序列化框架Hessian作为比较来了解一下Kryo为什么这么快。序列化的过程中主要有3个指标:1、对象序列化后的大小一个对象会被序列化工具序转载 2014-12-01 22:49:50 · 1196 阅读 · 0 评论 -
javah -jni 出现异常的情况,以及解决办法
用javah生成一个jni的头文件,文件包路径:com.colasoft.datapool.util.Converter但是老是报如下错误:D:\workspace\sps_4.2\bin\com\colasoft\datapool\util>javah -jni Converter错误:无法访问 Converter错误的类文件: .\Converter.class类文件包原创 2014-03-03 15:13:31 · 1463 阅读 · 0 评论 -
java内存优化性能优化
局部决定整体。一个应用的整体性能取决于每个组件的性能。下面是一些帮助你提高应用性能的Java编程技巧:编程技巧原因及策略避免重复创建对象为什么:更少的对象会需要更少的垃圾回收使用的空间越少,应用的性能越好怎么做:重复利用一个对象,而不是在每次需要的时候都去创建一个功能一样的对象(这样做)String s = “No longer转载 2013-12-06 15:10:09 · 793 阅读 · 0 评论 -
eclipse各种快捷键的使用方法
Eclipse 常用快捷键Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。 2. 【Ctrl+O】 显示类中方法和属性转载 2013-11-29 15:09:46 · 848 阅读 · 0 评论 -
JAVA编码规范--性能与可靠性
1.1 性能与可靠性1.1.1 规则规则1 数组复制使用System.arraycopy(*)。(1.42+)说明:更好的性能 规则2 不要使用循环将集合转为数组,可以使用集合的toArray()方法。(1.42+)说明:更好的性能,代码更加简洁示例:ArrayList list = new ArrayList();原创 2013-01-24 14:10:36 · 1791 阅读 · 0 评论 -
Java十大低级错误
为了规范大家的编程行为,借鉴前人的编程经验,避免低级错误的不断发生,特发布MDSP产品Java十大低级错误,供所有Java开发人员学习: 1、方法和变量命名随意而不规范,没有类注释、方法注释或注释不规范,代码修改后,不同步修改注释,导致注释与代码不符。 2、数据类不重载toString()方法(说明:编程规范要求“所有的数据类必须重载toString() 方法,返回该类有意义的内容原创 2013-01-24 14:03:14 · 951 阅读 · 0 评论 -
JAVA编码规范--综合
1 网络综合新增条款1.1 注释1.1.1 规则规则1 多行“/** */”或“/* */”注释中不同的行结尾应该添加 换行符(1.42+)说明:换行符在 html文档中表示强制换行,在一些开发工具中(比如Eclipse),多行注释如果不用 分隔,则代码格式化工具会将所有的行拼成一行,这个规则用来保护注释在不同IDE中的可维护性原创 2013-01-24 14:09:40 · 675 阅读 · 0 评论 -
JAVA编程规范--编码
1.1 编码1.1.1 规则 规则1 数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally的finally中close(),如果有多个IO对象需要close(),需要分别对每个对象的close()方法进行try-catch,防止一个IO对象关闭失败其他IO对象都未关闭。(1.42+)示例:try原创 2013-01-24 14:10:49 · 1276 阅读 · 0 评论 -
设计模式的原则
综述为什么要提倡"Design Pattern"呢?根本原因是为了代码复用,增加可维护性。那么怎么才能实现代码复用呢?面向对象有几个原则:开闭原则(Open Closed Principal,OCP)、里氏代换原则(Liskov Substitution Principle,LSP)、依赖倒转原则(Dependency Inversion Principle,DIP)、接口隔离原则(Int转载 2013-01-28 17:53:39 · 716 阅读 · 0 评论 -
java网络编程,通过TCP,Socket实现多对一的局域网聊天室 .
java网络编程,通过TCP,Socket实现多对一的局域网聊天室可以实现多个客户端连接服务器,服务器接收到信息就会把信息广播到所有的客户端 这是服务器端的代码View Code import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.ActionEven转载 2013-01-16 15:21:22 · 1239 阅读 · 0 评论 -
JAVA编程规范--命名
1.1 命名1.1.1 规则 规则1 类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。(1.42+)示例:OrderInformation, CustomerList, LogManager, LogConfig, SmpTransaction 规则2 方法名使用类意义完整的原创 2013-01-16 15:50:03 · 1221 阅读 · 0 评论 -
JAVA减少内存使用的10个简单方法
1.尽量使用直接量2.使用StringBuilder和StringBuffer进行字符串连接3.尽早释放无用对象的引用4.尽量少用静态变量5.避免在经常调用的方法、循环中创建Java对象6.缓存经常使用的对象7.尽量不要使用finalize方法8.考虑使用SoftReference原创 2013-01-16 16:01:18 · 4388 阅读 · 1 评论 -
一测试妹子的总结和心得
从5月底进入项目,在项目经理的帮助下开始学着一期B020测试用例,到熟悉测试流程,编写测试计划、测试报告,回溯分析,再到现在iBS重构,重新准备测试数据,整理测试用例,已经整整7个半月了,学到了不少东西,进行一下总结。目前已经提单302个,编写测试用例约480个。在这302个BUG的提交和回归以及测试用例编写过程中,在测试文档的写作及修订中,我对整个项目的逻辑及功能架构逐步清晰,对项目之间所需原创 2013-01-22 15:25:42 · 1121 阅读 · 0 评论 -
Servlet 和 CGI 区别
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完转载 2013-02-19 12:06:04 · 609 阅读 · 0 评论 -
java程序员应该了解的10个面向对象设计原则
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程转载 2013-03-18 17:49:38 · 718 阅读 · 0 评论 -
java中的Serializable接口的作用
Object serialization的定义:Object serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。 serialization不但可以在本机做,而且可以经由网络操作(RMI)。这个好处是很大的----因为它自动屏蔽了操作系统的差异,字节顺序(用Unix下的c开发过网络编程的人应转载 2013-04-27 15:08:56 · 595 阅读 · 0 评论 -
log4j配置详解
log4j配置祥解第一步:加入log4j-1.2.8.jar到lib下。第二步:在CLASSPATH下建立log4j.properties。内容如下:1 log4j.rootCategory=INFO, stdout , R23 log4j.appender.stdout=org.apache.log4j.ConsoleAppender4 log4j转载 2013-08-20 14:02:06 · 640 阅读 · 0 评论 -
java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat
关于Logback的一个异常java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;原因可能有两个:1、jar包冲突,build path下可能加原创 2013-11-21 09:54:15 · 3453 阅读 · 0 评论 -
DatabaseMetaData获取数据库信息和表信息(表的列名,类型,主键等)SQL java
import java.sql.*;public class GetDBInfo{ public GetDBInfo() { } public static voidmain(String[] args) { try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstanc原创 2013-11-07 11:09:02 · 3376 阅读 · 0 评论 -
switch case 变量必须是final类型
public class Du { public static void main(String[] args) { int TYPE = 5; int sw = 3; switch(sw){ case TYPE: System.out.println("it's 5"); break; case 4: System.out.println("It's原创 2013-11-22 12:42:54 · 4067 阅读 · 0 评论 -
ByteBuffer常用方法详解
缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、减少实际的物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数举个简单的例子,比如A地有1w块砖要搬到B地由于没有工具(缓冲区),我们一次只能搬一本,那么就要搬1w次(转载 2014-12-08 14:02:24 · 1379 阅读 · 0 评论