编程技巧和总结
文章平均质量分 89
最美的词
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《Effective Java》学习总结
第一章:代码应该被重用,而不是被拷贝。模块之间的依赖性应该尽可能地降到最小。错误应该尽早被检测出来,最好是在编译时刻。第2条:处理多参数构造器public class NutritionFacts { private int servingSize; private int servings; private int calories; private int fat;原创 2013-04-17 12:20:38 · 1851 阅读 · 0 评论 -
Java死锁举例
死锁: 在多线程竞争使用共享资源的情况下,就有可能出现死锁的情况。比如,当一个线程等待另一个线程所持有的锁时,那个线程又可能在等待第一个线程所持有的锁。此时,这两个线程会陷入无休止的相互等待状态,这种情况就称为死锁。产生死锁的四个必要条件:1、互斥条件。进程对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占有。2、请求和保持条件。当进程因请求资源而阻原创 2014-08-13 00:58:46 · 2688 阅读 · 1 评论 -
面试中的单例模式
最近的两次面试中,都被要求在纸上写代码实现单例(Singleton)模式。下文展示了三种不同的Singleton实现方式:1.不好的解法一:只适用于单线程环境public class Singleton1 { private static Singleton1 instance = null; private Singleton1() { } public stat原创 2014-08-17 12:11:11 · 2025 阅读 · 0 评论 -
暴力子字符串查找
子字符串查找:给定一段长度为N的文本和一个长度为M的模式字符串,在文本中找到一个和该模式相符的子字符串广泛使用的暴力算法,虽然在最坏情况下的运行时间与M*N成正比,但是在实际中,绝大多数比较在比较第一个字符时就会产生不匹配,它实际运行时间一般与M+N成正比下面是暴力子字符串查找算法的Java实现:/** * 暴力字符串查找,如果找到,返回pat在txt中第一次出现的位置;没有找到则原创 2014-08-16 16:01:44 · 1360 阅读 · 0 评论 -
Java泛型入门
使用Java泛型,我们可以写一个泛型方法来对一个对象数组排序,然后,调用该泛型来对整形数组、浮点数数组、字符串数组等进行排序。1. 泛型方法下面是定义泛型方法的规则:所有泛型方法什么都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。下面是一个泛型方法的实例:public class GenericMethodTest{ //原创 2015-12-16 21:42:45 · 918 阅读 · 0 评论 -
Java BIO, NIO, AIO的一些粗浅认识
1. 阻塞与非阻塞"阻塞"与“非阻塞”概念经常和“同步”、“异步”混淆。在Java程序中,很多线程通常处于阻塞(blocking)状态,而同步(并不是指多线程同步的Synchronized)并不是这样,同步通常是指步骤需要一步步来完成,就想常规的代码一条条地执行一样,但异步可以在没有执行完当前这行代码之前,就执行下一行代码,就像很多JS代码、UI控件、后台启动线程等。相对于阻塞来讲,同步的原创 2015-05-07 17:23:38 · 1270 阅读 · 0 评论 -
Java读取WEB-INF目录下的properties配置文件
如何在Java代码中读取WEB-INF目录下的properties配置文件,下文给出了一个解决方案。 我们习惯将一些配置信息写在配置文件中,比如将数据库的配置信息URL、User和Password写在配置文件中,这样部署系统的时候,不需要修改代码,而只需要修改配置文件即可。 我将配置文件放在MyEClipse工程文件夹下的WEB-INF目录,在Java代码中读取配置文件的代码是原创 2013-07-31 16:15:28 · 12494 阅读 · 0 评论 -
Java自定义注解入门
1. 元注解 (meta-annotation)在Java 1.5以后,jdk提供了三个标准注解,定义在java.lang中: @Override: 用于修饰此方法覆盖了父类的方法 @Deprecated: 用于修饰已经过时的方法 @SuppressWarnnings: 用于通知java编译器禁止特定的编译警告而元注解的作用,就是负责注解其他注解的,包括上面三原创 2015-12-16 20:51:20 · 990 阅读 · 0 评论 -
为什么不能自定义java.lang.String
如果直接写一个java.lang.String类,并写一个main方法,即package java.lang;public class String { public static void main(String[] args) { System.out.println("Hello String"); }}运行之后会抛一个异常:错误原创 2015-12-17 21:02:11 · 8133 阅读 · 2 评论 -
Java多线程--生产者与消费者问题
说明Java中,线程之间的通信主要是由java.lang.Object类提供的wait、notify和notifyAll这3个方法来完成:①对象的wait方法被调用后,线程进入对象的等待队列中,并释放对象锁,其它线程可以竞争使用此对象锁;sleep方法使得一个线程进入睡眠状态,但是线程所占有的资源并没有释放。②当对象的notify方法被调用,该方法会从对象的等待队列中随机取出一个线原创 2014-08-13 11:45:18 · 1288 阅读 · 0 评论 -
Java反射举例
本文参考:http://www.cnblogs.com/yydcdut/p/3845430.html1.Java反射的基本介绍Java的反射非常强大,传递class, 可以动态的生成该类、取得这个类的所有信息,包括里面的属性、方法以及构造函数等,甚至可以取得其父类或父接口里面的内容。Java 反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个原创 2014-08-12 00:02:10 · 1608 阅读 · 3 评论 -
几个集合类的比较
1.Hashtable和HashMap不同点总结如下① Hashtable是Dictionary的子类,实现了Map接口;HashMap是AbstractMap的子类,是Map接口的一个实现类;② Hashtable中的方法是同步的,大多数方法如put, get都用用synchronized关键字修饰。而HashMap是线程不安全的。在多线程程序中,可以不添加额外操作就可以安全原创 2014-08-23 21:14:42 · 1223 阅读 · 0 评论 -
JDBC的批量插入操作
在今天之前,当我遇到需要使用JDBC对数据库进行批量插入操作的时候,我使用的方法如下:①使用Connection建立数据库连接;②使用PreparedStatement提交SQL语句,将数据插入;③关闭数据库连接,释放资源。但是今晚,我遇到一个问题,需要对MySQL数据库批量插入10000条记录,于是,我将插入操作封装成了一个方法,然后调用,没插入一条记录,都要打开、关闭一原创 2013-07-06 21:28:53 · 2755 阅读 · 0 评论 -
Lucene的多域查询、结果中查询、查询结果分页、高亮查询结果和结果评分
1.针对多个域的一次性查询1.1.三种方案 使用lucene构造搜索引擎的时候,如果要针对多个域进行一次性查询,一般来说有三种方法: 第一种实现方法是创建多值的全包含域的文本进行索引,这个方案最简单。但是这个防范有个缺点:你不能直接对每个域的加权进行控制。 第二种方法是使用MultiFieldQueryParser,它是QueryParser的子类,它会在原创 2013-07-29 15:55:36 · 7513 阅读 · 0 评论 -
对英文单词的词性标注
QQ:667818771.前言 最近的一个项目有个需求是这样的,需要从一篇英文文章或者一段英文文字中提取出其中的形容词(adjective),即对单词进行词性标注,我看到这个需求,第一反应是这肯定是个自然语言处理的问题。首先需要对句子进行分词,英文的分词是很容易的,但是分词之后,对于词性的判断,我最初的想法是,找一个英文字典,然后将单词输入,在字典中进行词性的查找。 先不说原创 2013-07-29 12:15:20 · 11651 阅读 · 14 评论 -
J2EE项目中后台定时运行的程序
在开发J2EE项目中,有时候需要在后台定时执行一些代码。比如定时对web数据建立倒排索引、定时发送邮件、定时写日志文件。下面将这几段代码总结出来,以备以后使用。 首先需要继承TimerTask类,覆盖run()方法,将需要定时执行的业务代码写在这个run()方法中:import java.util.Date;import java.util.TimerTask;public c原创 2013-11-28 11:55:19 · 2933 阅读 · 0 评论 -
c3p0数据库连接池实例
c3p0下载地址:http://download.youkuaiyun.com/detail/huhui_bj/6944595这篇文章介绍的是,在普通Java Web工程中或者普通Java工程中使用c3p0数据库连接池的实例,c3p0的jar文件包括3个。下面这个实例工程中,主要包括三个重要的文件:C3P0ConnentionProvider.java 初始化c3p0数据库连接池S原创 2014-02-21 11:24:25 · 4467 阅读 · 0 评论 -
Java Swing的一些技巧总结
1.WindowBuilder安装这个Eclipse插件能够实现在Java Swing编程中各种控件的拖拽下载地址:http://www.eclipse.org/windowbuilder/download.phpEclipse 3.7的安装方法(其它版本Eclipse类似):http://download.eclipse.org/windowbuilder/WB/release/R2原创 2014-03-26 15:08:20 · 2341 阅读 · 0 评论 -
几篇关于架构的博客
注意:本文转自http://www.iteye.com/topic/1134881转载 2014-07-31 20:24:33 · 1020 阅读 · 1 评论 -
Java内存模型
1.Java的内存泄漏在Java中,内存泄漏指的是存在具备下面两个特点的对象:①这些对象是可达的,即在有向图中,存在通路可以与其相连;②这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,却占用着内存。对于那些不可达的对象,GC会负责回收。我们可以通过调用System.gc()去访问GC,但是JVM原创 2014-08-24 14:50:26 · 1472 阅读 · 1 评论 -
Java动态代理
1. 代理在某些情况下,我们不希望,或者是不能直接访问对象A,而是通过访问一个中介对象B,由B去访问A达成目的,这种方式我们就称为代理。对象A所属类我们称为委托类,也被称为代理类,对象B所属类称为代理类。代理优点有:隐藏委托类的实现解耦,不改变委托类代码情况下做一些额外处理,比如添加初始判断及其他公共操作2. 静态代理代理类在程序运行前已经存在的代理方式称为静态代理原创 2015-12-21 12:09:44 · 891 阅读 · 0 评论
分享