
java基础
道仁
喜欢看书从书中汲取精神食粮,喜欢下象棋,在楚河汉界间发散思维,磨练心智。喜欢听歌,从歌曲中舒缓心情。喜欢运动,从运动中强健体魄。
本着勤奋务实的态度在软件领域顽强拼搏。执着谦虚谨慎的心学习前端软件技术。不断的提升自己,让自己始终保持随时应付工作需要。
展开
-
log4j配置样例
使用的时候,只需要将修改对应级别的日志到对应的目的地。如打印INFO信息到控制单。log4j.rootLogger=INFO,CONSOLEJava代码 log4j.rootLogger=CONSOLE,FILE log4j.addivity.org.apache=true # 应用于控制台 log4j.appender.CONSOLE=转载 2013-01-14 18:14:33 · 767 阅读 · 0 评论 -
设计模式(Design Patterns)
——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式转载 2015-01-04 12:03:33 · 1294 阅读 · 0 评论 -
JAVA8 十大新特性详解
Java is still not dead—and people are starting to figure that out.”本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:复制代码 代码如下:int转载 2015-01-02 13:38:02 · 1060 阅读 · 0 评论 -
Java 7的新特性
我刚从在Antwerp召开的Devoxx 大会上回来,会上介绍了Java7的新特性,对应的JDK将于2010年9月发布。下面是7个已经完成的新特性:对collections的语言级支持自动资源管理改进泛型在创建实例时的类型引用带下划线的数字在switch中使用String二进制文字简化的可变参数方法调用Java7还有很多其他的新特性,我将会对此进行追踪。对Colle转载 2015-01-01 22:30:04 · 539 阅读 · 0 评论 -
探究java.lang.OutOfMemoryError: PermGen space
近日,tomcat6下,同时发布多个app(实际上就两个app,这两个app之间通过WebService互相访问,另外有三个Socket服务端监听),系统启动的时候No problem。but系统运行时总是抛出java.lang.OutOfMemoryError: PermGen space。根据以往经验,调大java的-Xss参数,可是增大至16M时,仍然一如既往的throw Excepti转载 2015-01-01 22:37:05 · 442 阅读 · 0 评论 -
深入理解Java内存模型之系列篇
深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来转载 2015-01-14 14:54:17 · 1649 阅读 · 0 评论 -
java 内存数据库配置启动windows
1. 首先下载hsqldb.jar包。 2.cmd 命令行cd到上述jar包目录下。3. a. 启动内存数据库server端。 java -cp hsqldb.jar org.hsqldb.Server -database.0 ./db/mydb -dbname.0 mydb -database.n 数据库文件(其他数据库中对应:数原创 2014-12-24 10:34:40 · 728 阅读 · 0 评论 -
java集群
序言越来越多的关键应用运行在J2EE(Java 2, Enterprise Edition)中,这些诸如银行系统和账单处理系统需要高的可用性(High Availability, HA),同时像Google和Yahoo这种大系统需要大的伸缩性。高可用性和伸缩性在今天高速增长的互连接的世界的重要性已经证实了。eBay于 1999年6月停机22小时的事故,中断了约230万的拍卖,使eBay的股转载 2015-01-07 17:36:16 · 632 阅读 · 0 评论 -
Java多线程--让主线程等待所有子线程执行完毕
数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完毕总共的耗时,在第一个子进程创建前记录当前时间用System.currentTimeMillis()在最后一个子进程结束后记录当前时间,两次一减得到的时间差即为总共的用时,代码如下 Java代码 long tStart = System.currentTime转载 2014-10-09 16:45:42 · 809 阅读 · 0 评论 -
JUNIT单元测试
引言毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。单元测试正是验证代码行为是否满足预期的有效手段之一。但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作。幸运的是,单元测试工具 JUnit 使这一切变得简单艺术起来。JUnit 是 Java 社区中知名度最高的单元测试工具。它诞生于 1997转载 2014-07-10 16:05:29 · 739 阅读 · 0 评论 -
java ant 详解
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然转载 2014-05-16 15:37:02 · 628 阅读 · 0 评论 -
引用 commons.net包中的FTPClient.listFiles()方法返回null的问题及其解决方案(转)
<br />引用动物凶猛 的 commons.net包中的FTPClient.listFiles()方法返回null的问题及其解决方案(转) <br /><br /> 目前开发的这个项目中需要从远程服务器上下载数据,采用了开源的commons.net.ftp包。在实际应用中发现了一个问题,在测试服务器上调用ftpClient.listFiles()方法可以返回包含文件名的数组,而在现网服务器上此方法返回NULL。我被这个问题困扰了好久,下面把我的处理思路陈述如下:<br />(1)首先发现2个服务器的区别:转载 2010-10-11 15:07:00 · 6125 阅读 · 0 评论 -
Java实例6 - 汉诺塔问题 Hanoi
[java] view plaincopy/** * 汉诺塔大学的时候就学过,但是根本没搞明白,唯一知道的就是要用递归的方法来求解。 * 问题描述: * 有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。 * 要求按下列规则将所有圆盘移至C杆: * 1.每次只能移动一个圆盘; * 2.大盘不能叠在小盘转载 2015-02-26 23:47:33 · 827 阅读 · 0 评论 -
Java实例2 - 冒泡排序 Bubble Sort
[java] view plaincopy/** * 冒泡排序估计是每本算法书籍都会提到的排序方法。 * 它的基本思路是对长度为N的序列,用N趟来将其排成有序序列。 * 第1趟将最大的元素排在序列尾部,第2趟将第2大的元素排在倒数第二的位置, * 即每次把未排好的最大元素冒泡到序列最后端。 * 该排序方法实际上分为两重循环,外层循环:转载 2015-02-26 23:25:49 · 589 阅读 · 0 评论 -
Java实例3 - 三角数字
[java] view plaincopy/** * 三角数字: * 比达哥斯拉领导下的古希腊数学家发现了一个有趣的数字序列1, 3, 6, 10, 15, 21,... * 你能看出他们有什么规律么? * 对了它的规律就是f(x) = x+ f(x-1) * 想想是不是很像小时候打算盘从1一直加到100啊 */ packa转载 2015-02-26 23:39:42 · 533 阅读 · 0 评论 -
一种Java Web程序资源的优化方法
种Java Web程序资源的优化方法作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs要怎样组织和优化CSS和脚本文件资源?很多CSS和JavaScript资源分散在不同的文件中,可能对网页的载入速度有影响。WRO4J是一个很有用的API,可以最小化和压缩Web资源文件,包括CSS和JavaScript文件。WRO4J可以在转载 2016-01-22 10:10:52 · 909 阅读 · 0 评论 -
Java图片上传压缩处理
过去做的项目都是针对企业级应用,第一次开发新闻版块图片上传的功能,需要解决用户上传图片后,按照用户规定的尺寸大小或者按照图片比例,对图片进行压缩。 自己试写的工具类,写的时候考虑了几个关键点: 1、图片格式 JAVA的API很好,com.sun.image.codec.jpeg.JPEGCodec和com.sun.image.codec.jpeg.JPEG转载 2016-01-21 20:39:01 · 1376 阅读 · 0 评论 -
JAVA中的数据存储(堆及堆栈)
转自:http://www.iteye.com/topic/6345301.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(转载 2015-10-30 20:33:04 · 519 阅读 · 0 评论 -
String StringBuilder StringBuffer 对比 总结得非常好
相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类。String类是不可变类,任何对String的改变都会引发新的String对象的生成;而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐全转载 2014-07-08 18:03:11 · 700 阅读 · 0 评论 -
ReentrantLock -synchronized 对比
JDK 5.0为开发人员开发高性能的并发应用程序提供了一些很有效的新选择。例如,java.util.concurrent.lock 中的类 ReentrantLock 被作为 Java 语言中 synchronized 功能的替代,它具有相同的内存语义、相同的锁定,但在争用条件下却有更好的性能,此外,它还有 synchronized 没有提供的其他特性。这是否意味着我们应当忘记 synchro转载 2015-03-07 20:26:11 · 479 阅读 · 0 评论 -
Java中ConcurrentHashMap学习
ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable每次同步执行的时候都要锁住整个结构。看下图:图左侧清晰的标注出来,lock每次都要锁住整个结转载 2015-03-08 19:33:34 · 501 阅读 · 0 评论 -
排序算法--从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
0、前言 从这一部分开始直接切入我们计算机互联网笔试面试中的重头戏算法了,初始的想法是找一条主线,比如数据结构或者解题思路方法,将博主见过做过整理过的算法题逐个分析一遍(博主当年自己学算法就是用这种比较笨的刷题学的,囧),不过又想了想,算法这东西,博主自己学的过程中一直深感,基础还是非常重要的,很多难题是基础类数据结构和题目的思想综合发散而来。比如说作为最基本的排序算法就种类很多,转载 2015-03-15 09:55:14 · 2666 阅读 · 1 评论 -
Java实例8 - 插入排序 Insertion Sort
http://blog.csdn.net/kindterry/article/details/6581340[java] view plaincopy/** * 选择排序的思想: * 每次循环前,数组左边都是部分有序的序列, * 然后选择右边待排元素,将其值保存下来 * 依次和左边已经排好的元素比较 *转载 2015-02-26 23:57:21 · 1676 阅读 · 0 评论 -
Java实例7 - 选择排序 Selection Sort
[java] view plaincopy/** * 选择排序的思想: * 每次从待排序列中找到最小的元素, * 然后将其放到待排的序列的最左边,直到所有元素有序 * * 选择排序改进了冒泡排序,将交换次数从O(N^2)减少到O(N) * 不过比较次数还是O(N) */ package al; pu转载 2015-02-26 23:53:28 · 828 阅读 · 0 评论 -
Java实例4 - 快速计算二进制数中1的个数(Fast Bit Counting)
[java] view plaincopy/** * 快速计算二进制数中1的个数(Fast Bit Counting) * 该算法的思想如下: * 每次将该数与该数减一后的数值相与,从而将最右边的一位1消掉 * 直到该数为0 * 中间循环的次数即为其中1的个数 * 例如给定"10100“,减一后为”10011",相与为"10000转载 2015-02-26 23:39:52 · 925 阅读 · 0 评论 -
Java实例1 - 朴素字符匹配 Brute Force
[java] view plaincopy/** * 朴素字符串算法通过两层循环来寻找子串, * 好像是一个包含模式的“模板”沿待查文本滑动。 * 算法的思想是:从主串S的第pos个字符起与模式串进行比较, * 匹配不成功时,从主串S的第pos+1个字符重新与模式串进行比较。 * 如果主串S的长度是n,模式串长度是 m,那么Brute-转载 2015-02-26 23:24:44 · 962 阅读 · 0 评论 -
Java实例5 - 考拉兹猜想 Collatz Conjecture
[java] view plaincopy/** * 考拉兹猜想:Collatz Conjecture * 又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想, * 是指对于每一个正整数,如果它是奇数,则对它乘3再加1, * 如果它是偶数,则对它除以2,如此循环,最终都能够得到1。 */ package al转载 2015-02-26 23:43:27 · 3046 阅读 · 0 评论 -
线程安全的单例模式
单例模式单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。单例模式有一下特点:1、单例类只能有一个实例。2、单例类必须自己自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。一、懒汉式单例在类被加载的时候,唯一实例已经被创建。这个设计模式在Java中容易实现,在别的语言中难以实现。单例模式-懒汉式单例public class LazySingleton { /*** 私有静态对象,加载时候不做初始化 */ private转载 2010-10-27 14:53:00 · 1081 阅读 · 0 评论 -
静态方法加锁,和非静态方法加锁区别
// 这是一个很简单的类,里面共享静态变量 num,然后一个静态 和 非静态方法,都加上锁// 我们假设有两个线程同时操作这两个方法,那么数据能互斥吗? Java代码 public class Walk { public static int num = 100; public static Walk walk = new转载 2014-04-16 10:17:16 · 2848 阅读 · 0 评论 -
java 脚本运行设置初始内存大小
<br />cd /<br />d: --- 目录<br />cd XT_REAL_EFILE --- 目录<br />start java -Xms256M -Xmx512M -jar EFileRealFrame_fat.jar r ------启动命令原创 2010-11-29 09:56:00 · 2593 阅读 · 0 评论 -
Solaris10下Ftp Server的配置与应用
ftp服务是Internet上的标准服务之一,用来在网络上传输文件。在linux系统中,通常用wu-ftpd来实现该服务(www.wu-ftpd.org). <br />通常,wu-ftpd提供三种ftp登录形式:<br />1、anonymous ftp <br />2、real ftp <br />3、guest ftp <br />anonymous ftp 应用最广泛的一种ftp,通常,用户以anonymous为用户名,以电子邮件地址为密码进行登录。<br />real ftp 就是以真实的用户名和原创 2010-09-27 17:40:00 · 4215 阅读 · 0 评论 -
FTP 数字代码的意义
<br />FTP 数字代码的意义 <br /><br />110 重新启动标记应答。 <br />120 服务在多久时间内ready。 <br />125 数据链路埠开启,准备传送。 <br />150 文件状态正常,开启数据连接端口。 <br />200 命令执行成功。 <br />202 命令执行失败。 <br />211 系统状态或是系统求助响应。 <br />212 目录的状态。 <br />213 文件的状态。 <br />214 求助的讯息。 <br />215 名称系统类型。 <br />2原创 2010-09-27 17:07:00 · 921 阅读 · 0 评论 -
java ftpclient问题
<br />java ftpclient问题(sun.net.ftp.FtpClient) <br />1 sun.net.ftp.FtpProtocolException: PORT :501 PORT not allowed after EPSV ALL, active mode off 很多ftp服务器传输时采用被动模式,可用命令ftpClient.sendServer("PASV")解决。后面不要int reply = ftpClient.readServerResponse();否则问题依旧。<b原创 2010-09-27 16:57:00 · 8621 阅读 · 0 评论 -
java环境变量配置
<br />windows xp下配置JDK环境变量:<br /> 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08;<br /> 2.安装完成后,右击“我的电脑”,点击“属性”; <br /> 3.选择“高级”选项卡,点击“环境变量”; <br /> 4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”; <br />转载 2010-09-20 10:52:00 · 608 阅读 · 0 评论 -
简化Java日期操作的开源项目DATE4J,超级好用
以往要使用Java对时间日期进行操作,可能会用到以下的一些类:Date and its subclasses : java.util.Date java.sql.Date java.sql.Timestamp The calendar and time zone classes : java.util.Calendar java.util.GregorianCalendar java.转载 2010-05-16 19:39:00 · 607 阅读 · 0 评论 -
FTP上传下载文件案例详解
首先导入包import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile; FTPClient类库主要提供了用于建立FTP连接的类。利用这些类的方法,编程人员可以远程登录到FTP服务器,列举该服务器上的目录,设置传输协议,以及传送文件。FtpClient类涵盖了几乎所有FT原创 2010-05-04 21:26:00 · 1581 阅读 · 0 评论 -
ASCII,Unicode,UTF-8,GB2312编码之间的关系
字符编码:ASCII,Unicode,UTF-8,GB2312从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000转载 2010-04-22 21:26:00 · 3060 阅读 · 0 评论 -
java中synchronized用法
打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法),和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。 在此我们先来明确一下我们的前提条件。该对象至少有原创 2010-01-05 09:37:00 · 460 阅读 · 0 评论 -
java 执行sql文件
String username = configOperater.getDataSourceElement("connectionUsername"); String password = configOperater.getDataSourceElement("connectionPassword"); String sid = configO原创 2010-02-23 16:38:00 · 936 阅读 · 0 评论 -
Exception in thread "main" java.lang.UnsatisfiedLinkError 的一种解决办法
Exception in thread "main" java.lang.UnsatisfiedLinkError,编译没有问题,运行出现问题,如果错误Exception in thread "main" java.lang.UnsatisfiedLinkError后面是某一个类名的话,很可能是java程序调用了有关dll文件而没有找到这样的dll 文件造成的!原创 2010-02-02 10:55:00 · 13640 阅读 · 0 评论