Java语言的基本要素----标识符
(1)程序员对程序中的各个元素加以命名时使用的命名记号称为标识符
包括:类名、变量名、常量名、方法名……
(2)Java语言中,标识符是以字母,下划线(_),美元符,开始的一个字符序列,后面可以跟字母,下划线,美元符,数字
(3)合法的标识符
identifier userName User_Name _sys_value $change
(4)非法的标识符
2mail room# class
Java语言的关键字
(1)Java中一些赋以特定的含义,用做专门用途的字符串称为关键字
(2)所有Java关键字都是小写英文
(3)goto和const虽然从未使用,但也被作为Java关键字保留
Java数据类型划分
输出格式控制符
输出控制符 | 针对的数据类型 |
%d | int, long int, short, byte |
%x, %X,%#x,%#X | int, long int |
%c | char |
%f | float, double |
%s | String |
注意:在java中没有%ld和%lf,比如float和double都用%f输出,这是与C/C++不同的
int i = 47;
System.out.printf("%d\n", i); // 47
System.out.printf("%x\n", i); // 2f
System.out.printf("%#x\n", i); // 0x2f
System.out.printf("%X\n", i); // 2F
System.out.printf("%#X\n", i); // 0x2F
常量—整型常量
(1)整型常量
十进制(12),十六进制(0x12),八进制(012)
一个常量整数默认是int类型,如果数字过大,则必须的在末尾加L,否则会出错!
比如:long i = 234234294728474859473; // error
编译报错,提示数字过大,但可以改为:
long i = 234234294728474859473L ;就可以了
常量 — 浮点常量
一个实数默认是认为double类型,如果希望一个实数是float类型,可以在数字后面加f或F
将一个double类型数值赋给float类型变量,编译会出错
比如:float x = 2.2; // error
float x = 2.2f; // OK
常量 — 字符常量
字符常量:
必须用单引号扣起来
Java中字符和字符串都用Unicode编码表示
在Unicode编码中一个字符占两个字节
特殊字符的常量表示法
名称 | 字符 |
反斜线 | ‘\’ |
退格 | ‘\b’ |
回车 | ‘’\r |
制表符 | ‘\t’ |
换行 | ‘\n’ |
单引号 | ‘’’ |
char ch1 = '中';
char ch2 = 'u4e2d'; // Unicode码
System.out.print("%c %c\n", ch1, ch2); // 中 中
不同类型变量存储范围
类型 | 占用存储空间 | 表示范围 |
byte | 1字节 | -128~127 |
short | 2字节 | -2^15~2 ^ 15 -1 |
int | 4字节 | -2^31~2 ^ 31 -1 |
long | 8字节 | -2^63~2 ^ 63 -1 |
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
数据类型的转化
(1)不能对boolean类型进行类型转换
(2)把容量大的类型转换为容量小的类型时必须使用强制类型转换
(3)整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为统一类型,然后进行运算,转换从低级到高级:
低--------------------------------------------------------------->高
byte ----> char —> int —> long —> folat —> double
byte b = 10;
int i = 6;
i = b; // OK
// b = i; // error丢失数据
b = (byte)i; // OK 强制类型转化
float x;
//x = 10*0.2; // error 10*0.2 是double类型
x = 10*0.2f; //OK
System.out.printf(b + ", "+ i + ", " + x); //
算数运算符(+)
(1)+ 可以表示数值相加
(2)+ 可以表示字符串的联接,如:“123” + “abc” 的结果是 “123abc”
(3)+ 还能把非字符串转换成字符串,如:“x”+123的结果是"x123"
(4)分析System.out.println(‘a’+1)与System.out.println("" + ‘a’+1)的区别
字符a的Unicode码是97,所有第一个语句输出98,然而第二个语句是与一个空字符串用加号联接,所以输出的是字符串a1
除法运算符(/)
(1)除法的运算结果和运算对象的数据类型有关,若两个都是int,则商就是int,若商有小数,则截取小数部分,若两个对象中有一个或两个都是浮点类型数据,则商也是浮点类型,不截取小数部分;
16/5=3 16/5.0 = 3.2000 -13/4 = -4 -13/-3=4 3/5 = 0 5/3 =1