2014年1月5日
摘要: 1.为什么需要NIO?Socket:当调用某个调用的时候,调用的地方就会阻塞,等待响应。这种方式对于小规模的程序非常方便,但是对于大型的程序就有点力不从心了,当有大量的连接的时候,我们可以为每一个连接建立一个线程来操作。但是这种做法带来的缺陷也是显而易见的:硬件能够支持大量的并发。并发的数量始终有一个上限。各个线程之间的优先级不好控制。各个Client之间的交互与同步困难。我们也可以使用一个线程来处理所有的请求,使用不阻塞的IO,轮询查询所有的Client。这种做法同样也有缺陷:无法迅速响应Client端,同时会消耗大量轮询查询的时间。所以,我们需要一种poll(轮询)的模式来处理这种情况,从 阅读全文
posted @ 2014-01-05 16:03 大PIGのcnblogs 阅读(113) 评论(0) 推荐(0) 编辑
  2013年11月27日
摘要: Java.Math APIMath.PI 记录的圆周率Math.E记录e的常量Math中还有一些类似的常量,都是一些工程数学常用量。Math.abs 求绝对值Math.sin 正弦函数;Math.asin 反正弦函数Math.cos 余弦函数;Math.acos 反余弦函数Math.tan 正切函数;Math.atan 反正切函数;Math.atan2 商的反正切函数Math.toDegrees 弧度转化为角度;Math.toRadians 角度转化为弧度Math.ceil 得到不小于某数的最大整数Math.floor 得到不大于某数的最大整数Math.IEEEremainder 求余Math 阅读全文
posted @ 2013-11-27 18:12 大PIGのcnblogs 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Java为我们提供了那些可以用的类:http://docs.oracle.com/javase/7/docs/api/工具包:java.math,算术包java.text.*,文字处理包java.util.*,工具包javax.print.*,打印包语言特性包:java.lang,语言特性包javax.annotation.*,注解包输入输出:java.io,IO包java.nio,new IO包网络:java.net,网络包javax.net.*,网络加强包安全:java.security.*,安全包javax.security.auth.*,安全加强包javax.crypto.*,密码包数 阅读全文
posted @ 2013-11-27 18:08 大PIGのcnblogs 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一、java.util.Formatterjava.util.Formatter 是JDK1.5新增的类库,功能很强大,但是不好掌握。格式化主要用在文本输出方面,比如,数字、日期、金额等,还有类似超市的购物单小票等等,都会用到格式化输出的工具。给定规则: 要想按照自己的想法格式化必须事先编写一个规则。那这个规则要怎么编写?1.常规类型、字符类型和数值类型的格式说明符的语法如下:%[argument_index$][flags][width][.precision]conversion2.用来表示日期和时间类型的格式说明符的语法如下:%[argument_index$][flags][width 阅读全文
posted @ 2013-11-27 17:59 大PIGのcnblogs 阅读(638) 评论(0) 推荐(0) 编辑
摘要: Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:包装类对应表基本数据类型包装类byteBytebooleanBooleanshortShortcharCharacterintIntegerlongLongfloatFloatdoubleDouble在这八个类名中,除了Integ 阅读全文
posted @ 2013-11-27 16:23 大PIGのcnblogs 阅读(168) 评论(0) 推荐(0) 编辑
摘要: Date类在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。1、使用Date类代表当前系统时间 Date d = new Date(); System.out.println(d);使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下: Sun Mar 08 16:35:58 CST 2009在该格式中,Sun代表Sunday(周日),... 阅读全文
posted @ 2013-11-27 15:56 大PIGのcnblogs 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在Java API中,在java.util包中专门提供了一个和随机处理有关的类,这个类就是Random类。随机数字的生成相关的方法都包含在该类的内部。Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。下面介绍一下Random类的使用,以及如何生成指定区间的随机数组以及 阅读全文
posted @ 2013-11-27 15:42 大PIGのcnblogs 阅读(139) 评论(0) 推荐(0) 编辑
摘要: System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。 1、成员变量System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。例如: System.out.println(“Test”);该行代码的作用是将字符串”Test”输出到系统的标准输出设备上,也就是显示在屏幕上。后续在学习完IO相关的知识以后,可以使用Sys 阅读全文
posted @ 2013-11-27 15:32 大PIGのcnblogs 阅读(140) 评论(0) 推荐(0) 编辑
摘要: StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。但是有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。另外由于St 阅读全文
posted @ 2013-11-27 15:00 大PIGのcnblogs 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。 (2) 使用next()获得序列中的下一个元素。 (3) 使用hasNext()检查序列中是否还有元素。 (4) 使用rem... 阅读全文
posted @ 2013-11-27 14:43 大PIGのcnblogs 阅读(280) 评论(0) 推荐(0) 编辑