用来标识类名、变量名、方法名、数组名、文件名的有效字符序列称为标识符。
最近一直在复习java,一方面扎实一下基本功,另一方面也是为了考试,话不多说,整理了一下,欢迎大家指正错误。
下面是Java关于标识符的命名规则。
(1) 标识符是由字母、下划线、美元符号和数字组成,长度不受限制。
(2) 标识符的第一个字符不能是数字字符。
(3) 标识符不能是关键字(abstract/assert(JDK1.4新添加的关键字)/boolean/break/byte/case/catch/char/class/const/continue/default/do/double/else/enum(JDK1.5新添加的关键字)/extends/final/finally/float/for/goto/if/implements/import/instanceof/int/interface/long/native/new/package/private/protected/public/return/short/static/strictfp/super/switch/synchronized/this/throw/throws/transient/try/void/volatile/while)
(4) 标识符不能是true、false和null(尽管true、false和null不是Java关键字)
需要注意的是,标识符中的字母是区分大小写的!
基本数据类型也称为简单数据类型。Java语言有8种基本数据类型,分别是boolean、byte、short、int、long、float、double和char,这8种基本数据类型习惯上分为4种类型。
逻辑类型:boolean
整形类型:byte、short、int、long
字符类型:char
浮点类型:float、double
下面分别详细介绍下各个类型。
(1)逻辑类型:
常量 : true、false
变量: 使用关键字boolean来声明逻辑变量,声明时也可以赋初值。例如:
boolean x,ok = true,l = false;
(2)整数类型:
整型数据分为4种。
1、int 型
常量:123、600(十进制)、077(八进制)、0x3ABC(十六进制)
变量:使用关键字 int 来声明 int 型变量,声明是也可以赋初值。例如:
int x = 12,y = 34,ax ;
2、byte 型
常量:Java中不存在 byte 型常量的表示法
变量:使用关键字 byte 来声明 byte 型变量。例如:
byte x = 12,tom = 25 ;
3、short 型
常量:不存在常量表示法。
变量:使用关键字 short 来声明 short 型变量。例如:
short x = 12,y =123 ;
4、long 型
常量:long 型变量用后缀 L 来表示,例如108L(十进制)、07123L(八进制)、0x3ABCL(十六进制)。
变量:使用关键字 long 来声明 long 型变量。例如:
long width = 12L,height = 205L,length ;
(3)字符类型
常量:'A','b','?','9','好','\t'等,即用单引号括起来的Unicode表中的一个字符。
变量:使用关键字 char 来声明 char 型变量。例如:
char ch = 'A',home = '家' ;
char 型变量,内存分配两个字节,占16位,取值范围0----65535。
char x = 97 与 char x = 'a' 是相同的。
有些字符(如回车符)不能通过键盘输入到字符串或者程序中,这时需要使用转义字符常量来表示,常见的转义字符有 \n(换行)、\b(退格)、\t(水平制表)、\'(单引号)、\"(双引号)、\\(反斜线)等。
package Example_1;
public class Demo_1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
char ch1 = 'w',ch2 = '好';
int p1 = 32831,p2 = 30452;
System.out.println("\""+ch1+"\"的位置:"+(int)ch1);
System.out.println("\""+ch2+"\"的位置:"+(int)ch2);
System.out.println("第"+"p1"+"个位置上的字符是:"+(char)p1);
System.out.println("第"+"p2"+"个位置上的字符是:"+(char)p2);
}
}
运行程序显示如下
"w"的位置:119
"好"的位置:22909
第p1个位置上的字符是:耿
第p2个位置上的字符是:直
(4)浮点类型
1、float 型
常量:453.1542f、3223.565F
需要注意的是,常量后面必须要有后缀 f 或 F 。
变量:使用关键字 float 来声明 float 型变量。例如:
float x = 234.78f,tom = 21344.45F ;
float 变量在存储 float 型数据时保留8位有效数字,实际精度取决于具体数值。例如:
x = 12345.123456789f ,那么 x 实际值是12345.123046875(保留8位有效数字)
2、double 型
常量:2389.563d、45676.45
对于 double 变量,后面可以加后缀 d 或 D,但允许省略。
变量:使用关键字 double 来声明 double 型变量。例如:
double x = 23.6564,wi = 5434.54D ;
double 变量在存储 double 型数据的时保留16位有效数字,实际精度取决于具体数值。
这里我们继续对一些知识点进行解释和总结。
float 类型的数值有一个后缀 F,没有后缀 F 的浮点数值默认为 double 类型的。
整型值和布尔值之间不能进行相互转换。在 c++ 中,数值或指针可以代替 boolean 值。值 0 相当于布尔值 false,非 0 值相当于布尔值 true 。在 java 中则不是这样。因此,java 应用程序员不会遇到下述麻烦:
if(x=0)
在 c++ 中,这个测试可以编译执行,其值总是 false 。而在 java 中,这个测试不能通过编译,其原因是整数表达式 x = 0 不能转换为布尔值。
当把一些基本数据类型变量的值赋给另一种基本数据类型时,会涉及到数据转换。
在 java 中,将这些类型按精度从“低”到“高”排列为 byte、short、char、int、long、float、double。
当把级别低的变量的值赋给级别高的变量时,系统会自动完成数据类型的转换。例如:
float x = 100 ; 如果输出 x 的值,结果将会是 100.0 ;
当把级别高的变量的值赋给级别低的变量时,必须使用显式类型转换运算。例如:
int x = (int)34.124 ;
long y = (long) 56.24F ;
int z = (int) 1999L ;
但是应该注意的是,x , y , z 输出的值分别是34,56,1999,强制转换运算可能会导致精度的损失。
还应该注意的一点是, float x = 21.1 将导致语法错误,正确的做法是 float x = (float)21.1或float x = 21.1F。
package Example_1;
public class Demo_1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int c = 128;
long d = 77777;
float f = 2e3F;
double g = 3.14e-300;
double result = f*g;
System.out.println("f= "+f);
System.out.println("g= "+g);
System.out.println("result= "+result);
g = 1234.123456789;
c = (int)d;
f = (float)g; //导致精度的损失
System.out.println("c= "+c);
System.out.println("d= "+d);
System.out.println("f= "+f);
System.out.println("g= "+g);
}
}
运行结果是:
f= 2000.0
g= 3.14E-300
result= 6.28E-297
c= 77777
d= 77777
f= 1234.1234
g= 1234.123456789