JAVA NIOѧϰ±Ê¼Ç »º³åÇøµÄÄÚ²¿Ï¸½Ú
»º³åÇøÄÚ²¿Ï¸½Ú
״̬±äÁ¿
״̬±äÁ¿ÊÇǰһ½ÚÖÐÌáµ½µÄ"ÄÚ²¿Í³¼Æ»úÖÆ"µÄ¹Ø¼ü¡£Ã¿Ò»¸ö¶Á/д²Ù×÷¶¼»á¸Ä±ä»º³åÇøµÄ״̬¡£Í¨¹ý¼Ç¼ºÍ¸ú×ÙÕâЩ±ä»¯£¬»º³åÇø¾ÍÄܹ»ÄÚ²¿µØ¹ÜÀí×Ô¼ºµÄ×ÊÔ´¡£
¿ÉÒÔÓÃÈý¸öÖµÖ¸¶¨»º³åÇøÔÚÈÎÒâʱ¿ÌµÄ״̬£º
position
limit
capacity
Position
»º³åÇøÊµ¼ÊÉϾÍÊÇÃÀ»¯Á˵ÄÊý×é¡£ÔÚ´ÓͨµÀ¶Áȡʱ£¬Äú½«Ëù¶ÁÈ¡µÄÊý¾Ý·Åµ½µ×²ãµÄÊý×éÖС£ position±äÁ¿¸ú×ÙÒѾдÁ˶àÉÙÊý¾Ý¡£¸ü׼ȷµØËµ£¬ËüÖ¸¶¨ÁËÏÂÒ»¸ö×Ö½Ú½«·Åµ½Êý×éµÄÄÄÒ»¸öÔªËØÖС£Òò´Ë£¬Èç¹ûÄú´ÓͨµÀÖжÁÈý¸ö×Ö½Úµ½»º³åÇøÖУ¬ÄÇô»º³åÇøµÄposition½«»áÉèÖÃΪ3£¬Ö¸ÏòÊý×éÖеÚËĸöÔªËØ¡£
ͬÑù£¬ÔÚдÈëͨµÀʱ£¬ÄúÊÇ´Ó»º³åÇøÖлñÈ¡Êý¾Ý¡£positionÖµ¸ú×Ù´Ó»º³åÇøÖлñÈ¡Á˶àÉÙÊý¾Ý¡£¸ü׼ȷµØËµ£¬ËüÖ¸¶¨ÏÂÒ»¸ö×Ö½ÚÀ´×ÔÊý×éµÄÄÄÒ»¸öÔªËØ¡£Òò´ËÈç¹û´Ó»º³åÇøÐ´ÁË5¸ö×Ö½Úµ½Í¨µÀÖУ¬ÄÇô»º³åÇøµÄposition½«±»ÉèÖÃΪ5£¬Ö¸ÏòÊý×éµÄµÚÁù¸öÔªËØ¡£
Limit
limit±äÁ¿±íÃ÷»¹ÓжàÉÙÊý¾ÝÐèҪȡ³ö(ÔÚ´Ó»º³åÇøÐ´ÈëͨµÀʱ)£¬»òÕß»¹ÓжàÉÙ¿Õ¼ä¿ÉÒÔ·ÅÈëÊý¾Ý(ÔÚ´ÓͨµÀ¶ÁÈ뻺³åÇøÊ±)¡£
Capacity
»º³åÇøµÄcapacity±íÃ÷¿ÉÒÔ´¢´æÔÚ»º³åÇøÖеÄ×î´óÊý¾ÝÈÝÁ¿¡£Êµ¼ÊÉÏ£¬ËüÖ¸¶¨Á˵ײãÊý×éµÄ´óС — »òÕßÖÁÉÙÊÇÖ¸¶¨ÁË×¼ÐíÎÒÃÇʹÓõĵײãÊý×éµÄÈÝÁ¿¡£
position×ÜÊÇСÓÚ»òÕßµÈÓÚlimit£¬limit ¾ö²»ÄÜ´óÓÚ capacity¡£
·ÃÎÊ·½·¨
ÓÉÓÚ»º³åÇø²¢²»µ¥µ¥ÊÇÓÃÀ´½«ÊäÈë¹ÜµÀÖеÄÊý¾Ý¿½±´ÖÁÊä³ö¹ÜµÀ£¬Í¬Ê±»¹»áÉæ¼°µ½Êý¾ÝµÄ·ÃÎʵȡ£ÈçºÎʹÓÃByteBufferÀàµÄget()ºÍput()·½·¨Ö±½Ó·ÃÎÊ»º³åÇøÖеÄÊý¾Ý£¿
ByteBuffer ÀàÖÐÓÐËĸö get() ·½·¨£º
byte get();
ByteBuffer get( byte dst[] );
ByteBuffer get( byte dst[], int offset, int length );
byte get( int index );
ByteBuffer ÀàÖÐÓÐÎå¸ö put() ·½·¨£º
ByteBuffer put( byte b );
ByteBuffer put( byte src[] );
ByteBuffer put( byte src[], int offset, int length );
ByteBuffer put( ByteBuffer src );
ByteBuffer put( int index, byte b );
ÏÂÃæµÄÄÚ²¿Ñ»·¸ÅÀ¨ÁËʹÓûº³åÇø½«Êý¾Ý´ÓÊäÈëͨµÀ¿½±´µ½Êä³öͨµÀµÄ¹ý³Ì¡£
while (true) {
buffer.clear();
int r = fcin.read( buffer );
if (r==-1) {
break;
}
buffer.flip();
fco
Ïà¹ØÎĵµ£º
ÐòÁл¯µÄ¹ý³Ì¾ÍÊǽ«¶ÔÏóдÈë×Ö½ÚÁ÷ºÍ´Ó×Ö½ÚÁ÷ÖжÁÈ¡¶ÔÏó¡£½«¶ÔÏó״̬ת»»³É×Ö½ÚÁ÷Ö®ºó£¬¿ÉÒÔÓÃjava.io°üÖеĸ÷ÖÖ×Ö½ÚÁ÷ÀཫÆä±£´æµ½ÎļþÖУ¬¿ÉÒÔͨ¹ý¹ÜµÀ»òÏ̶߳ÁÈ¡£¬»òͨ¹ýÍøÂçÁ¬½Ó½«¶ÔÏóÊý¾Ý·¢Ë͵½ÁíÒ»Ö÷»ú¡£¶ÔÏóÐòÁл¯¹¦Äܷdz£¼òµ¥¡¢Ç¿´ó£¬ÔÚRMI¡¢Socket¡¢JMS¡¢EJB¶¼ÓÐÓ¦Ó᣶ÔÏóÐòÁл¯ÎÊÌâÔÚÍøÂç±à³ÌÖв¢²»ÊÇ×¶¯ÈË ......
»ù±¾Êý¾ÝÀàÐÍ
ÔÚJAVAÖÐÒ»¹²ÓаËÖÖ»ù±¾Êý¾ÝÀàÐÍ£¬ËûÃÇ·Ö±ðÊÇ
byte¡¢short¡¢int¡¢long¡¢float¡¢double¡¢char¡¢boolean
ÕûÐÍ
ÆäÖÐbyte¡¢short¡¢int¡¢long¶¼ÊDZíʾÕûÊýµÄ£¬Ö»²»¹ýËûÃǵÄȡֵ·¶Î§²»Ò»Ñù
byteµÄȡֵ·¶Î§Îª-128~127£¬Õ¼ÓÃ1¸ö×Ö½Ú£¨-2µÄ7´Î·½µ½2µÄ7´Î·½-1£©£º¾ßÌåÇë¿´²¹Âë
shortµÄȡֵ·¶Î§Îª-32768~32767£¬Õ¼Ó ......
1. ÉùÃ÷(Declarations)
5.1 ÿÐÐÉùÃ÷±äÁ¿µÄÊýÁ¿(Number Per Line)
ÍÆ¼öÒ»ÐÐÒ»¸öÉùÃ÷£¬ÒòΪÕâÑùÒÔÀûÓÚдעÊÍ¡£Ò༴£¬
int level; // indentation level
int size; // size of table
ÒªÓÅÓÚ£¬
int level, size;
²»Òª½«²»Í¬ÀàÐͱäÁ¿µÄÉùÃ÷·ÅÔÚͬһÐУ¬ÀýÈ磺
int foo, foo ......
1. ±à³Ì¹ßÀý(Programming Practices)
9.1 Ìṩ¶ÔʵÀýÒÔ¼°Àà±äÁ¿µÄ·ÃÎÊ¿ØÖÆ(Providing Access to Instance and Class Variables)
ÈôûÓÐ×ã¹»ÀíÓÉ£¬²»Òª°ÑʵÀý»òÀà±äÁ¿ÉùÃ÷Ϊ¹«ÓС£Í¨³££¬ÊµÀý±äÁ¿ÎÞÐèÏÔʽµÄÉèÖÃ(set)ºÍ»ñÈ¡(gotten)£¬Í¨³£Õâ×÷Ϊ·½·¨µ÷ÓõıßԵЧӦ (side effect ......
package com.allywll.core.exec.base;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent. ......