Java语法(关键字、标识符、变量、数据类型及其转换)
1.关键字
关键字
被java语言赋予了特殊含义,用作专门用途的字符串(单词)。 体现关键的地方的含义,都是事先定义好的。
特点
关键字中所有字母都为小写
保留字
可能在以后被用来作为关键字的单词。命名标记符时要避免使用这些保留字。
如:byValue 、cast 、future 、generic 、inner 、operator 、outer 、rest 、var 、goto 、const
2.标识符
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
凡是自己可以起名字的地方都叫标识符
规则:
- 仅由26个英文字母大小写,数字,_或$组成。
- 数字不可以开头
- 不可以单独使用关键字或保留字,但能包含
- Java中严格区分大小写,长度无限制
注意
起名尽量有意义,可以是中文但最好不要是中文
命名规范
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
- 常量名:所有单词都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
3.变量
概念:
- 内存中的一个存储区域
- 该区域有自己的名称(变量名)和类型(数据类型)
- Java中每个变量必须先声明,后使用
- 该区域的数据可以在同一类型范围内不断变化
注意:
- 变量的作用域:在一对{}中有效
- 初始化值
- 变量是通过使用变量名来访问这块区域的
变量定义的格式:
数据类型 变量名 = 变量的值; 如:int i = 1;
这里的 = 是赋值符号,将1赋给i
4.数据类型
①基本数据类型
基本数据类型包括8种类型:byte,short,int,long,float,double,char,boolean
数值型
数值型包括整数类型和浮点类型
整数类型(byte,short,int,long)
Java的整数常量默认为int型,声明long型常量须在后加‘l’或‘L’
如: long a = 3l;
bit是什么单位?
01001100,这个就是8bit=1字节
浮点类型(float,double)
Java的浮点型常量默认为double型,声明float型,须后加‘f’或‘F’
如 float f = 1.56f;
浮点型常量有两种表示形式:
- 十进制数形式:5.12 , 512.0f , .512 (必须有小数)
- 科学计数法:5.12e2 , 512E2 , 100E-2
字符型(char)
- 用英文的单引号括起来的单个的字母、数字、符号。
- 转义字符 ‘\’ 将之后的字符转变为特殊字符型常量
- char类型可以进行运算,因为它都有对应的Unicode码
char c1 = 'a';
char c2 = '1';
char c3 = '%';
char c4 = '\n';
char c5 = '\'';
布尔型(boolean)
一般用于流程控制,只允许取值 true 和 false ,无null。不可以用0和非0的整数替代false和true。
②引用数据类型
引用类型,都可以用null作为值,也就是说可以在初始化的时候赋值为null,用以表示这个引用类型变量中保存的地址为空。
类(class)
String类
字符串:就是由0到多个字符数字符号共同组成的一个串,这个串要用英文的双引号括起来
String类是一个典型的不可变类,创建出来就不可能被改变了。创建出的字符串将存放在数据区,保证字符串常量只有一个,不会产生多个副本。
hello的内存地址为0x2234,声明s0变量时给s0赋值hello实际上让s0变量引用hello的内存地址0x2234。再次声明时实际上也是让变量引用hello的内存地址。
5.数据类型转换
自动类型转换:
- 容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:byte,short,int,long,float,double
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据,然后再进行计算
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型
- 当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型
byte a = 3;//声明并初始化变量
short b = 27;
char c = 'A';
int d = 55;
float e = 5.5f;
double f = 9.98;
short g = a;//byte转换为short
System.out.println(g);//打印b的值
System.out.println(c);
int h = c;//char对应的ASCII值
System.out.println(h);
float i = d;//int转换为float
System.out.println(i);
System.out.println(a+b+c);//byte,short,char转换为int型
String str0 = "abc";
System.out.println(str0+12);//字符串和数值用+连接,将转换为字符串类型
运行结果:
练习:
强制类型转换
- 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(()),但肯造成精度降低或溢出。
- 通常,字符串不能直接转换为基本类型,但通过基本类型对呀的包装类则可以实现把字符串转换成基本类型
- boolean类型不可以转换为其它的数据类型
int m = 128;
byte n = (byte)m;
System.out.println(n);
运行结果为 : -128