02.java 标示符、变量、常量
java 标示符、变量、常量2.1 java是严格区分大小写
2.2 java标示符
Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。
下面是合法的标识符:
indentifier,
username
user_name
_userName
$username?
下面是非法的标识符:
class
98.3
Hello World
建议:标示符永远用字母开头,尽量不要包含其他的符号就行了。
2.3 java中关键字java和C、C++等其他语言一样也存在关键字,如:public、break等,这些保留字不能被当做标示符来识别,下面是常见的一些关键字:
abstract ? ?boolean ? ? ?break ? ? ?byte ? ? ? case ? ? ?catch ? ? char ?
class ? ? ? continue ? ? default ? ?do ? ? ? ? double ? ?else ? ? ?extend
false ? ? ? final ? ? ? ?finally ? ?float ? ? ?for ? ? ? if ? ? ? ?implement
import ? ? ?instanceof ? int ? ? ? ?interface ?long ? ? ?native ? ?new
null ? ? ? ?package ? ? ?private ? ?protected ?public ? ?return ? ?short
static ? ? ?strictfp ? ? super ? ? ?switch ? ? this ? ? ?throw ? ? throws
transient ? true ? ? ? ? try ? ? ? ?void ? ? ? volatile ?while ? ? synchronized
注意:Java 没有sizeof、goto、const这些关键字,但不能用goto、const作为变量名。
2.4 常量程序执行过程中,值保持不变的量
1、整形常量
? 整型常量可以分为十进制,十六进制和八进制来表示:
2、浮点型常量
? 浮点数常量有float(32位)和double(64位)两种类型,分别叫做单精度浮点数和双精度浮点数,表示浮点数时,要在后面加上f(F)或者d(D),用指数表示也可以。注意:由于小数常量的默认类型为double型,所以float类型的后面一定要加f(F),用以区分。如:
2e3f ?3.6d
.4f ? ?0f?
3.84d ?5.022e+23f
? 都是合法的。
3、布尔常量:
? 布尔常量用于区分一个事物的正反两面,不是真就是假。其值只有两种:true和false。
4、字符常量:
? 字符常量是由英文字母、数字、转义序列、特殊字符等的字符所表示,它的值就是字符本身。
5、字符串常量:
? 符串常量和字符型常量的区别就是:前者是用双引号括起来的常量,用于表示一连串的字符。
??
2.5 变量程序执行过程中,值可以改变的量
? ? 整型变量、实型变量、字符型变量、字符串变量、布尔变量等
java 的四类八型:
其中四种数据类型用来存储整数,它们具有不同的取值范围,分别如图所示:
这些类型都是有符号的,所有整数变量都无法可靠地存储其取值范围以外的数据值,因此定义数据类型时一定要谨慎。
其中有两种数据类型用来存储浮点数,它们是单精度浮点型(float)和双精度浮点型(double)。
\r表示接受键盘输入,相当于按下了回车键;
\n表示换行;
\t表示制表符,相当于table键;
\b表示退格键,相当于Back Space;
\'表示单引号,"是双引号;
\\表示一个斜杠“\”。
?
2.7 基本数据之间的转换在编写程序过程中,我们经常会遇到的一种情况,就是需要将一种数据类型的值赋给另一种不同数据类型的变量,由于数据类型有差异,在赋值时就需要进行数据类型的转换,这里就涉及到两个关于数据转换的概念:自动类型转换和强制类型转换。
◆自动类型转换(也叫隐式类型转换)
要实现自动类型转换,需要同时满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围要大于源类型。例如,当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换。所有的数字类型,包括整型和浮点型彼此都可以进行这样的转换。
请看下面的例子:
byte b=3;
int x=b; ?//没有问题,程序把b的结果自动转换成了int型了
?
◆ 强制类型转换(也叫显式类型转换)
当两种类型彼此不兼容,或目标类型取值范围小于源类型时,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:
目标类型 变量=(目标类型)值
例如:
byte a;
int b;
a = (byte) b;
类型的自动提升,Java定义了若干适用于表达式的类型提升规则。
第一,所有的byte型、short型和char的值将被提升到int型。
第二,如果一个操作数是long型,计算结果就是long型;
第三,如果一个操作数是float型,计算结果就是float型;
? ? 第四,如果一个操作数是double型,计算结果就是double型。
java实例:
//类型的自动提升public class Promote {public static void main(String args[]){byte b = 50;char c = 'a';short s = 1024;int i = 50000;float f = 5.67f;double d = .1234;double result = (f * b) + (i / c) - (d * s);System.out.println((f * b) + " + " + (i / c) + " - " + (d * s));System.out.println("result = " + result);}}?