🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java基础语法 ## 一、变量 ### 1.1 标识符 * 命名规则:可以由字母、数字、下划线和美元符号组成,不能以数字开头。 * 标识符严格区分大小写 * 标识符不能是Java关键字和保留字 * 标识符的命名最好能反映其作用 ### 1.2 关键字 ![Java关键字](https://box.kancloud.cn/13851fda4e4d21852378d97d99f87652_1153x383.jpg) ### 1.3 变量 什么是变量? 三个元素:变量类型、变量名和变量值。 ![Java数据类型](https://box.kancloud.cn/248e1788e094b03083afe0baf11d8c17_556x343.jpg) 变量名的命名规则: * 满足标识符命名规则 * 符合驼峰式命名规范 * 尽量简单,做到见名知意 * 变量名的长度没有严格显示 类的命名规则: 满足Pascal命名法规范 ### 1.4 数据类型 ![Java数据类型](https://box.kancloud.cn/3f96db6abca272d1c2028a6b17abf105_1066x490.jpg) **按类型分为:** 基本数据类型、引用数据类型。 **按照作用范围分为:** 类级、对象实例级、方法级、块级 ![Java数据类型](https://box.kancloud.cn/3987038de0be7805a25c632a11ab1d4c_948x494.jpg) **整型字面值:** Java中有三种表示整数的方法:十进制、八进制、十六进制。 * 八进制:以0开头 * 十六进制:以0x或0X开头,包括0-9、A-F **浮点数字面值:** 浮点型字面值默认情况下表示double类型,也可以在值后加d或D。如表示float类型,则需要在字面值后加F或f。 ``` package webjust.org; public class FloatDemo { public static void main(String[] args) { // 定义一个单精度浮点型变量,存放1234.328 float f = 1234.328f; System.out.println("f=" + f); // 定义一个双精度浮点型变量,存放5623.465 double d = 5623.464; System.out.println("d=" + d); // 将整型赋值给浮点型 double d1 = 123; System.out.println("d1=" + d1); // 变量间的赋值 double d2 = d; System.out.println("d2=" + d2); /* f=1234.328 d=5623.464 d1=123.0 d2=5623.464 */ } } ``` **字符型字面值:** 字符型字面值用单引号内的单个字符表示。 ASCII码: * ASCII 美国标准信息交换代码 * 基于拉丁字母的一套电脑编码系统 * 主要用于显示现代英语和其他西欧语言 * 使用7位或8位二进制数组合来表示128或256种可能的字符 ``` package webjust.org; public class CharDemo { public static void main(String[] args) { // 定义一个字符变量存放字符'a' char a = 'a'; char ch = 65; char ch2 = 65535; // 如果字面值超出了char类型所表示的数据范围,需要进行强制数据类型转换 char ch3 = (char) 65536; System.out.println(a); // a System.out.println(ch); // A System.out.println(ch2); System.out.println(ch3); char c = '\u005d'; System.out.println("c=" + c); // c=] } } ``` Unicode编码: Unicode编码的目标是支持世界上所有的字符集。 Unicode表示法,在值前加前缀 `\u`。 ### 1.5 变量声明 ``` 格式:数据类型 变量名; ``` 赋值: * 使用 `=` 运算符进行赋值。 * `=` 叫做赋值运算符,将运算符右边的值赋给左边的变量。 * 可以在定义变量的同时给变量赋值,即变量的初始化。 ### 1.6 局部变量的存储方式 基本数据类型变量存储在内存的“栈”上。 ![Java局部变量的存储方式](https://box.kancloud.cn/e42b4f368e672c0bb0eec017fd20063e_927x523.jpg) ### 1.7 类型转换 类型转换分为自动类型转换和强制类型转换。 **自动类型转换**又叫隐式类型转换。 图:自动类型转换顺序 ![Java自动类型转换顺序](https://box.kancloud.cn/c2548be7cfcead725aee2a4f86732160_1082x497.jpg) **强制类型转换**:如果A类型的数据表示范围比B类型大,则将A类型的值赋值给B类型,需要强制类型转换。 格式:`(数据类型)数值` ``` package webjust.org; public class TypeExchange { public static void main(String[] args) { // char类型和int类型之间的转换 char c = (char) 65535; int n; n = c; // 隐式类型转换 System.out.println(c); System.out.println(n); // 整型和浮点型类型之间的转换 int x = 100; long y = x; x = (int) y; float f = 100000000000000L; System.out.println("f=" + f); //f=1.0E14 // 自动类型转换出现数据丢失问题 float f1 = 134238877665544L; System.out.println("f1=" + f1); // f1=1.34238876E14 } } ``` ### 1.8 常量 * 使用final关键字定义常量; * 常量的值不能被修改; * 常量的名称为大写; ``` package webjust.org; public class FinalDemo { public static void main(String[] args) { int m = 10; final int n = 1; m = 20; // n = 2; //语法错误 final double PI = 3.1415926; final double MIN_VALUE = 0; } } ``` ## 二、运算符