|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net网页编程,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。
假如将同步I/O体例下的数据传输比做数据传输的零散体例(这里的零散是指在数据传输的过程当中是以零散的字节体例举行的),那末就能够将非堵塞I/O体例下的数据传输比做数据传输的集装箱体例(在字节和低层数据传输之间,多了一层缓冲区,因而,能够将缓冲区看作是装载字节的集装箱)。人人能够设想,假如我们要输送对照少的货品,用集装箱好象有点不太合算,而假如要输送上百吨的货品,用集装箱来输送的本钱会更低。在数据传输过程当中也是一样,假如数据量很小时,利用同步I/O体例会更合适,假如数据量很年夜时(一样平常以G为单元),利用非堵塞I/O体例的效力会更高。因而,从实际上说,数据量越年夜,利用非堵塞I/O体例的单元本钱就会越低。发生这类了局的缘故原由弛缓冲区的一些特征有着间接的干系。在本节中,将对缓冲区的一些次要特征举行解说,使读者能够充实了解缓冲区的观点,并能经由过程缓冲区来进步程序的实行效力。
创立缓冲区
Java供应了七个基础的缓冲区,分离由七个类来办理,它们都能够在java.nio包中找到。这七个类以下所示:
ByteBuffer
ShortBuffer
IntBuffer
CharBuffer
FloatBuffer
DoubleBuffer
LongBuffer
这七个类中的办法相似,只是它们的前往值或参数和响应的复杂范例绝对应,如ByteBuffer类的get办法前往了byte范例的数据,而put办法必要一个byte范例的参数。在CharBuffer类中的get和put办法前往和传送的数据范例就是char。这七个类都没有public机关办法,因而,它们不克不及经由过程new来创立响应的对象实例。这些类都能够经由过程两种体例来创立响应的对象实例。
1.经由过程静态办法allocate来创立缓冲区。
这七类都有一个静态的allocate办法,经由过程这个办法能够创立有最年夜容量限定的缓冲区对象。allocate的界说以下:
ByteBuffer类中的allocate办法:
public static ByteBuffer allocate(int capacity)
IntBuffer类中的allocate办法:
public static IntBuffer allocate(int capacity)
其他五个缓冲区类中的allocate办法界说和下面的界说相似,只是前往值的范例是响应的缓冲区类。
allocate办法有一个参数capacity,用来指定缓冲区容量的最年夜值。capacity的不克不及小于0,不然会抛出一个IllegalArgumentException非常。利用allocate来创立缓冲区,并非一会儿就分派给缓冲区capacity巨细的空间,而是依据缓冲区中存储数据的情形来静态分派缓冲区的巨细(实践上,在低层Java接纳了数据布局中的堆来办理缓冲区的巨细),因而,这个capacity能够是一个很年夜的值,如1024*1024(1M)。allocate的利用办法以下:
ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
IntBuffer intBuffer = IntBuffer.allocate(1024);
在利用allocate创立缓冲区时使用注重,capacity的寄义跟着缓冲区的分歧而分歧。如创立字节缓冲区时,capacity指的是字节数。而在创立整型(int)缓冲区时,capacity指的是int型值的数量,假如转换成字数,capacity的值应当乘4。如下面代码中的intBuffer缓冲区最年夜可包容的字节数是1024*4=4096个。
<p>
net网页编程程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net网页编程比。java程序员都是代码完成的,所以java程序员常戏称.net网页编程程序员是操作员,呵呵。 |
|