随笔分类 -  Java

摘要:一、线程1、线程创建:继承Thread类创建线程类实现Runnable接口创建线程类使用Callable和Future创建线程Runnable是执行工作的独立任务,但是它不返回任何值,如果希望任务完成时能够返回一个值,可以实现Callable接口 class TestThread implemen... 阅读全文
posted @ 2016-01-21 23:15 WahsonLeung 阅读(298) 评论(0) 推荐(0)
摘要:Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。正确理解类加载器能够帮你解决NoClassDefFoundError和java.lang.ClassNotFoundException,因为它们和类的加载相关。类加载器通常也是比较高级的Java面试中的重要考题 阅读全文
posted @ 2014-03-07 16:29 WahsonLeung 阅读(356) 评论(0) 推荐(0)
摘要:(转自:http://my.oschina.net/u/436879/blog/85478) 在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题。 一般,JVM的内存分为两部分:Stack和Heap。 Stack(栈)是JVM的内存指令区。Stack管理很简单,push一定长度字节的数据或者指令,Stack指针压栈相应的字节位移;pop一定字节长度数据或者指令,Stack指针弹栈。Stack的速度很快,管理很简单,并且每次操作的数据或者指令字节长度是已知的。... 阅读全文
posted @ 2014-03-07 15:21 WahsonLeung 阅读(415) 评论(0) 推荐(0)
摘要:JDK安装:1.在http://www.oracle.com/technetwork/java/javase/downloads/index.html上下载相应版本的JDK环境,这里我使用的是jdk-7u45-linux-x64.tar.gz。 2.我一般把非系统软件安装到/opt下。sudo c... 阅读全文
posted @ 2013-10-24 22:59 WahsonLeung 阅读(1176) 评论(0) 推荐(0)
摘要:参数绑定: Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: PrepareStatement pre=connection.prepare(“select * from User where user.name=?”); pre.setString(1,”zhaoxin”); ResultSet rs=pre.executeQuery(); 在Hibernate中也提供了类似这种的查询参数绑定功能,而且在Hibernate中对这个功能还提供了比... 阅读全文
posted @ 2013-10-15 16:50 WahsonLeung 阅读(405) 评论(0) 推荐(0)
摘要:重写hashCode()方法的基本规则:1、在程序运行过程中,同一个对象多次调用hashCode()方法应该返回相同的值2、当两个对象通过equals()方法比较返回true时,这两个对象的hashCode()方法返回的值也应该相等3、对象中用作equals()方法比较标准的Field,都应该用来计算hashCode值重写hashCode()方法的一般规则:1、把对象内每个有意义的Field计算出一个int类型的hashCode值,计算方式如下:Field类型计算方式booleanhashCode=(f ? 0 : 1);整数类型(byte,short,char,int)hashCode=(i 阅读全文
posted @ 2013-10-04 23:43 WahsonLeung 阅读(514) 评论(0) 推荐(0)
摘要:Eclipse - FindBugs Plugin 的安装和使用 FindBugs is a static analysis tool that examines the classes in search of potential problems during development, providing a powerful code auditing feature. It analyzes the bytecode to identify the familiar patterns. It is not limited to perform search using regular 阅读全文
posted @ 2013-09-22 15:52 WahsonLeung 阅读(1201) 评论(0) 推荐(1)
摘要:下载com.brosinski.eclipse.regex_1.4.0.jar地址:https://github.com/sbrosinski/RegexTester下载之后把jar包粘贴到${eclipse_home}/plugins(如D:\springsource\sts-3.3.0.RELEASE\plugins) 这个文件夹中重启eclipse如果你看见以下选项代表你安装成功:将此插件设置显示:然后简单测试一下:安装就完成了. 阅读全文
posted @ 2013-09-21 15:03 WahsonLeung 阅读(589) 评论(0) 推荐(0)
摘要:JDBC是Java为多种关系型数据库提供的统一的访问接口,以下是我长期使用JDBC总结的十个最佳实践。 JDBC最佳实践1:使用PreparedStatement 任何一个使用过JDBC的Java程序员几乎都知道这个,PreparedStatment可以通过预编译的方式避免我们在拼接SQL时造成SQ 阅读全文
posted @ 2013-04-24 18:35 WahsonLeung 阅读(208) 评论(0) 推荐(0)
摘要:转自:http://dev.yesky.com/436/7581936.shtml 在Java语言中, abstract class 和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它... 阅读全文
posted @ 2013-04-21 00:23 WahsonLeung 阅读(152) 评论(0) 推荐(0)
摘要:1、 继承和实现区别 Hashtable是基于陈旧的Dictionary类,实现了Map接口;HashMap是Java 1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)。 2、 线程安全不同 Hashtable的方法是同步的,HashMap是未同步,所以在多线程场合要手动同步HashMap。 3、 对null的处理不同 Hashtable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。即 Hashtable不允许null值其实在编译期不会有任何的不一样... 阅读全文
posted @ 2013-04-19 10:45 WahsonLeung 阅读(277) 评论(0) 推荐(0)
摘要:面向对象方法的基本思想如下:1、客观世界中的事物都是对象,对象间存在一定的关系。面向对象方法要求从现实世界客观存在的事物出发并建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题和认识问题,并根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射到问题域,保持问题域中的事物及其相互关系的本来面貌。2、用对象的属性描述事物的数据特征;用事物的操作描述事物的行为特征。3、对象的属性与操作结合为一体,成为一个独立的、不可分的实体,实体对外屏蔽其内部细节。4、通过抽象对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对 阅读全文
posted @ 2013-04-19 08:47 WahsonLeung 阅读(422) 评论(0) 推荐(0)
摘要:转自:http://www.cnblogs.com/xiaoxuetu Java的内存回收机制 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。1.Java在内存中的状态首先我们先写一个代码为例子:Person.java 1 package tes... 阅读全文
posted @ 2013-04-15 20:27 WahsonLeung 阅读(437) 评论(0) 推荐(1)
摘要:Java内存管理机制 在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。 Java 语言对内存管理做了自己的优化,这就是垃圾回收机制。 Java 的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由 GC ( garbage collection)负责自动回收不再使用的内存。 上面是Java 内存管理机制的基本情况。但是如果仅仅理解到这里,我们在实际的项目开发中仍然会遇到内存泄漏的问题。也许有人表示怀疑,既然 Java 的. 阅读全文
posted @ 2013-04-14 14:13 WahsonLeung 阅读(2527) 评论(1) 推荐(0)