🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #22076

Java���˼��---��8�� ���������

#22076
From: �˺�2��
Date: Tue, 28 Oct 2003 01:44
496 lines
61764 bytes
�����һ������ֻ���������̶��Ķ��󣬶�����֪���ǵĴ���ʱ�䣬��ô����������
˵���൱�򵥵ġ���
ͨ�������ǵij�����Ҫ��ݳ�������ʱ��֪����һЩ��׼�����¶������dz�����ʽ��
�У��������Ǹ�֪���Լ�������Ҫ���������Ķ���������֪�����ǵ�׼ȷ���͡�
Ϊ�����㳣���̵���Ҫ������Ҫ�������κ�ʱ���κεص㴴�����������Ķ�����
�Բ�������һ��������ľ���������Լ���ÿһ�����󣬾�����������
MyObject myHandle;
��Ϊ��֪���Լ�ʵ����Ҫ��������Ķ�����
Ϊ�������dz��ؼ�����⣬Java�ṩ�����ɶ��󣨻��߶���ľ��Ķ��ַ�ʽ����
���ڽ������������飬����֮ǰ�����۹�����׼�������Ҷ������ʶ�����⣬Ja
va�Ĺ��ߣ�ʵ�ó��򣩿��ṩ��һЩ�������ࡱ��������������ࡱ��������������AW
Tʹ�ã����������Բ��á����ϡ���һ�ƺ�����������Щ�����࣬���ǿ���������������
�Լ��Ķ��󡣱��µ�ʣ�ಿ�ֻ�ʹ˽�����ϸ���ۡ�
8.1 ����
������Ĵ�����Ҫ�Ľ������ڵ�4�µ����һ�ڽ��С�ͨ�������ѧϰ�������֪����
������ζ��弰��ʼ��һ�����顣����������DZ��µ��ص㣬������ֻ�����ɶ����һ
�ַ�ʽ�������ڻ�����������������������飬��������Щ�ط�ʹ�����Ե�����ر���
��
������������⽫�����������������ֿ�����Ч�ʺ����͡�����Java��˵��Ϊ����
�ͷ���һϵ�ж���ʵ���Ƕ���ľ�����飬����Ч�ķ���Ī�������顣����ʵ�ʴ�
��һ���򵥵��������У���ʹ��Ԫ�صķ����ٶȷdz��죬������ȴҪΪ�����ٶȸ�����
�ۣ�����һ���������ʱ����Ĵ�С�ǹ̶��ģ����Ҳ������Ǹ��������ġ�����ʱ��
���ڷ���ı䡣�ɴ����ض���С��һ�����飬Ȼ������ù��˴洢�ռ䣬���ٴ���һ��
�����飬�����о��Ӿ������Ƶ������顣������ ��ʸ������Vector�������Ϊ������
�Ժ󻹻���ϸ������Ȼ������Ϊ���ִ�С�������Ҫ�����ϴ�Ĵ�ۣ�����������
Ϊʸ����Ч�ʲ�û������ߡ�
C++��ʸ����֪���Լ����ɵ���ʲô���͵Ķ��󣬵�ͬJava��������ȣ���ȴ��һ������
��ȱ�㣺C++ʸ�����operator[]���ܽ��з�Χ��飬���Ժ����׳����߽磨Ȼ�����
�Բ�ѯvector�ж�󣬶���at()����ȷʵ�ܽ��з�Χ��飩����Java�У�����ʹ�õ���
���黹�Ǽ��ϣ�������з�Χ��顪��������߽磬�ͻ���һ��RuntimeException��
������Υ������������ڵ�9�»�ѧ������������Υ��ָ������һ������Ա����
�����Բ���Ҫ�ڴ����м��������һ���棬����C++��vector�����з�Χ��飬���Է�
���ٶȽϿ졪����Java�У����ڶ�����ͼ��϶�Ҫ���з�Χ��飬���Զ�������һ����
Ӱ�졣
���»�Ҫѧϰ���⼸�ֳ���ļ����ࣺVector��ʸ������Stack����ջ���Լ�Hashtable
��ɢ�б?����Щ�඼�漰�Զ���Ĵ��?����������û���ض������͡�����֮������
���䵱��Object���ʹ��?Object������Java��������ġ����ࣩ����ij���Ƕȿ���
���ִ��?���Ƿdz�����ģ����ǽ��蹹��һ�����ϣ�Ȼ���κ�Java���󶼿��Խ�����
�����ϣ������������⡪������Java�Ļ����ͷ�װ�ཫ����Ϊ�������뼯�ϣ���
�߽����װ���Լ������ڣ���Ϊ���Ա仯��ֵʹ�ã�������һ�η�ӳ���������ڳ��漯
�ϣ�����һ������ʱ������������һ���ض������͡�����ζ�ſɽ��б��������ͼ�飬
Ԥ���Լ������˴�������ͣ����ߴ���ָ����׼����ȡ�����͡���Ȼ���ڱ����ڻ�����
���ڣ�Java���ֹ���ǽ���������Ϣ����һ�������������Dz��ؿ����Լ�����������
���Σ�գ�ֻҪ�������ܼ�ʱ��ָ������ͬʱ�������ڼ�ӿ��ٶȣ�Ŀ��Ҳ�ʹﵽ��
�����⣬�û����ٻ��һ��Υ���¼��е��dz����ȵġ�
���ǵ�ִ��Ч�ʺ����ͼ�飬Ӧ�����ܵز������顣Ȼ��������ͼ���һ�����
������ʱ������ľ���Ҳ�����Ե÷dz����ԡ����о��������Ժ󣬱���ʣ��IJ��ֽ���
�ص�ŵ�Java�ṩ�ļ��������ϡ�
8.1.1 ����͵�һ�����
����ʹ�õ���������ʲô���ͣ������ʶ��ʵ�ʶ���ָ����ʵ�����һ�������Щ��
���������ڴ桰�ѡ��ﴴ���ġ��Ѷ���ȿɡ���ʽ����������Ĭ�ϲ�����ɡ���
ʽ������������ȷָ������һ��new���ʽ�����Ѷ����һ���֣�ʵ���������ܷ��ʵ�Ψ
һ�ֶλ򷽷�����ֻ����length�����ȣ���Ա������������Ǹ�������������������
����Ԫ�ء�����������󣬡�[]���﷨�������ܲ��õ�Ψһ������ʷ�����
�����������չʾ�˶�������г�ʼ���IJ�ͬ��ʽ���Լ���ν�����������ͬ��
���������Ҳ��ʾ����������ͻ��������������ʹ�÷����ϼ�������ȫһ�µġ�
Ψһ�IJ�����ڶ����������ɵ��Ǿ������������������ɵ��Ǿ������ֵ����
��ִ�д˳���ʱ�������ѣ���ο���3�µġ���ֵ��С�ڣ���
325-327ҳ����
���У�����aֻ�dz�ʼ����һ��null����ʱ�����������ֹ���Ƕ����������κ�ʵ
�ʲ������������ȷ�س�ʼ����������b����ʼ����ָ���� Weeble���ɵ�һ����
�飬���Ǹ�������ʵ�ʲ�δ�����κ�Weeble����Ȼ��������Ȼ���Բ�ѯ�Ǹ������
��С����Ϊbָ�����һ���Ϸ�������ҲΪ���Ǵ�����һ�����⣺����֪���Ǹ�������
ʵ�ʰ��˶��ٸ�Ԫ�أ���Ϊlengthֻ�������ǿɽ�����Ԫ�������Ǹ����顣����֮��
����ֻ֪���������Ĵ�С����������֪��ʵ�������˶��ٸ�Ԫ�ء�������ˣ�������
������ڴ���֮�����Զ���ʼ����null�����Կɼ�����Ƿ�Ϊnull���ж�һ���ض�����
�� ����λ���Ƿ�����һ���������Ƶأ��ɻ�������͹��ɵ�������Զ���ʼ������
�������ֵ���ͣ���null���ַ����ͣ�����false���������ͣ���
����c��ʾ���������ȴ���һ����������ٽ�Weeble���󸳸��Ǹ���������С���λ��
������d��ʾ�������ϳ�ʼ�����﷨���Ӷ����������new������ȷ���У�������
����c����Ȼ����Weeble������г�ʼ����ȫ��������һ���������ɡ�
����������ʽ��
a = d;
������չʾ�����ȡ��ͬһ������������ӵľ��Ȼ���丳����һ��������󣬾�
��������Զ�����������κ����������������ڣ�a��d��ָ���ڴ����ͬ�������
����
Java 1.1������һ���µ������ʼ���﷨���ɽ�������ɡ���̬���ϳ�ʼ��������d����
��Java 1.0���ϳ�ʼ������������ڶ���d��ͬʱ���С���������Java 1.1���﷨��ȴ��
�����κεط������ͳ�ʼ��һ������������磬����hide()��������ȡ��һ��Weeble
�������飬��ô������ʱ��ͳ�ķ����ǣ�
hide(d);
����Java 1.1�У���ɶ�̬��������Ϊ����ݵ����飬������ʾ��
hide(new Weeble[] {new Weeble(), new Weeble() });
��һ��ʽ�﷨ʹ������ijЩ������д�������ˡ�
�������ӵĵڶ����ֽ�ʾ������һ�����⣺�����ɻ�������͹��ɵ����飬���ǵ���
����ʽ��������鼫Ϊ���ƣ�ֻ��ǰ��ֱ�Ӱ����˻����͵����ֵ��
1. ��������ͼ���
������ֻ�����ɶ�������һ�����飬ȴ�ȿ�����ֱ�����ɻ����͵���ݣ����
����ָ�����ľ��������Integer��Double֮��ġ���װ�����࣬�ɽ����������
��ֵ����һ������������籾�º������WordCount.java�����н������������ڻ�
��������͵ķ�װ����ֻ����ijЩ�����²��ܷ������á����۽������͵����������
�飬���ǽ����װ����λ�ڼ��ϵ�һ�����ڣ����漰��ִ��Ч�ʵ����⡣��Ȼ�����ܴ�
���ͷ���һ��������������飬��ô�������һ����װ��ݵļ��ϣ�ǰ�ߵ�Ч�ʻ��
����ࡣ
��Ȼ������׼��һ�ֻ�������ͣ�ͬʱ����Ҫ���ϵ�����ԣ�����Ҫ��ʱ����Զ���
չ���ڳ����Ŀռ䣩���Ͳ���ʹ�����飬����ʹ���ɷ�װ����ݹ��ɵ�һ�����ϡ���
�һ�����Ϊ���ÿ�ֻ�������ͣ���Ӧ��һ���������͵�Vector����Java��δ�ṩ��
һ���ԡ�ijЩ��ʽ�Ľ�ģ���ƻ������ijһ����� Java��õؽ��������⣨ע�͢٣�
��
�٣������C++��Java���úõ�һ���ط�����ΪC++ͨ��template�ؼ����ṩ�˶ԡ�����
�����͡���֧�֡�
8.1.2 ������
�ٶ�����������дһ��������ͬʱ��ϣ�����������һ�����������뷵��һϵ�ж���
����ʱ����C��C++��������Ի�ʹ���⸴�ӻ�����Ϊ���Dz��ܷ���һ�����飬ֻ�ܷ���
ָ�������һ��ָ�롣����ͷdz��鷳����Ϊ���ѿ�������ġ�����ʱ�䡱���������
����ڴ桰©�����ij��֡�
Java���õ������Ƶķ������������ܡ�����һ�����顱����Ȼ����ʱ���ص�ʵ������ָ
�������ָ�롣����Java�������Զ���ص����Ǹ�������Ƿ���á���ֻҪ��Ҫ����
�ͻ��Զ����ڡ����������ռ�������������ɺ��Զ��������
��Ϊһ�����ӣ���˼����η���һ���ִ����飺
329-330ҳ����
flavorSet()����������һ����Ϊresults��String���顣������Ĵ�СΪn����������ֵ
ȡ�������Ǵ��ݸ����Ա���������������flav�������ѡһЩ�����ϡ���Flav
or����������������results������շ���results�����������뷵�������κζ���û
ʲô��� �������շ��صĶ���һ������������鵽������flavorSet()�ﴴ���ģ���
��������ʲô�ط������ģ�������Ⲣ����Ҫ����Ϊ����صĽ���һ�����һ����
�ǵIJ�����ɣ������ռ������Զ���������������������ֻҪ������Ҫ���飬���
��ԹԵ�����Dz��
��һ���棬ע�⵱flavorSet()�����ѡ���ϵ�ʱ������Ҫ��֤��ǰ���ֹ��һ�����
ѡ�񲻻��ٴγ��֡�Ϊ�ﵽ���Ŀ�ģ���ʹ����һ������ whileѭ�������ϵ��������
ѡ��ֱ������δ��picks��������ֹ��һ��Ԫ��Ϊֹ����Ȼ��Ҳ���Խ����ִ��Ƚϣ�
������ѡ���Ƿ���results ��������ֹ��ִ��Ƚϵ�Ч�ʱȽϵͣ������ɹ�����
������Ԫ�أ����ж�ѭ����break�����ٲ�����һ����iֵ���������������t��һ����
�� picks����ֹ�����飬���ñ�ǩʽ��continue�����������ǿ��ѡ��һ����t����һ
�����Գ�����Ժ�����ؿ��������̡�
main()����ʾ��20����������ϼ��ϣ��������ǿ���flavorSet()ÿ�ζ���һ�����˳��
ѡ�����ϡ�Ϊ�����һ�㣬��򵥵ķ������ǽ�����ص������һ���ļ���Ȼ��ֱ�ӹ�
������ļ������ݡ�
8.2 ����
�����ܽ�һ������ǰ��ѧ��Ķ�����Ϊ����һ����������˵�ѡ��Ӧ�������顣����
�������ɵ���һϵ�л�������ͣ����DZ���������顣�ڱ���ʣ�µIJ��֣���ҽ���
����һЩ��������������DZ�д����ʱ��ͨ��������ȷ�е�֪��������Ҫ���ٸ���
����Щʱ���������ø��ӵķ�ʽ���������Ϊ���������⣬ Java�ṩ��������
�͵ġ������ࡱ��Vector��ʸ������BitSet��λ������Stack����ջ���Լ�Hashtable��
ɢ�б?����ӵ�м��Ϲ��ܵ�����������ȣ��������������Ե��൱�٣�����Ȼ����
���ǽ���������˵�ʵ�����⡣
��Щ�������������ɫɫ�����������磬Stackʵ����һ��LIFO�������ȳ������У���H
ashtable��һ�֡��������顱���������ǽ��κζ������������������⣬����Java��
���඼���Զ��ı�����Ĵ�С�����ԣ������ڱ��ʱ��ʹ�������ڶ�Ķ���ͬʱ����
���ĻὫ����Ū���ж��
8.2.1 ȱ�㣺����δ֪
ʹ��Java���ϵġ�ȱ�㡱���ڽ���������һ������ʱ��ʧ��������Ϣ��֮���Իᷢ����
������������ڵ�����д����ʱ���Ǹ����ϵij���Ա��֪���û��������ʲô����
���뼯�ϡ���ָʾij������ֻ�����ض������ͣ���������Ϊһ����������;���Ĺ���
��Ϊ�û������鷳��Ϊ���������⣬����ʵ�����ɵ�������Ϊ Object��һЩ����ľ�
���������͵�Ȼ���Java�е����ж�����Ϊ����������ĸ�Ȼ��ҲҪע���Ⲣ
��������������ͣ���Ϊ���Dz����Ǵ� ���κζ������̳����ġ�����һ���ܺõķ���
��ֻ�Dz������������ϣ�
(1) ��һ�����������뼯��ʱ������������Ϣ�ᱻ���������κ����͵Ķ��󶼿ɽ�
�����ǵļ��ϡ��������ر�ָʾ��ֻ�������ض����͵Ķ��󡣾ٸ�������˵����Ȼָʾ
��ֻ������è������ʵ���κ��˶����԰�һ�����ӽ�����
(2) ����������Ϣ�������ڣ����Լ����ܿ϶���Ψһ��������Լ����ɵ���ָ��һ����
��ľ����ʽʹ����֮ǰ���������������ͣ�ʹ�������ȷ�����͡�
ֵ����ο���ǣ�Java�����������������뼯�ϵĶ��󡣼��罫һ�����ӽ�һ��è�ļ���
����ô�ԻὫ�����ڵ����ж���������è��������ʹ��������ʱ��õ�һ����Υ���
����ͬ��������ϣ�������ͼ��һ�����ľ�����͡���һֻè����ô�����ڼ��Ի�
�õ�һ����Υ�����
�����Ǹ����ӣ�
332-333ҳ����
���Կ�����Vector��ʹ���Ƿdz��򵥵ģ��ȴ���һ��������addElement()���������
����elementAt()ȡ����Щ����ע��Vector��һ��size()��������ʹ����֪���������
���ٸ�Ԫ�أ��Ա��ֹ�󳬱߽磬���Υ����󣩡�
Cat��Dog�඼�dz�dz�ԡ������˶��ǡ�����֮�⣬���Dz����ر�֮������������ȷָ
����ʲô��̳У���Ĭ��Ϊ��Object�̳С��������Dz������� Vector������Cat������
��������ϣ�Ҳ�����Dog����ͬʱ�����ڱ����ں������ڵõ��κγ�����ʾ����Vec
tor����elementAt() ��ȡԭ����Ϊ��Cat�Ķ���ʱ��ʵ�ʻ�õ���ָ��һ��Object�ľ�
����뽫�Ǹ���������ΪCat�������Ҫ��������ʽ�����ŷ����������Ϊ Cat��
��print()����֮ǰ����ǿ�����ͣ�����ͻ����һ���﷨�����������ڼ䣬�����ͼ
��Dog��������ΪCat���ͻ�õ�һ��Υ��
��Щ��������嶼�dz���Զ�������Ե���Щ�鷳����ȴ����˰�ȫ�ϵı�֤�����ǴӴ�
����żȻ���һЩ���ص���Ĵ����������һ�����֣��򼸸����֣����������һ��
���ϣ�������ֻ��ͨ��һ��Υ���ڳ����ij�����ַ���һ������Ķ��������˼��ϣ���
�����ҳ���������λ�á���Ȼ����ͨ�������ﵽ���Ŀ�ģ������������ĵ�
�Թ��ߡ���һ���棬���ǿɴ�һЩ��׼���ļ����࿪ʼ�Լ��ı�̡����������ڹ�����
����һЩ���㣬���Ե���Щ��׾����ȴ�ܱ�֤û�����صĴ���
1. ������ʱ������¶����
��ijЩ����£������ƺ���ȷ�ع����������ͻ�����ԭ�������͡���һ��������൱��
��ģ�String��ӱ���������˶���İ���ʹ���ܹ�������ֻҪ�������ڴ����
һ��String���󣬵���û�еõ�һ�����ͻ��Զ�������Object�ﶨ�塢�����ܹ����κ�
Java�า�ǵ�toString()����������������������Ҫ���String����Ȼ����������
Ҫ��ʱ��ʹ�á�
��ˣ�Ϊ�����Լ���Ķ�������ʾ������Ҫ����ȫ��������Ǹ���toString()��������
������ʾ��
334-335ҳ����
����Mouse�￴����toString()���ض�����롣��main()�ĵڶ���forѭ���У��ɷ�����
����䣺
System.out.println("Free mouse: " +
mice.elementAt(i));
�ڡ�+���󣬱�����Ԥ�ڿ�������һ��String����elementAt()�����һ��Object����
��Ϊ���ϣ���String����������Ĭ�ϵ���toString()�������ҵ��ǣ�ֻ�����String
���ܵõ�������Ľ�������κ����Ͷ�������������ת����
�������͵ĵڶ��ַ�������Mousetrap��õ���Ӧ�á�caughtYa()�������յIJ���һ��M
ouse������һ��Object������ٽ�������Ϊһ��Mouse����Ȼ���������Ƿdz�ðʧ�ģ���
Ϊͨ�����һ��Object���κζ��������Դ��ݸ���Ȼ��������Ͳ���ȷ�������
���Ǵ����˴�������͡����ͻ��������ڼ�õ�һ��Υ������⵱Ȼû���ڱ����ڽ�
�м��ã�����Ȼ�ܷ�ֹ����ķ���ע����ʹ���������ʱ����������ͣ�
MouseTrap.caughtYa(mice.elementAt(i));
2. ������Զ��б����͵�Vector
��һ��?�����ղ��Ǹ����⡣һ����׳���ķ�������Vector����һ�����࣬ʹ
��ֻ��������ָ�������ͣ�Ҳֻ�������ϣ������͡�������ʾ��
335-336ҳ����
��ǰһ���������ƣ�ֻ���µ�GopherVector����һ������ΪVector��private��Ա����V
ector�̳���Щ�鷳�������Ժ��֪�������ҷ���Ҳ��Vector���ơ�Ȼ�������պ�
������ͨObject��ֻ��Gopher�������Ȥ��
����GopherVectorֻ����һ��Gopher�����󣩣����Լ�������ʹ�ã�
gophers.addElement(new Pigeon());
�ͻ��ڱ����ڼ���һ��������Ϣ���������ַ�ʽ�����ܴӱ���ĽǶȿ��Եø����˳�
�ƣ������������жϳ��Ƿ�ʹ������ȷ�����͡�
ע����ʹ��elementAt()ʱ���ؽ������͡�����϶���һ��Gopher��
3. ��������
�������Ⲣ���ǹ����ġ����������ʱ��Ҫ���������͵Ļ��ϴ��������͡���ʱ��
�ڱ����ڼ�ӵ���ض���������Ϣ�Ƿdz��а���ġ�����ǡ��������͡��ĸ����C+
+�У���������ͨ��ģ�塱�����ֱ��֧�֡����٣�Java�����˹ؼ���generic������
��һ���ܹ�֧�ֲ������͡������������޷�ȷ����һ���ʱ�����١�
8.3 ö��������������
���κμ������У�����ͨ��ij�ַ����������������������һ�ַ�������ȡ�ö���
�Ͼ������ɸ��ָ���Ķ������Ǽ��ϵ���Ҫ������Vector�У� addElement()��������
���������õķ�������elementAt()����ȡ�����Ψһ������Vector�dz������ǿ�
���κ�ʱ��ѡ���κζ���������ʹ�ò�ͬ������ѡ����Ԫ�ء�
���Ӹ�ߵĽǶȿ�������⣬�ͻᷢ�����һ��ȱ�ݣ���Ҫ����֪�����ϵ�׼ȷ���ͣ�
�����޷�ʹ�á�է��������һ���ƺ�ûʲô��ϵ���������ʼ����ʹ�� Vector������
�ڳ������־���������ִ��Ч�ʵ�ԭ�򣩸ı��һ��List������Java1.2���Ͽ��һ����
������ʱ�ָ�������أ�
�����á�����������Iterator���ĸ���ﵽ���Ŀ�ġ��������һ�����������DZ���
һϵ�ж��󣬲�ѡ���Ǹ������е�ÿ������ͬʱ���ÿͻ�����Ա֪�����ע�Ǹ�����
�Ļ�ṹ�����⣬����ͨ����Ϊ��������һ�֡�������������Ҳ����˵��������ֻ
�踶�����ٵĴ�ۡ���Ҳ�����������ԭ�����dz����ַ���������һЩ�ƺ�����ֵ�
���ơ����磬��Щ������ֻ�ܳ�һ�������ƶ���
Java��Enumeration��ö�٣�ע�͢ڣ����Ǿ�����Щ���Ƶ�һ�������������ӡ���������
Щ�⣬�����������������κ����飺
(1) ��һ����Ϊelements()�ķ���Ҫ�󼯺�Ϊ�����ṩһ��Enumeration�������״ε���
���nextElement()ʱ�����Enumeration�᷵�������еĵ�һ��Ԫ�ء�
(2) ��nextElement()�����һ������
(3) ��hasMoreElements()����������Ƿ��и��Ķ���
�ڣ������������������C++��OOP������ط��Ǿ������ֵģ����Ժ���ȷ��ΪʲôJava
�Ŀ����߲���������һ����ֵ����֡�Java 1.2�ļ��Ͽ���������������Լ��������
���⡣
ֻ����Enumeration����Щ���飬�������и�ࡣ�����ڷ�����һ�ּ򵥵�ʵ�ַ�ʽ����
������Ȼʮ��ǿ��Ϊ������������̣������Ǹ�ϰһ�±�����Щʱ���ᵽ��CatsAn
dDogs.java������ԭʼ�汾�У�elementAt()��������ѡ��ÿһ��Ԫ�أ����������޶�
���У��ɿ���ʹ����һ����ö�١���
338-339ҳ����
���ǿ���Ψһ�ĸı��������С������ǣ�
for(int i = 0; i < cats.size(); i++)
((Cat)cats.elementAt(i)).print();
������һ��Enumeration����������У�
while(e.hasMoreElements())
((Cat2)e.nextElement()).print();
ʹ��Enumeration�����Dz��ع��ļ����е�Ԫ�����������й�������hasMoreElements()
��nextElement()�Զ��չ��ˡ�
�����ٿ�����һ�����ӣ������Ǵ���һ��������;�Ĵ�ӡ������
339-340ҳ����
��ϸ�о�һ�´�ӡ������
340ҳ�ϳ���
ע������û�������������йص���Ϣ������ӵ�е�ȫ����������Enumeration��Ϊ�˽���
�����е������һ��Enumeration���㹻�ˣ���ȡ����һ���������֪���Ƿ��ѵִ���
ĩβ��ȡ��һϵ�ж���Ȼ�������б���Ӷ�ִ��һ���ض��IJ�����������һ������
��ֵ�ı�̸���������ط�����������һ˼·��
�����������������������Ը�Ϊͨ�ã���Ϊ��ʹ���˳����toString()������֮����
��Ϊ���棬������������Object���һ���֣��������ǵ��ô�ӡ����һ��������������
Ч���Ͽ��ܻ��һЩ����
System.out.println("" + e.nextElement());
������˷�װ��Java�ڲ��ġ��Զ�ת�����ִ���������һ������������һ���ִ�������
����һ����+�����ͻ�ϣ������ָ���һ���ִ������Զ�����toString()����Java 1.1��
����һ���ִ��Dz���Ҫ�ģ����ж��󶼻�ת�����ִ�����ɶԴ�ִ��һ�����ͣ������
����toString()ͬ���Ч��
System.out.println((String)e.nextElement())
����������������ͨ�����������ǵ���Object���������Ի��ٶ������������͵����⡣
�����Լ�����Ȥ�����ͣ�����ٶ��Լ��ѻ����һ��Enumeration��Ȼ�󽫽���������
��Ϊ�������ͣ����������󣬻�õ�������Υ��
8.4 ���ϵ�����
��׼Java 1.0��1.1�������ṩ�˷dz��ٵ�һϵ�м����ࡣ�������Լ��Ĵ������Ҫ��
�����ǻ��϶���ʤ�Ρ������ҵ�����ĩβ�ῴ���ģ�Java 1.2�ṩ����һ��������
�ƹ�Ĵ��ͼ��Ͽ⡣
8.4.1 Vector
Vector���÷��ܼ򵥣�������ǰ��������еõ���֤�����������Ǵ����ʱ��ֻ����ad
dElement()���������elementAt()һ����ȡһ�����󣬲���elements()��ö����е�
һ����ö�١�������������һϵ�з����Ƿdz����õġ�ͬ���Ƕ���Java��߳�������һ
�������ﲢ��ʹ�û���������Щ��������������Ķ���Ӧ�ĵ����ĵ��������ǵĹ�
����һ����ŵ���ʶ��
1. ����Java
Java��׼���������toString()��������������������Լ���String��﷽ʽ������
�������ɵĶ���������Vector�У� toString()����Vector�ĸ���Ԫ���в���ͱ���
��Ϊÿ��Ԫ�ص���toString()���ٶ������������ӡ���Լ���ĵ�ַ���������ƺ���
������this���ɣ��ر���C++����Ա�������������򣩣�
341ҳ�³���
��ֻ�Ǽ򵥵ش���һ��CrashJava���󣬲������ӡ�������ͻ�õ������޾���һϵ��Υ
�����Ȼ����罫CrashJava��������һ�� Vector������������ʾ�������ӡVect
or���Ͳ������ʲô������ʾ��������һ��Υ�����֡���ʱJavaֻ�Ǽ򵥵ر���
����������û�б����ҵIJ���ϵͳ����������Java 1.1�в���ͨ��
��ʱ��������ִ����Զ�����ת����������ʹ���������ʱ��
"CrashJava address: " + this
����������һ���ִ����淢����һ����+���Լ����󲢷��ִ��������������������ͼ
��thisת����һ���ִ���ת��ʱ���õ���toString()�����߻����һ���ݹ���á�����
һ��Vector�ڳ����������飬��������ջ�ͻ������ͬʱΥ����ƻ��Ƹ�û�л����
����Ӧ��
��ȷʵ������������´�ӡ������ĵ�ַ������������ǵ���Object��toString������
��ʱ�Ͳ��ؼ���this��ֻ��ʹ�� super.toString()����Ȼ����ȡ��������Ҳ��һ��ǰ��
�����DZ����Objectֱ�Ӽ̳У�����û��һ�����า����toString������
8.4.2 BitSet
BitSetʵ�����ɡ�������λ�����ɵ�һ��Vector�����ϣ���Ч�ʵر��������������
����Ϣ����Ӧʹ��BitSet����ֻ�дӳߴ�ĽǶȿ��������壻���ϣ��ĸ�Ч�ʵķ���
����ô����ٶȻ��ʹ��һЩ�������͵�������һЩ��
���⣬BitSet����С������һ��������Long���ij��ȣ�64λ������ζ�ż�������׼��
��������С����ݣ���8λ��ݣ���ôBitSet���Ե��˷��ˡ�������ô����Լ����࣬
���������Լ��ı�־λ��
��һ����ͨ��Vector�У������Ǽ���Խ��Խ���Ԫ�أ�����Ҳ���������͡���ij�̶ֳ�
�ϣ�BitSetҲ�����⡣Ҳ����˵������ʱ��������չ����ʱ��Ȼ������Java��1.0�汾
�ƺ����ⷽ���������㣬���BitSet����ʮ�ֲ�ǿ���⣨Java1.1�Ѹ�����������⣩��
�����������չʾ�� BitSet����������ģ�ͬʱ��ʾ��1.0�汾�Ĵ���
342-344ҳ����
���������������ڴ���һ������byte��short��int��ÿһ������ת����BitSet����
Ӧ��λģ�͡���ʱһ�ж�������ΪBitSet�� 64λ�ģ��������Ƕ�����������ճߴ�
�����󡣵���Java 1.0�У�һ��BitSet����64λ���ͻ����һЩ�����Ի󲻽����Ϊ��
������������һ��ֻ��BitSet��ǰ����洢�ռ���1��һ��λ�����ܹ������չ����
һ����ͼ�ڸ�ߵ�λ������λ��ͬʱ���ȽӴ��߽磬�ͻ�õ�һ�����˵�Υ��������
����BitSet��Java 1.0�ﲻ����ȷ��չ��ɵġ�������һ��512λ��BitSet��������
����Ĵ洢�ռ���λ������������Լ�������λ1024���ߵ�λ��ͬʱû��������λ10
23���ͻ���Java 1.0��õ�һ��Υ�����˵��ǣ������������Java 1.1�õ��˸���
�����������ΪJava 1.0д���룬�뾡������ʹ��BitSet��
8.4.3 Stack
Stack��ʱҲ���Գ�Ϊ�������ȳ�����LIFO�����ϡ�����֮�������ڶ�ջ�����ѹ�롱
�Ķ��������Ժ��һ�����������ġ�����������Java����һ������ѹ��͵����Ķ���
�����󡱣����Ա�����Լ������Ķ������С����͡���
һ�ֺ��ټ�������Ǿܾ�ʹ��Vector��Ϊһ��Stack�Ļ���Ԫ�أ����Ǵ�Vector�
�̳С�һ��Stack������һ�������ӵ����һ�� Vector��������������Ϊ���������һ
Щ�����Stack��Ϊ�������жϳ�����ߵ�������ȷ������������������һ�ֹ��е����
��
������һ���򵥵Ķ�ջʾ�����ܶ��������ÿһ�У�ͬʱ������Ϊ�ִ�ѹ���ջ��
345ҳ����
months�����ÿһ�ж�ͨ��push()�̳н����ջ���Ժ���pop()�Ӷ�ջ�Ķ�������ȡ����
Ҫ������һ���ǣ�Vector����������Stack ������С���������ɼ̳е����ʾ�����
����Stack�����ڡ�һ��Vector����ˣ��ܶ�Vector���еIJ���������Stack���У���
�� elementAt()������
8.4.4 Hashtable
Vector����������һ�����ִ�һϵ�ж���������ѡ��������ʵ���ǽ�����ͬ�������
�����ˡ��������������������׼ѡ��һϵ�ж����أ���ջ���������һ�����ӣ���
��ѡ���׼�ǡ����ѹ���ջ�Ķ����������֡���һϵ�ж�����ѡ�񡱵ĸ�����ɽ���
һ����ӳ�䡱�����ֵ䡱���ߡ��������顱���Ӹ����Ͻ�����������һ��Vector����
ȴ����ͨ�����������Ҷ��󣬶�������һ���������������ǣ���ͨ��������һ��������
����Ҫ��̡�
��Java�У����������巴ӳ��������Dictionary���ϡ�����Ľӿ��Ƿdz�ֱ�۵�size
()�����������а��˶���Ԫ�أ�isEmpty() �ж��Ƿ����Ԫ�أ�����Ϊtrue����pu
t(Object key, Object value)���һ��ֵ������ϣ��Ķ�������������ͬһ���������
����������������Ķ�������get(Object key)�����ij�����Ӧ��ֵ����remove(Obje
ct Key)���ڴ��б���ɾ���ֵ���ԡ�������ʹ��ö�ټ�����keys()����Լ��һ��
ö�٣�Enumeration������elements()���������ֵ��һ��ö�١������һ��Dictionar
y���ֵ䣩��ȫ����
Dictionary��ʵ�ֹ�̲����鷳�������г�һ�ּ򵥵ķ�������ʹ��������Vector��һ
���������ɼ���һ����������ֵ��
346-347ҳ����
�ڶ�AssocArray�Ķ����У�����ע�⵽�ĵ�һ������������չ�����ֵ䡣����ζ��As
socArray����Dictionary��һ�����ͣ����Կɶ��䷢����Dictionaryһ����������
������Լ���Dictionary�����Ҿ���������У���ôҪ����ȫ������ֻ�����λ�� Dic
tionary�ڵ����з��������ұ��븲�����з�������Ϊ���ǡ��������⡪�����dz���
���
Vector key��valueͨ��һ����׼����������������Ҳ����˵������á�roof����һ��
���Լ���blue����һ��ֵ����put()�����ٶ�����׼����һ�����ӵĸ����������ǵ�����
��ɫ��������������AssocArray������100��Ԫ�أ���ô��roof���ͻ���101����Ԫ�أ�
��blue����101��ֵԪ�ء�����Ҫע��һ��get()������������Ϊ��ݡ�roof������
�ͻ������keys.index.Of()�������ţ�Ȼ�����Ǹ������������ص�ֵʸ���ڵ�ֵ
��
main()�н��еIJ����Ƿdz��򵥵ģ���ֻ�ǽ�Сд�ַ�ת���ɴ�д�ַ�����Ȼ���ø�
��Ч�ķ�ʽ���С����������ǽ�ʾ����AssocArray��ǿ���ܡ�
��׼Java��ֻ��Dictionary��һ�����֣���ΪHashtable��ɢ�б?ע�ۣ͢���Java��
ɢ�б������AssocArray��ͬ�Ľӿڣ���Ϊ���߶��Ǵ�Dictionary�̳����ģ�������һ
������ȴ��ӳ���˲��ִ��Ч�ʡ�����ϸ�������Ϊһ��get()�������飬�ͻᷢ����
һ�� Vector����������ٶ�Ҫ��öࡣ����ʱ��ɢ�б�ȴ���Լӿ첻���ٶȡ���������
����������������������һ���������һ�������ֵ����Ϊ��ɢ���롱��ɢ�������
��ȡ�����е���Ϣ��Ȼ����ת�����Ǹ��������Ψһ��������int�������ж���
��һ��ɢ���룬��hashCode()�Ǹ���Object ��һ��������Hashtable��ȡ�����hashCo
de()��Ȼ��������ٲ��Ҽ������ʹ���ܵõ���������ܣ���ɢ�б�ľ��幤��
ԭ���ѳ����˱���ķ�Χ���ݣ��������ֻ��Ҫ֪��ɢ�б���һ�ֿ��ٵġ��ֵ䡱��Di
ctionary�����ɣ����ֵ���һ�ַdz����õĹ��ߡ�
�ۣ���ƻ�ʹ��RMI���ڵ�15����������Ӧע�⽫Զ�̶�������ɢ�б�ʱ������һ������
�����ġ�Core Java��������Conrell��Horstmann��Prentice-Hall 1997����棩
�ܣ��������ٶȵ�������Ȼ��������������ܵ�Ҫ���������Ա�д�Լ���ɢ�б����
���Ӷ��һ���ӿ���ļ�����̡��������ɱ�������Object֮��������͵�ʱ������
��Ҳ���Աܿ���Java���ɢ�б�����ڽ���ͬ����̡�
�ݣ��ҵ�֪������Ѳο������ǡ�Practical Algorithms for Programmers��������Ϊ
Andrew Binstock��John Rex��Addison-Wesley 1995����档
��ΪӦ��ɢ�б��һ�����ӣ��ɿ�����һ������������Java��Math.random()���������
�Ե�����Ρ�����������£���Ӧ�ò���һϵ�����������ֲ����֡���Ϊ����֤��һ
�㣬������Ҫ��������ڶ��������֣�Ȼ��������ڲ�ͬ��Χ�ڵ����ֶ��١�ɢ�б�
���Լ������һ��������Ϊ���ܽ�����ͬ���������������ʱ�ǽ�Math.random()���
��ֵͬ��Щֵ���ֵĴ��������������������ʾ��
348-349ҳ����
��main()�У�ÿ�β���һ��������֣�����װ��һ��Integer�����ʹ����ܹ���
ͬɢ�б�һ��ʹ�ã����ɶ�һ������ʹ�û�������ͣ�ֻ��ʹ�ö�����contai
nKey()�������������Ƿ��Ѿ��ڼ����Ҳ����˵���Ǹ�������ǰ���ֹ��𣿣�����
�ڼ������get()��������Ǹ��������ֵ����ʱ��һ��Counter�������������󡣼�
�����ڵ�ֵi��������1����������ض�����������ֳ�����һ�Ρ�
�������ǰ��δ���ֹ���ô����put()��Ȼ����ɢ�б�������һ���µġ���ֵ���ԡ�
�ڴ���֮����Counter���Լ��ı���i�Զ���ʼ��Ϊ1�����־�Ÿ�������ֵĵ�һ�γ���
��
Ϊ��ʾɢ�б?ֻ�����򵥵ش�ӡ�������ɡ�Hashtable toString()�����ܱ�������
��ֵ�ԣ���Ϊÿһ�Զ�����toString()��Integer toString()�����ȶ���õģ��ɿ�
��������ʹ�õ�toString��һ�����еĽ�������һЩ���У����£�
350ҳ�ϳ���
��һ�����Counter���Ƿ��Ҫ�е��ɻ��������ƺ���û�з�װ��Integer�Ĺ�
�ܡ�Ϊʲô����int��Integer�أ���ʵ�ϣ��������м��������ɵĽ��ж���������
������ʹ������ѧ��Ϻ󣬷�װ��ĸ���Դ����˵�Ϳ��ܸ���������ˣ���
Ϊ�����Խ��κλ�����������뼯���Ȼ�����Ƕ�Java��װ��������Ψһ�����
�ǽ����ʼ����һ���ض���ֵ��Ȼ���ȡ�Ǹ�ֵ��Ҳ����˵��һ����װ�������Ѿ�����
����û�а취�ı�һ��ֵ����ʹ��Integer��װ���Խ�����ǵ�����������壬���Բ���
������һ�����࣬�����������Լ���Ҫ��
1. �������ؼ���
��ǰ��������������һ����׼����ࣨInteger����ΪHashtable��һ����ʹ�á���
Ϊһ�������ܺܺõع�������Ϊ���Ѿ��߱���ȷ���е���������������ʹ��ɢ�б��
ʱ��һ�����Ǵ����Լ�������Ϊ��ʹ�ã��ͻ�����һ���ܳ�������⡣���磬����һ
������Ԥ��ϵͳ��Groundhog�������󣩶���ƥ���Prediction��Ԥ�������⿴�����dz�
ֱ�ۣ����Ǵ��������࣬Ȼ��Groundhog��Ϊ��ʹ�ã���Prediction��Ϊֵʹ�á���
����ʾ��
350-351ҳ����
ÿ��Groundhog������һ����ʶ���룬���Գ�����ɢ�б��в���һ��Prediction��ֻ��ָ
ʾ���������Groundhog����3��ص� Prediction����Prediction�����һ������ֵ
����Math.random()���г�ʼ�����Լ�һ��toString()Ϊ���ǽ��ͽ����main()�У���
Groundhog�Լ���������ص�Prediction���һ��ɢ�б?ɢ�б?��ӡ�������Ա�����
��������ȷʵ�ѱ���䡣����ñ�ʶ����Ϊ3��һ��Groundhog������Groundhog #3��
Ӧ��Ԥ����
�������ƺ��dz��򵥣���ʵ���Dz����еġ���������Groundhog�Ǵ�ͨ�õ�Object�����
�еģ�������δָ�����࣬�����������ն��Ǵ� Object�̳еģ�����ʵ������Objec
t��hashCode()�������ÿ�������ɢ���룬����Ĭ�������ֻʹ����Ķ���ĵ�ַ����
�ԣ� Groundhog(3)�ĵ�һ��ʵ��������Groundhog(3)�ڶ���ʵ����ȵ�ɢ���룬
�������õڶ���ʵ����м�����
��һ�����Ϊ��ʱҪ����ȫ�����������ȷ�ظ���hashCode()������������Ȼ�в��ܣ�
���������һ�����飺����Ҳ����Objectһ���ֵ� equals()����ɢ�б���ͼ�ж����ǵ�
���Ƿ���ڱ��ڵ�ij����ʱ���ͻ��õ����������ͬ��أ�Ĭ�ϵ�Object.equals()ֻ��
�򵥵رȽ϶����ַ������һ��Groundhog(3)����������һ��Groundhog(3)��
��ˣ�Ϊ����ɢ�б��н��Լ�������Ϊ��ʹ�ã�����ͬʱ����hashCode()��equals()��
��������չʾ������
352ҳ����
ע����δ���ʹ��������ǰһ�����ӵ�Prediction������SpringDetector.java��������
���룬����ͻ�����ͼ����SpringDetector2.javaʱ�õ�һ�������ڴ���
Groundhog2.hashCode()�������������Ϊһ����ʶ��أ�����������У�����Ա��Ҫ
��֤û��������������ͬ���ID���벢�棩��Ϊ�˷���һ����һ�޶��ı�ʶ������
ҪhashCode()��equals()���������ܹ��ϸ��ж����������Ƿ���ȡ�
equals()����Ҫ�������ּ�飺�������Ƿ�Ϊnull������Ϊnull����������Ƿ�Ϊ
Groundhog2��һ��ʵ��Ҫ�õ� instanceof�ؼ��֣���11�»��������������ʹΪ�˼�
��ִ��equals()����ҲӦ����һ��Groundhog2�������ҿ������������ֱȽϽ�����
ʵ��ghNumber�Ļ��ϡ���һ��һ���������г��򣬾ͻῴ�������ڲ�������ȷ�����
�����Java����඼������hashcode()�� equals()�������Ա����Լ��ṩ��������Ӧ��
��
2. ���ԣ�Hashtable��һ������
�ڱ���ĵ�һ�������У�����ʹ����һ����ΪProperties�����ԣ���Hashtable���͡���
�Ǹ������У����������У�
Properties p = System.getProperties();
p.list(System.out);
������һ����ΪgetProperties()��static���������ڻ��һ�������Properties����
��ϵͳ��ijЩ��������������list ()����Properties��һ���������ɽ����ݷ�������ѡ
����κ���ʽ�����Ҳ��һ��save()�����������������б�д��һ���ļ����Ա��պ�
�� load()������ȡ��
����Properties���Ǵ�Hashtable�̳еģ�����Ҳ����һ��ɢ�б?�������ɡ�Ĭ�ϡ�
���Ե��б?���Լ���û�������б����ҵ�һ�����ԣ��ͻ��Զ�����Ĭ�����ԡ�
Properties����������ǵij�����ʹ�ã���17�µ�ClassScanner.java����һ����J
ava����û��ĵ��У���������ҵ���ࡢ����ϸ��˵����
8.4.5 ����ö����
�������ڿ��Կ�ʼ��ʾEnumeration��ö�٣�����������������Խһ�����еIJ������Ǹ�
���еĻ�ṹ�ָ�����������������PrintData ����һ��Enumeration��һ������
���ƶ�����Ϊÿ�����󶼵���toString()��������ʱ������������ͬ���͵ļ��ϣ�һ��
Vector��һ�� Hashtable����������������ֱ����Mouse��Hamster���󣨱�����Щʱ
���Ѷ�������Щ�ࣻע������ȱ��� HamsterMaze.java��WorksAnyway.java����������
�ij����ܱ��룩������Enumeration�����˻�㼯�ϵĽṹ������PrintData��֪����
�߲�����Enumeration������ʲô���͵ļ��ϣ�
354ҳ����
ע��PrintData.print()��������Щ�����еĶ�������Object����һ��ʵ�������������
toString()�����ڽ���Լ���ʵ������ʱ��������Ҫ��֤�Լ���Enumeration��Խij����
�����͵ļ��ϡ����磬����Ҫ�󼯺��е�����Ԫ�ض���һ��Shape��������״����������
draw ()��������������������������Enumeration.nextElement()���ص�Object����
�������ͣ��Ա����һ��Shape��
8.5 ����
Java 1.0��1.1�ⶼȱ�ٵ�һ�������������㣬����û����򵥵��������㷽�������
��������ô���һ��Vector�����þ����Quicksort���������򣩷������������������
��
��дͨ�õ��������ʱ�����ٵ�һ�������DZ����ݶ����ʵ��������ִ�бȽ����㣬
�Ӷ�ʵ����ȷ�����򡣵�Ȼ��һ���취��Ϊÿ�ֲ�ͬ�����Ͷ�дһ����ͬ�����򷽷���
Ȼ��Ӧ��ʶ���������������Ժ�����������ʱ�㲻��ʵ�ִ�����ظ����á�
�������һ����Ҫ��Ŀ����ǡ�������仯�Ķ���ͬ���ֲ���Ķ����ָ�������������
�����ֲ���Ĵ�����ͨ�õ������㷨����ÿ��ʹ��ʱ��Ҫ�仯���Ƕ����ʵ�ʱȽϷ���
����ˣ����Dz��ɽ��Ƚϴ��롰Ӳ���롱�������ͬ����������ڣ����Dz��á��ص���
���������ûص�����������仯���Dz��ִ�����װ�����Լ������ڣ������DZ�����ͬ
�Ĵ����򡰻ص�������仯�Ĵ��롣����һ������ͬ�Ķ���Ϳ��Ա�ﲻͬ�ıȽϷ�ʽ
��ͬʱ�����Ǵ�����ͬ��������롣
����������ӿڡ���Interface��չʾ����αȽ�������������Щ��Ҫ����仯�Ķ�
������װ���ڣ�
355ҳ�г���
�������ַ�����˵��lhs��?�αȽ��еġ����֡����󣬶�rhs��?���֡�����
�ɴ���Vector��һ�����࣬ͨ��Compareʵ�֡��������򡱡���
--
   j&=   y+ y*    jv+   yy-v    v &
  wE!"   j17$T   7MPC   NU$E-   Ej&v-
  O*K^  yHH:Ovm+ UMMk   BMNTO: H1="7'
 jO&OH: "OH&"E~  U0H1   BB71` jCf'U:
 vM1H1   jB-j1  wHhHh*-/$B)B-   BkJUk
 ^HI'OH j""^N1  "OHOK~  H$H"Da jP'N ^
�� ��Դ:���ɽ��ˮ bbs.neu.edu.cn��[FROM: 219.216.70.3]
Technical Details
Message-ID: <492e9Z$Bqv@bbs.neu.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.media.kyoto-u.ac.jp!news.neu.edu.cn!NEU

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f6cb0,a84167743c115763,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-10-27 17:45:16 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.media.kyoto-u.ac.jp!news.neu.edu.cn!NEU
From: amou.bbs@bbs.neu.edu.cn (�˺�2��)
Newsgroups: cn.bbs.comp.lang.java
Subject: Java���˼��---��8�� ���������
Date: 28 Oct 2003 01:44:06 GMT
Organization: ��ɽ��ˮ
Message-ID: <492e9Z$Bqv@bbs.neu.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: java/M.1067305427.A
Lines: 496