分享
 
 
 

SCJP培训笔记

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Initialization

初始化

* All class-level (member) variables are initialized before they can

be used.

All local variables are not initialized until it is done eXPlicitly.

* 所有的主成员在他们使用之前被初始化

所有的局部变量必须通过显式的赋值来初始化

* An array object (as distinct from reference) is always initialized

(with zeroes or nulls)

* 数组对象总是能够初始化(零或者null)

* Member initialization with the declaration has exception problems:

- cannot call methods that throw a checked exception.

- cannot do error recovery from runtime exceptions.

- If you need to deal with errors you can put the initialization code

along with try/catch statements in either a ctor (for instance fields)

or in a static initialization block for static fields. You can also have

instance (non-static) initialization blocks but ctors are more

recognizable.

* 需要处理异常的成员初始化

- 不能调用会抛出异常的方法

- 不能对基本异常做任何处理

- 假如你需要处理错误,将初始化的代码放到构造器或者静态初始化块的

try/catch块中,当然,你也可以放到非静态的代码块中,但是构造器似乎更为通用。

------------------------------------------------------------------------

Strings

字符串

* The String class

- Because string is an immutable class, its instance methods that

look like they would transform the object they are invoked upon,

do not alter the object and instead return new String objects.

- String has methods concat(String),trim(),replace(char,char)

- String has static valueOf methods for a whole bunch of primitives

and for Object too (equivalent to Object.toString()).

- in substring(int,int), the second arg is exclusive.

- indexOf methods returns -1 for 'not found'

* 类String

- 类String是不可变的,即使他的某些方法看起来会改变字符串的内容,但实际

上他们返回的是一个新的字符串,而不是改变原来的字符串

- 类String的方法:cancat(String),trim(),replace(char,char)

- 类String的静态方法valueOf能处理所有的基本类型和对象(调用对象的

toString()方法)

- 在substring(int,int)方法中,第二个参数是"不包括"的(译者注:第一个参

数是"包括"的,例如substring(1,4)将会返回字符串从第二个字符开始(包括

第二个字符),到第五个字符结束(不包括第五个字符)的子字符串)

- 假如没有找到,indexOf方法将返回-1

* String Pool:

A JVM has a string pool where it keeps at most one object of any

String. String literals always refer to an object in the string

pool. String objects created with the new operator do not refer to

objects in the string pool but can be made to using String's intern()

method. Two String references to 'equal' strings in the string pool

will be '=='.

* 字符串池

虚拟机有一个字符串池,保存着几乎所有的字符串对象。字符串表达式总是指向

字符串池中的一个对象。使用new操作创建的字符串对象不指向字符串池中的对象

但是可以使用intern方法使其指向字符串池中的对象(译者注:假如池中已经有

相同的字符串--使用equals方法确定,则直接返回池中的字符串,否则先将字符串

添加到池中,再返回)。池中两个相等的字符串假如使用'=='来比较将返回真

* StringBuffer doesn't override equals.

* 类StringBuffer没有覆盖equals方法

------------------------------------------------------------------------

Arrays

数组

* Arrays are objects .. the following create a reference for an int array.

int[] ii;

int ii[];

* 数组是一个对象 .. 下面的代码创建一个整型数组的引用:

int[] ii;

int ii[];

* You can create an array object with new or an explicit initializer:

ii = new int[3];

ii = new int[] { 1,2,3 };

int[] ii = { 1,2,3 ); // only when you declare the reference.

* 你可以通过new操作或者显式的初始化创建一个数组对象:

ii = new int[3];

ii = new int[] { 1,2,3 };

int[] ii = { 1,2,3 }; // 只有声明的时候

* CAREFUL: You can't create an array object with:

int iA[3];

* 小心:你不能象下面这样创建一个数组对象:

int iA[3];

* If you don't provides values, the elements of obj arrays are

always initialized to null and those of primitive arrays are

always initialized to 0.

* 假如你不提供初始值,对象数组的元素总是初始化成null,基本类型数组的元素

总是初始化成零

------------------------------------------------------------------------

Primitive Types

基本类型

* Primitive types:

- short and char are both 2 bytes.

int and float are both 4 bytes.

long and double are both 8 bytes.

- char is the only unsigned primitive type.

* 基本类型:

- short和char的长度是两个字节。

int和float的长度都是四个字节。

long和double的长度都是八个字节。

- char是唯一的无符号基本类型

* Literals:

- You can have boolean, char, int, long, float, double and String

literals.

You cannot have byte or short literals.

- char literals: 'd' '\u0c20' (the 0c20 must be a 4-digit hex number).

- int literals: 0x3c0 is hex, 010 is octal(for 8).

- You can initialize byte, short and char variables with int literals

(or const int expressions) provided the int is in the appropriate range.

* 表达式

- 只有boolean,char,int,long,float,double和字符串的表达式;没有byte

和short的表达式

- 字符(char)表达式:'d'、'\u0c20'(0c20必须是四位的十六进制数字)

- 整型(int)表达式:0x3c0是十六进制形式,010是八进制形式

- 可是使用合法范围内的整型表达式对byte、short和char变量初始化

* CAREFUL: can't assign a double literal to a float .. float fff = 26.55;

* 小心:不能将一个double表达式赋给一个float变量 .. float fff = 26.55;

* The only bit operators allowed for booleans are &^ (cant do ~ or

shift ops)

* 位运算只有&^(不能使用~或者移位操作)

* Primitive wrapper classes

- are immutable.

- override equals.

- the static valueOf(String) methods in primitive wrapper classes return

wrapper objects rather than a primitives.

* 基本类型的包装类

- 不可变的

- 覆盖equals方法

- 静态方法valueOf(String)返回的是包装类而不是基本类型

------------------------------------------------------------------------

Conversions and Promotions

类型转换

* boolean-anything but boolean or string is not allowed.

* All other primitive conversions are allowed with an explicit cast.

* char/byte/short/int/long to float/double is a widening conversion even

if some precision is lost (the overall magnitude is always preserved).

* Narrowing conversions require an explicit cast.

- integral narrowing conversions simply discard high-order bits.

- anything to char is a narrowing conversion (inc byte) because its

signed to unsigned and negative numbers get messed up

* boolean不能跟其它的任何类型相互转换,但是boolean-String是答应的

* 所有的基本类型之间可以通过显式的类型转换而转变成其它类型

* char/byte/short/int/long到float/double的转换是宽转换,即使有可能丢掉部

分信息

* 窄转换需要显式的转换

- 整型的窄转换只简单的去掉高位比特

- 所有到char的转换都是窄转换(包括byte)因为转换是从有符号数到无符号数

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有