/**作者:高雪峰 Email:ourjava@qq.com */
第二章:JAVA编程基础
考点:
一、关键字
正确识别java语言的关键字(keyword)和保留字(reserved word)是十分重要的。Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
关键字列表
abstract boolean break byte case
catch char class continue default
do double else extends false
final finally float for if
implements import instanceof int interface
long native new null package
private protected public return short
static super switch synchronized this
throw throws transient true try
void volatile while
保留字
const,goto
注意点
识别java语言的关键字,不要和其他语言如c/c++的关键字混淆。
const和goto是java的保留字。
所有的关键字都是小写
friendly,sizeof不是java的关键字
1, which of the following are keywords or reserved words in java?
a) if b)then c)goto d)while e)case f)sizeof
2, which of the following are java key words?
a)double b)Switch c)then d)instanceof
3, which of these are key words in java?
a) default b)NULL c)String d)throws e)long f)true
答案来了 1,acde 2,ad 3,adef 作对了吗^_^
解释来了 1,then和sizeof都不是java的关键字,熟悉c或者c++,写惯了asp的高手就要小心喽。
2,所有的关键字都是小写的,所以Switch不是关键字。instanceof看上去像方法名,但其实是关键字;
3,大写的NULL不是java语言的关键字。String是java语言的一个封装类的类名,也不是关键字。
/**作者:高雪峰 Email:ourjava@qq.com */
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
二、JAVA数据类型
String是最基本的数据类型吗?
三、标识符
在java里可以由自己起名字的地方都可以叫标识符.
当然sun规定java和其他语言一样有自己的标准,
1.标识符必须是字母,数字,下划线,美元符号.
错误的例子:#java Hello Java(中间有个空格) Java@ ..
2.标识符开头必须由字母,下划线,美元符号开始.
3.标识符号对大小写敏感,长度没有限制.
四、运算符
最恼火。。。优先级等等,陷阱特别多;
/**作者:高雪峰 Email:ourjava@qq.com */
算术运算符和表达式考点:1
算术运算符和表达式
1.算术运算符
算术运算表达式由算术运算符和一个或者两个操作数组成。算术运算符分为一元和二元两种,表3-1给出了Java算术运算符。
表3-1 Java算术运算符
注意:表3-1中,“ ”也可以作为字符串连接运算符。
2.算术运算符的优先级
算术运算符的优先级顺序为: 和--运算,以及一元加、减的优先级别最高;其次是*、/和%运算; 和-的优先级最低。
3.2关系运算符和表达式
考点:2
关系运算符和表达式
关系运算表达式由两个操作数和关系运算符组成,实现两个操作数之间关系的比较,比较结果以布尔类型存储表3-2给出了Java关系运算符。
表3-2 Java关系运算符
3.3布尔运算符和表达式
考点:3
布尔运算符和表达式
1.布尔逻辑运算符
布尔运算表达式由关系表达式和布尔运算符组成,实现对关系表达式的值进行布尔逻辑运算,运算结果也是布尔型。表3-3给出了Java布尔逻辑运算符。
表3-3 Java布尔逻辑运算符
2.关系运算符和布尔逻辑运算符的优先级关系
!优先级最高,其次是>、>=、<、<=,再次是==和!=,然后是&&,优先级最低的是| |。编写程序的时候,使用括号可以改变优先级次序。
3.“短路”运算方式
对于&&和| |运算符,Java语言采用短路方式运算,基本原则如下。
(1)运算符&&左边的表达式值若为false,则不用计算右边的表达式的值,整个表达式值为false。
(2)运算符| |左边的表达式值若为true,则不用计算右边的表达式的值,整个表达式值为true。
3.4位运算符和表达式
考点:4
位运算符和表达式
1.位运算符
位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括>>、<<和>>>)。表3-4给出了Java位运算符。
表3-4 Java位运算符
在进行位运算时,需要注意以下几点。
(1)>>>和>>的区别是:在执行运算时,>>>运算符的操作数高位补0,而>>运算符的操作数高位移入原来高位的值。
(2)右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。
(3)若进行位逻辑运算的两个操作数的数据长度不相同,则返回值应该是数据长度较长的数据类型。
(4)按位异或可以不使用临时变量完成两个值的交换,也可以使某个整型数的特定位的值翻转。
(5)按位与运算可以用来屏蔽特定的位,也可以用来取某个数型数中某些特定的位。
(6)按位或运算可以用来对某个整型数的特定位的值置l。
2.补码的概念
在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。
(l)正数的最高位为0,其余各位代表数值本身(二进制数)。
(2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。
3.位运算符的优先级
~的优先级最高,其次是<<、>>和>>>,再次是&,然后是^,优先级最低的是|。
3.5赋值运算符和表达式
考点:5
赋值运算符和表达式
赋值运算符由变量和表达式组成,一般格式是:
<变量><赋值运算符><表达式>
赋值运算符包括赋值运算符(=0)和扩展赋值运算符。表3-5给出了Java赋值运算符。
表3-5 Java赋值运算符
注意:如果在赋值运算符两侧的类型不一致时,若右侧变量类型的级别高,则需要进行强制类型转换。
3.6条件运算符和表达式
考点6:
条件运算符和表达式
条件表达式由3个操作数和“?”、“:”组成,一般形式是:
opl?opt:op3
其中op1是关系或者布尔逻辑表达式,该值若为真,则计算op2表达式的值,并作为整个表达式的结果;若为假,则计算op3表达式的值,并作为整个表达式的结果。
3.7运算符优先级
考点:7
运算符优先级
Java语言从左向右计算表达式的值。当一个表达式中有多个运算符的时候,运算的次序由表3-6所示的优先级顺序决定。
表3-6 Java运算符优先级别表
在表3-6中,优先级次序越小,优先级越高,在表达式中,同一级中的运算符按照从左到右的顺序执行。
注意:在表3-6中出现了一些在前面内容中没有介绍的运算符:下标运算符[ ],实例运算符instanceof,内存分配运算符new,强制类型转换符(类型)等,都属于Java运算符的集合。
3.8复杂表达式和表达式语句
考点:8
复杂表达式和表达式语句
复杂表达式是含有两个或者两个以上运算符的表达式。
注意:表达式可以只由一个常量或者一个变量构成,此时表达式的值就是该常量或者变量的值。
表达式语句是指由表达式直接构成的语句,通常包括3种。
(1)一元算数表达式(由 或者- -运算符构成)。
(2)在赋值表达式后面加上分号。
(3)无返回值的方法调用语句。