一个Java源文件里最多只能定义一个public类。
一个Java源文件可以包含多个类定义,但最多只能包含一个public类定义;如果Java源文件里包含public类定义,则该源文件的文件名必须与这个public类的类名相同。
Java的堆内存是一个运行时数据区,用以保存类的实例(对象),Java虚拟机的堆内存中存储着正在运行的应用程序所建立的所有对象,这些对象不需要程序通过代码来显式地释放。
关联使用一条实线来表示,带箭头的实线表示单向关联。(UML)
聚合使用带空心菱形框的实线表示,组合则使用带实心菱形框的实线表示。 (UML)
继承关系使用带空心三角形的实线表示.
(UML)
还有一种与继承类似的关系,类实现接口可视为一种特殊的继承,这种实现用带空心三角形的虚线表示.(UML)
依赖关系使用带箭头的虚线表示,其中箭头指向被依赖的实体.(UML)
char代表字符型,实际上字符型也是一种整数类型,相当于无符号整数类型。
补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。
计算机中,负数是以补码的形式存在。
使用一个正数除以0将得到正无穷大,使用一个负数除以0将得到负无穷大,0.0除以0.0或对一个负数开方将得到一个非数。正无穷大通过Double或Float类的POSITIVE_INFINITY表示;负无穷大通过Double或Float类的NEGATIVE_INFINITY表示,非数通过Double或Float类的NaN表示。
只有浮点数除以0才可以得到正无穷大或负无穷大,因为Java语言会自动把和浮点数运算的0(整数)当成0.0(浮点数)处理。如果一个整数值除以0,则会抛出一个异常:ArithmeticException:/by zero(除以0异常)。
所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的;而NaN不与任何数值相等,甚至和NaN都不相等。
自动类型转换
自加和自减只能用于操作变量,不能用于操作数值直接量、常量或表达式。
运算符
运算过程
对于低于int类型(如byte、short和char)的操作数总是先自动类型转换为int类型后再移位
对于int类型的整数移位a>>b,当b>32时,系统先用b对32求余(因为int类型只有32位),得到的结果才是真正移位的位数。例如,a>>33和a>>1的结果完全一样,而a>>32的结果和a相同。
对于long类型的整数移位a>>b,当b>64时,总是先用b对64求余(因为long类型是64位),得到的结果才是真正移位的位数。
优先级比较
网友评论