java
xb_smart
“It’s the little details that are vital. Little things make big things happen.”
展开
-
java udp网络编程
udp网络编程,主要涉及DatagramSocket、DatagramPacket,前者用于客户端、服务端通信的连接,数据的接收和发送,服务端通过DatagramPacket能获取接收数据,客户端地址和端口,以及实现数据发送。 在java与c进行通信一般是通过字节流传输,涉及主要原创 2011-07-21 19:41:31 · 741 阅读 · 0 评论 -
高效代码审查的八条准则和十个经验
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。 1. 代码审查要求团队有良好的文化 团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。 “A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影转载 2013-10-09 11:25:35 · 3707 阅读 · 1 评论 -
android库工程封装总结
在进行项目开发中,多个yi'yo原创 2014-06-30 17:22:14 · 1526 阅读 · 0 评论 -
代码的坏味道(bad smell)
代码坏味道:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。1. 重复的代码如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。同一个class内的两个函数中含有重复的代码段两个兄弟class的成员函数中含有重复的代码段两个毫不相关的class内出现转载 2014-06-22 09:29:18 · 2009 阅读 · 0 评论 -
具有buffer功能的RandomAccessFile
在进行多线程下载过程中,采用RandomAccessFile对文件进行写操作,线程对磁盘的读写非常频繁,导致出现机器顿卡,或一些其他问题。采用具有缓冲的RandomAccessFile后,能快速降低磁盘IO。 开发人员迫切需要提高效率,下面分析RandomAccessFile等文件类的源代码,找出其中的症结所在,并加以改进优化,创建一个"性/价比"俱佳的随机文件访问类Buf转载 2016-04-28 08:49:40 · 3575 阅读 · 1 评论 -
maven多模块工程打包部署
一般maven多模块工程结构如下图 如上图中分为dao数据层和上层web层(当然还可以有service层),在进行多模块划分的时候,一般将dao层采用jar进行打包,web层进行war打包。在进行war包部署时,发现dao是以jar包形式存在于lib包目录下,如果在部署服务器上需要进行相关配置修改会比较麻烦。因此研究了下用maven进行合并打包的方法:1.确保dao p原创 2016-04-29 23:12:50 · 45514 阅读 · 1 评论 -
JDK7文件处理
实用的工具类,Path,Paths,Files,FileSystem 有一些很灵活的处理方法: [java] view plain copy //得到一个Path对象 Path path = Paths.get("/test/a.txt"); //Path转换File File file = path.toF转载 2016-04-30 14:46:23 · 1043 阅读 · 0 评论 -
guava常用简化操作
1.hashcode计算及对象比较:Objects.hashCode(),ComparisonChain链式比较 @Override public int hashCode() { return Objects.hashCode(id,name,type); } @Override public int compareTo(Program原创 2016-05-30 21:07:41 · 647 阅读 · 0 评论 -
如何通过编程发现Java死锁
死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态。想要在开发阶段检测到死锁是非常困难的,而想要解除死锁往往需要重新启动程序。更糟的是,死锁通常发生在负载最重的生产过程中,而想要在测试中发现它,十分不易。之所以这么说,是因为测试线程之间所有可能的交叉是不现实的。尽管出现了一些静态分析库可以帮助我们发现可能出现的死锁,我们还是有必要在运行时检测到死锁,并且得到有用的信息转载 2016-11-13 22:31:34 · 658 阅读 · 0 评论 -
http get/post请求及json解析
public static String httpRequest(String url, String jsonString, String codeType) { StringBuffer result = new StringBuffer(); log.debug("http请求:" + url); org.apache.http.clie原创 2013-03-31 16:41:23 · 8443 阅读 · 0 评论 -
redis结构设计及针对msyql相关查询实现考虑
针对项目需求,以下主要针对对象及相关操作进行分析。Ø 对象存储:redis对象存储有三种方案,考虑到操作的便利及存储效率,项目采用序列化存储和hash存储。 进行hash存储时,首先需对对象进行拆分为field-value形式,利用对象属性作为fileld,value作为对象属性值。查询时首先获得field-value键值对,再进行对象组装。参见redisService接口原创 2012-10-28 17:31:03 · 5901 阅读 · 2 评论 -
java.util.ConcurrentModificationException原因
在利用jms实现定时更新数据库时出现该错误,原来是在进行list循环时导致。其原因可见如下分析:(以下源于http://swincle.iteye.com/blog/746980)用iterator遍历集合时要注意的地方:不可以对iterator相关的地方做添加或删除操作。下面用List为例来说明为什么会报 ConcurrentModificationException 这个异常转载 2012-10-28 17:28:13 · 595 阅读 · 0 评论 -
flex消息机制 flex-blazeds-java
java后台:消息的发布 MessageBroker msgBroker = MessageBroker.getMessageBroker(null); String clientID = UUIDUtils.createUUID(); AsyncMessage mess原创 2011-08-12 12:02:29 · 2039 阅读 · 0 评论 -
利用java反射机制将任意对象的转换为map存储
private Map getValueMap(Object obj) { Map map = new HashMap(); // System.out.println(obj.getClass()); // 获取f对象对应类中的所有属性域 Field[] fields = obj.getClass().getDeclaredFields(); for (int原创 2012-08-24 20:04:54 · 9899 阅读 · 0 评论 -
多线程学习
线程的停止:从线程外部终止线程的方法常用的是stop,可是当需要从线程内部终止,如在捕获异常时采用stop方法无法终止,可利用终止循环实现。有时候需要线程异常时继续运行异常,若直接如下: try { Thread.sleep(3000); LO l=new LO(); System.out.println(l.getName()); throw new N原创 2012-08-24 19:47:52 · 1058 阅读 · 0 评论 -
xuugle学习--安装
xuggle(www.xuggle.com/xuggler)是一个java开发库,主要用于与ffmpeg jni完成通信,实现视频文件的解码。1 下载xuggle.jar在myeclipse中新建maven项目,在pom.xml中加入以下内容 xuggle repo http://xuggle.googlecode.com/svn/trunk/repo/share/j原创 2012-08-27 21:41:35 · 8378 阅读 · 1 评论 -
mysql重复插入
long id1 = 3; long id2 = 3; Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager .getConnection("jdbc:mysql://localhost/test?user=root&pass原创 2012-09-07 19:20:59 · 750 阅读 · 0 评论 -
java程序性能优化
一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子: import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i < vect转载 2012-09-26 21:34:51 · 1135 阅读 · 0 评论 -
servlet处理json
1.接收json数据 BufferedReader br = new BufferedReader(new InputStreamReader ((ServletInputStream)req.getInputStream(), "utf-8")); String temp;原创 2012-11-02 15:45:36 · 3170 阅读 · 0 评论 -
单例模式
单例模式也属于创建型模式,所谓单例,顾名思义,所指的就是单个实例,也就是说要保证一个类仅有一个实例。单例模式有以下的特点:①单例类只能有一个实例②单例类必须自己创建自己的唯一实例③单例类必须给所有其他对象提供这一实例下面我们就来写一个简单的单例模式的例子:Public class Singleton1{Private static final Singl转载 2012-10-28 17:22:11 · 433 阅读 · 0 评论 -
ImageIO读取图片变色
在使用thumbnailator进行图片处理的时候,出现少量图片会蒙上红色,经查找资料发现是由于ImageIO在读取的时候导致的。因此采用下列方式避免: ImageIcon src = new ImageIcon(file.getAbsolutePath()); BufferedImage bufferedImage = new BufferedImag原创 2017-01-12 20:49:30 · 2744 阅读 · 0 评论