JavaEE - 02基础语法
(1)关键字与保留字
(1.1)关键字
被Java语言赋予了特殊含义,用作专门用途的字符串(单词);关键字所有字母都是小写。
定义数据类型的关键字: class interface enum byte short int long float double char boolean void
定义流程控制的关键字: if else switch case default while do for break continue return
定义访问权限修饰符的关键字: private protected public
(1.2)保留字
现有版本尚未使用,以后版本可能作为关键字使用。 goto const
(2)标识符
标识符: Java 对各种变量、方法和类等要素命名时使用的字符序列,称为标识符。
定义规则:
- 由26个英文字母大小写,0-9,_ 或 $ 组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能够包含关键字和保留字。
- Java严格区分大小写,长度无限制。
- 标识符不能包含空格。
命名规范: 见名知意
- 包名: 多单词组成时,所有字母都小写。 xxxyyyzzz
- 类名、接口名: 多单词组成时,所有单词的首字母大写 XxxYyyZzz
- 变量名、方法名: 多单词组成时, 第一个单词首字母小写,第二个单词开始每个单词首字母大写 xxxYyyZzz
- 常量名: 所有字母都大写。多单词时每个单词用下划线连接 XXX_YYY_ZZZ
(3)变量
(3.1)概念
变量: 内存中的一个存储区域。程序中最基本的存储单元。包含 变量类型、变量名、 存储的值。 格式: 变量类型 变量名 = 变量值;
- 变量必须先声明,后使用。使用变量名来访问这块区域的数据。变量未赋值,进行引用,编译报错。
- 变量的作用域,在其定义所在的一对{}内。变量只有在其作用域内才有效。同一作用域内,不能定义重名的变量。
(3.2)变量分类
> 数据类型(强类型语言)
- 基本数据类型(primitive type)
- 整数型(byte/short/int/long)
- 浮点型(float / double)
- 字符型(char)
- 布尔型(boolean)
- 引用数据类型(reference type)
- 类(class)
- 接口(interface)
- 数组(array)
> 声明位置
- 成员变量
- 实例变量(不以static修饰)
- 类变量(以static修饰)
- 局部变量
- 形参(方法、构造器中定义的变量)
- 方法局部变量(在方法内定义)
- 代码块局部变量(在代码块内定义)
(3.3)数据类型 - 整数类型
类型 | 占用存储空间 | 范围 |
byte | 1字节=8bit比特位 | -128 ~ 127 |
short | 2字节 | -2^15 ~ 2^15 - 1 |
int | 4字节 | -2^31 ~ 2^31 - 1(约21亿) |
long | 8字节 | -2^63 ~ 2^63 - 1 |
(3.4)数据类型 - 浮点型
Java浮点类型也有固定的范围和字符长度,不受具体操作系统的影响。
浮点型变量两种表示形式:
十进制数形式: 如 5.12 512.0f .512(必须有小数点)
科学计数法形式: 如 5.12e2 512E2 100E-2
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。 通常使用此类型。
Java的浮点型常量默认为double型, 声明float型常量,须后加'f'或'F'。
类型 | 占用存储空间 | 范围 |
单精度float | 4字节 | -3.403E38 ~ 3.403E38 |
双精度double | 8字节 | -1.798E308 ~ 1.798E308 |
(3.5)数据类型 - 字符型
(3.6)数据类型 - 布尔型
(3.7)基本数据类型转换
容量小的类型自动转换为容量大的数据类型。
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的数据类型,然后再进行计算。
byte,short,char 之间不会相互转换,他们三者在计算时首先转换为int类型。
boolean类型不能与其他数据类型运算。
当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值都将自动转化为字符串String类型。
(3.8)进制转换
二进制:
(4)运算符
运算符是一种特殊的符号,用以表示数据的运算、复制和比较等。
(4.1)算术运算符
(4.2)赋值运算符
(4.3)比较运算符
(4.4)逻辑运算符
(4.5)位运算符
(4.6)三元运算符
(5)程序流程控制
//"标记" int i = 7; boolean isSuShu = true; //byte b = 0; for(int j=2;j<i;j++){ if(i % j == 0){ isSuShu = false; //byte = 1; break; } } System.out.println(isSuShu ? i + "是素数" : i + "不是素数") //System.out.println(b == 0 ?i + "是素数" : i + "不是素数") //1不是素数 //内部循环 判断i是否为素数, //外部循环 循环i去做判断 for(int i = 2;i<=100;i++){ boolean isSuShu = true; for(int j=2;j<i;j++){ if(i % j == 0){ isSuShu = false; break; } } if(isSuShu){ System.out.println(i); } } //判断 8个换行 int count = 0; for(int i = 2;i<=100;i++){ boolean isSuShu = true; for(int j=2;j<i;j++){ if(i % j == 0){ isSuShu = false; break; } } if(isSuShu){ System.out.print(i + ""); count++; if(count % 8 == 0){ System.out.println(); } /* if(count == 8){ System.out.println(); count = 0; } */ } }