标识符与关键字
标识符 以及 标识符的命名规则
补充知识:单个字母、数字、符号等 就叫 一个 字符,双引号引起来的 叫做 字符集就叫 字符串;
- 标识符可以由 字母、数字、下划线_、美元符号$ 组成,不能以数字开头
- 标识符 严格区分大小写
- 标识符不能是 java关键字 和 保留字
- eclipse编辑器中,紫色的都是关键字,比如:package、public、class、static、void等
- 标识符的命名最好能反映出其作用
- 标识符通常是指 类名、变量名、方法名等、它们都要满足标识符的命名规则
关键字
保留字(现在不使用,以后可能会使用):goto
变量的概念与数据类型
-
变量的概念 :
- 程序当中 数据的临时存放场所,可以帮我们解决 数据存储问题,而变量是存储到内存当中的。在java中,我们通过三个元素描述变量——变量类型、变量名、变量值。
- 变量的三个元素:变量类型、变量名、变量值。
- 变量的类比:
-
变量的命名规则:
- 满足标识符 命名规则
- 符合驼峰命名规范
- 尽量简单,做到见名知意
- 变量名的长度没有限制(java中)
-
类的命名规则
- 满足 pascal 命名规范(帕斯卡命名规范)
- 帕斯卡命名规范:
- 每个单词首字母都要大写,eg:HelloWorld
- 帕斯卡命名规范:
- 满足 pascal 命名规范(帕斯卡命名规范)
-
数据类型
-
-
基本数据类型:
- 数值型
- 整数类型
- 字节型 byte 字节1
- 短整型 short 字节2
- 整形 int 字节4
- 长整型 long 字节8(最大范围)
- 浮点类型
- 单精度浮点型 float 字节4
- 双精度浮点型 double 字节8(最大范围)
- 整数类型
- 字符型(char) 字节2
- 布尔型(Boolean) 字节1
- 数值型
-
引用数据类型:
- 类(class)、接口(interface)、数组
-
-
数据类型的字面值及变量定义
-
字面值
- 字面值其实就是常量的一种
- 整形字面值:123、023、0x1357、0x3c、0x1abcL
- 赋值
-
int octal = 037; // 定义int类型变量存放八进制数据 long longNumber = 0xa2cdf3ffL; // 定义变量存放十六进制长整形数据 short shortNumber = 123; // 定义变量存放短整型数据 byte b = 10; // 定义变量存放byte类型数据
-
int n; n=3;
或者写作:
int n = 3;
变量的定义:
- eg:
- “=” 叫做赋值运算符,讲运算符右边的值 赋给 左边的变量
- 使用 “=” 运算符 进行赋值
-
-
变量声明
- eg: long count; // 声明长整型变量 count
- eg:int n; // 声明 整形变量n
- 格式: 数据类型 变量名;
- ps: 字面值就是常量
- 十六进制:以0x或者0X开头,包括0-9的数字,及字母a-f,A-F
- 如: 0x12,0xabcf、0XABCFF
- a表示10,以此类推
- 八进制:以0开头,包括0-7的数字,如:037、056、
- java中有三种表示整数的方法:十进制、八进制、十六进制
- L表示 长整型
-
浮点型字面值
- 浮点型字面值默认情况下 表示double类型,也可以在之后加 d或D
- 如: 123.43d 或 123.43D // 其实就是double 的首字母
- 如果想表示 单精度的浮点型(float类型),则需要在字面值后面加 f 或 F
- 如 :23.4f 或 23.4F // 其实就是float的首字母
- 小结:不加或者加d/D 就是 double,加 f/F 就是 float
-
public class FloatDemo { public static void main(String[] args) { // 定义一个 单精度浮点型变量,存放 1234.328 float f = 123.328f; System.out.println("f="+f); // f=123.328 double d = 5623.464; System.out.println("d="+d); // d=5623.464 double d1 = 123; System.out.println("d1="+d1); // d1=123.0 // 变量间的赋值 double d2 = d; System.out.println("d2="+d2); } }
- 浮点型字面值默认情况下 表示double类型,也可以在之后加 d或D
- 赋值
-
基本数据类型 变量的存储
- 变量 按照 数据类型分为 基本数据类型 和 引用数据类型
- 引用数据类型包括 数组 和 类 等
- 类定义的变量又叫对象
- 变量 按照作用范围分为:类级、对象实例级别、方法级、块级
- 方法级变量 又叫做 局部变量
- 基本数据类型变量 存储在 栈中,eg:
-
- 变量 按照 数据类型分为 基本数据类型 和 引用数据类型
-
字符型字面值
-
用单引号 包住的 单个字符表示
-
比如: 'a', 'b', '$'
-
ps:单引号中必须只有一个字符!
-
定义: char a = 'a';
-
public class CharDemo { public static void main(String[] args) { // 定义一个变量村发放字符’a‘ char a = 'a'; System.out.println("a="+a); // a=a char ch1 = 65; System.out.println("ch1="+ch1); // ch1=A char ch2 = 65535; // 如果 字面值超出 char类型所表示的数据范围,需要进行强制类型转换 char ch3 = (char)65536; System.out.println("ch2="+ch2); // ch2=? System.out.println("ch3="+ch3); // ch3= } }
-
ASCII码:美国标准信息交换代码
-
基于拉丁字母的一套电脑编码系统
-
主要用于显示现在英语和其它西欧语言
-
-
ASCII码表示
-
使用7位或者8位二进制数组合来表示128种和256种 可能的字符
-
七位二进制数组合——标准ASCII码
-
标准ASCII码表示 大小写字母、标点符号、美式英语中的控制字符等
-
-
八位二进制数组合——扩展ASCII码(后128位)
-
后128位 主要表示 一些 特俗字符、外来语言的字母等
-
-
标准ASCII码:(0-127)
-
0-32 控制字符
-
33-47 英文标点符号
-
48-57 数字0-9
-
58-64 其它标点符号
-
65-90 26个大写英文字母
-
91-96 其它标点符号
-
97-122 26个小写英文字母
-
123-126 其它标点符号
-
127 del 删除控制符
-
-
-
-
-
Unicode编码
-
ASCII不能表示中文,如果想表示中文就需要用Unicode编码
-
Unicode编码又称为 统一码、万国码
-
Unicode编码的目标——支持世界上所有的字符集
-
eg: char c = '\u005d'; // 00 开头是 十六进制 表示
-
Unicode表示发,在值的前面加 \u
-
-
-
布尔类型字面值
- 布尔值只能定义为 true 和 false
- 其它语言中可能会定义为 1和0,但在java中是不允许的
- 定义: boolean b = true;
-
字符串字面值
- 双引号 引起来的0个 或 多个字符。 // 也就是说可以什么都不写 “”
- 定义: String s1 = "";
- 小结:单引号 就是 字符,双引号 就是 字符串;
-
public class StringDemo { public static void main(String[] args) { String s1 = ""; System.out.println("s1="+s1); // s1= String s2 = "\u005d"; System.out.println("s2="+s2); // s2=] String s3 = "\u005d\u005b"; System.out.println("s3="+s3); // s3=][ String s4 = " 你 好 "; // 空格也是字符 System.out.println("s4="+s4); // s4= 你 好 } }
-
转义字符
- 换行的方法:
- 方法1:System.out.println();
- 方法2: "\n"
- eg:shu
public class VarDemo { public static void main(String[] args) { // TODO Auto-generated method stub // int x = 0,y=0; // 这种形式是正确的 int x,y; x = 3;y = 5; System.out.println("x="+x); System.out.println("y="+y); // 关于换行问题 System.out.println("x="+x); System.out.println(); // 换行 System.out.println("y="+y); System.out.println("x="+x+"\ny="+y); // 定义一个汉字的字符 char ch='好'; System.out.println("ch="+ch); // 用科学计数法表示浮点型数据 double d = 1.23E5; // 表示 1.23 * 10的5次方 双精度浮点型 float f = 1.23e5f; // 表示 1.23 * 10的5次方 单精度浮点型 double d1 = .2; // 表示 0.2 System.out.println("d="+d+"\nf="+f+"\nd1="+d1); } }
数据类型转换
- 分为自动类型转换 和 强制类型转换
- 自动类型转换
- long n = 235; // 把 int 类型数据 赋值给 长整型变量n
- 自动类型转换顺序(隐式转换)
-
实线表示:无信息丢失的数据类型转换
-
虚线表示:可能在转换时,出现精度丢失
- 强制类型转换
- 如果A类型的数据表示范围比B类型大,则将A类型的值赋值给B类型,需要强制类型转换
- 变量类型有它的范围,如果超出该范围就会报错,这时候就需要对变量进行强制类型转换,让值回到范围内,从而解决报错
- 如:
double d = 123.4; float f = (float)d;
eg:
public class TypeExchange {
public static void main(String[] args) {
// char 类型 和 int 类型 之间的 转换
char c = (char)65536;
int n;
n=c; // 隐式转换
//c=n; // 报错,需要进行强制类型转换
c=(char)n;
// 整形和浮点型的类型转换问题
int x = 100;
long y=x;
x=(int)y; // 进行强制转换,y是长整型,转成整形会丢失数据
float f = 100000000000000L;
System.out.println("f="+f);
float f1 = 103948583923948L;
System.out.println("f1="+f1);
}
}
常量
- final int n = 5;
- 定义常量关键字 final
- 常量不能变化的量,不可修改的量
- 常量的命名规则——用大写字母表示
-
int m=5; final int N=6; m=10; final double PI=3.14159; final double MIN_VALUE=0;