随笔分类 - Java
摘要:通过一个实例来说明Netty的使用。用1个服务器连接5个客户端线程,客户端连接上服务器以后就向服务器发送消息,服务器接收到消息后向客户端返回消息,客户端接收到消息以后,等待随机的时间,再向服务端发送消息,这样一直循环下去。 项目结构: NettyServer.java: ServerPipeline
阅读全文
摘要:Netty是由JBOSS提供的一个java开源框架,本质上也是NIO,是对NIO的封装,比NIO更加高级,功能更加强大。可以说发展的路线是IO->NIO->Netty。 ServerBootstrap和ClientBootstrap是Netty中两个比较重要的类,分别用来进行服务器和客户端的初始化。
阅读全文
摘要:Channel注册到Selector时添加了一个Object: 后来取这个Object: 出现空指针错误: 很奇怪,后来发现第一次注册时添加了Object,后来注册时没有添加,导致了空指针错误: 每次注册都添加Object,就不会有这个错误了:
阅读全文
摘要:NIO项目中出现了这个错误: 一般是因为InetSocketAddress的主机名、端口号写错,或者要连接的服务器没有启动造成的。
阅读全文
摘要:Gson解析JSON字符串时出现了下面的错误: 解决的办法是把对应的Class改成静态类。
阅读全文
摘要:Redis是常用的key-value存储服务器,Java使用Redis有很多方法,其中官方推荐的是Jedis。 使用Jedis,首先是下载jedis-x.x.x.jar文件并导入工程,然后运行Redis服务器。 程序运行结果:
阅读全文
摘要:调用函数时,传的参数过去可能是传值,也可能是传址。如果是传值,函数内部的操作对参数的值没有影响;如果是传址,函数内部的操作是对参数指向的内存进行操作,会影响参数的值。 Java到底是传值还是传址?用下面这个例子可以实验一下: 运行结果: 可见,int和String类型的参数值没有发生改变,是传值,而
阅读全文
摘要:Thread提供了stop()方法终止线程,但是该方法是强行终止,容易产生一些错误,已经被废弃。 可以使用退出标志来终止线程,在run()函数里面设置while循环,把退出标志作为while的条件,当条件为false时,run函数执行完毕,线程就自动终止了。
阅读全文
摘要:判断一个字符串是否是数值,可以用正则表达式来判断。更简单的方法是把字符串转换成Float或者Double,然后捕捉NumberFormatException错误,如果有错误,就说明不是一个数值,如果没有错误,就说明就是一个数值。 同样的方法,可以判断一个字符串是否是整数。
阅读全文
摘要:1. 获得Calendar实例: 2. 定义日期/时间的格式: 3. 把日期/时间转换成固定格式,使用SimpleDateFormat的format()方法: 4. 把字符串转换成日期/时间,使用SimpleDateFormat的parse()方法: 5. 日期/时间的增加,减少,使用Calenda
阅读全文
摘要:1. 创建并写入XML 首先用DocumentHelper创建一个Document对象,然后给Document添加一个Element,也就是根Element;然后可以在这个根Element下面添加若干个Element,每一个Element用addAttribute()添加了属性名称和属性值;最后,使
阅读全文
摘要:用Java客户端程序访问Java Web服务器时出错: 原来是防火墙的原因,把防火墙关了就正常了。
阅读全文
摘要:在Android中,HTTP通信可以用Volley,在Java中不能使用Volley,只能使用DefaultHttpClient,HttpPost和HttpResponse。
阅读全文
摘要:1. 字节转10进制 直接使用(int)类型转换。 2. 10进制转字节 直接使用(byte)类型转换。 3. 字节数组转16进制字符串 对每一个字节,先和0xFF做与运算,然后使用Integer.toHexString()函数,如果结果只有1位,需要在前面加0。 4. 16进制字符串转字节数组 这
阅读全文
摘要:时间转换为时间戳: 时间戳转换为时间:
阅读全文
摘要:要求根据客户端提交的参数,对返回的结果列表进行分页,只返回客户指定的那一页。写一个公用函数来实现这个功能就存在一个问题,有多种类型的列表,怎样定义传递给分页函数的列表变量?就只能使用泛型了。 使用这个函数,对列表l进行分页,每页有count条数据,只返回第page页的数据。
阅读全文
摘要:JSON字符串的最上一层,肯定是一个JSONObject,JSONObject的下一层,可以包含JSONArray,JSONArray又包含了若干个JSONObject。用例子来说明: package myJson; import net.sf.json.JSONArray; import net.
阅读全文
摘要:有时需要对List排序,这时可以利用Collections的sort()方法来排序,不用自己再去排序。 package myTest; import java.util.ArrayList; import java.util.Collections; import java.util.Compara
阅读全文
摘要:偶然看到一道腾讯面试题:题目:给定一个8*8的方格子,如下图所示,求A点到B点的最短路径有多少条?用算法实现。想出了一种很简单的方法解决这个问题,A点到B点的最短路径肯定是16,其中8步横走,8步竖走,设横走为'1',竖走为'0',那么最短路径是一个16位的二进制字符串。只要一个16位二进制字符串里...
阅读全文
摘要:如果要查找一个集合中是否包含了某个对象,那么就需要把这个对象和这个集合中的每个对象依次进行比较和判断,直到找到这个对象为止,或者把所有对象都比较一次为止(如果最后一个对象才是要查找的对象,或者集合中没有包含要查找的对象)。当集合中的对象数量较多时,效率就很低。为了提高效率,提出了Hash算法。Has...
阅读全文