【2】java常量与变量
标识符
标识符是用于给 Java 程序中变量、类、方法等命名的符号。
1)不能数字开头。标识符可以有字母、数字、下划线(_)和美元符($)组成;
2)标志符严格区分大小写;
3)标志符不能是Java关键字和保留字;
4)标志符的命名最好能反映出其作用
5)命名规则:
符合标识符命名规则,且要尽量简单并有意义。
类命名规则:采用大驼峰命名法或Pascal命名法,即类名只有一个单词的时候首字母大写,当类名由多个单词组成的时候,每个单词的首字母大写;
方法命名规则:采用用小驼峰命名法,即当方法名只有一个单词的时候首字母小写,当方法名由多个单词的组成的时候,第一个单词首字母小写,其余单词首字母大写;
变量命名规则:采用用小驼峰命名法,即当变量名只有一个单词的时候首字母小写,当变量名由多个单词的组成的时候,第一个单词首字母小写,其余单词首字母大写;
常量命名规则:采用大写字母加下划线的方式命名。
关键字
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
变量
java变量定义:在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
1)简单定义:用于存储数据的指定类型的元素;
2)变量的三个元素:变量类型、变量名和变量值;
数据类型
1基本数据类型
2引用数据类型
基本数据类型
1数值型
⑴整数类型:(byte short int long)
⑵浮点类型:(float double)
2字符型(char)
3布尔型(boolean) (只能为true和false,不能用0和1)
引用数据类型
1类(class)
2接口(interface)
3数组
基本数据类型占用字节
1. byte 字节型 1字节 =8个二进制位
2. short 短整型 2
3. int 整形 4 = 32个二进制位置
4. long 长整形 8 = 64个二进制位
5. float 单精度浮点 4
6. double 双精度浮点型 8
7. char 字符型 2
8. boolean 布尔型 1
整型字面值和变量声明(byte short int long)
1.进制表示
Java有三种表示整数的方法:十进制,八进制,十六进制
八进制:0开头,包括0-7,例如037 056
十进制:0开头,包括0-9
十六进制:0X或者0x开头,包括0-9数字,以及字母a-f,A-F,a表示10(如:0x12,0xabcf,0XABCFF)
2.变量声明
例:
int n; 声明整型变量n
long count; 声明长整型变量count
3.变量定义
int octal=037;//定义int类型变量存放在八进制数据
long longNumber=0xa2cdf3ffL;//定义一个存放十六进制的长整形数据
short shortNumber=123;//定义变量存放短整型数据
byte b=10;//定义变量存放byte类型数据
浮点型字面值(float double)
1.浮点型字面值默认情况下表示double(双精度浮点型)类型,也可以在值后加d或D
如:123.43d或123.43D
2.如表示float(单精度浮点型),则需要在字面值后面加f或F
如:23.4f或23.4F
2.浮点型案例
public class FloatDemo { public static void main(String[] args) { //定义一个单精度浮点型 float f = 1234.328f; System.out.println("f="+f); //定义一个双精度浮点型 double d = 3456.431; 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=3456.431 d1=123.0 d2=3456.431
字符型字面值(char)
1)字符型字面值用单引号内单个字符表示;
如 'a','b','$','@','看'
单引号中只能有一个字符
2)定义字符型变量:
char a = 'a' ; //把字符a的值赋值给变量a
char ch= 65; //输出 ch=A
3)char类型实际上是无符号16位整数类型,取值范围为0~65535;
字符类型和整型可以互相转换;
如果字面值超出char类型所表示的数据范围,需要进行强制类型转换,但是会造成精度丢失。
补充知识:
1)ASCII(美国标准信息交换代码),基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。 ASCII表示:使用7位或8位二进制组合来表示128或256种可能的字符 7位二进制数组合-标准ASCII,用来表示大小写字母、标点符号、美式英语中的控制字符等 8位二进制数组合(后128位)-扩展ASCII码,用来表示特殊符号,外来语言的字母等。
2)Unicode编码,称为统一码,万国码,目标是支持世界上所有的字符集。 Unicode表示法,在值的前面加上前缀\u: char c = '\u005d';
布尔类型和字符串常量
1.布尔类型字面值 布尔值只能定义为true和false
例:boolean b=true
2.字符串字面值 字符串不属于基本数据类型,它是类!
字符串字面值是双引号引起来的0个或多个字符(是允许双引号里面什么都不写的);
例:String s="";
字符串的关键字是:String
字符串可以定义为空!
字符串可以定义一个包含Unicode字符的字符串!
变量综合案例
转义字符:
\uxxxx ---- 四位16进制数所表示的字符
\' ---- 单引号字符
\" ---- 双引号字符
\\ ---- 反斜杠字符
\r ---- 回车
\n ---- 换行
\t ---- 制表符
\b ---- 退格
public class VarDemo { public static void main(String[] args) { //定义两个整型变量x,y // int x=0,y=0; int x,y; x = 3; y = 5; System.out.println("x="+x); System.out.println("y="+y); //关于换行的问题 System.out.print(""+x+'\t'+y+'\n'); // System.out.println(); System.out.print(x+","+y); System.out.println("\n\'"+x+"\'"); //定义一个汉字的字符 char ch = '王'; System.out.println(ch); // char 中文 = '中'; // 不建议中文使用变量名 // System.out.println(中文); //用科学计数法表示浮点型数据 double d = 1.23E5; float f = 1.23e5f; double d1 = .2; System.out.println("d="+d); System.out.println("f="+f); System.out.println("d1="+d1); } }
结果如下:
x=3 y=5 3 5 3,5 '3' 王 d=123000.0 f=123000.0 d1=0.2
数据类型转换
1)类型转换分为自动类型转换和强制类型转换,
例如:long var = 100000; 自动类型转换;
char ch = (char)65536; 强制类型转换;
2)自动类型转换顺序
byte->short->int->long char->int float->double
3)强制类型转换
定义:如果A类型的数据表示范围比B类型大,则将A类型的值赋值给B类型,需要强制类型转换。
格式:(数据类型)数值
实线可以直接转换,虚线可以转换,但是会丢失精度。
数据类型转换案例
public static void main(String[] args) { // 字符类型(char)和int类型之间的转换 char c=(char)65536; int n; n=c;//隐式类型转换 c=(char)n; //整型和浮点型的类型转换问题 int x=100; long y=x; x=(int)y; float f=100000000000000L; System.out.println("f="+f); float f1=1039482622266659L; System.out.println("f1="+f1); //运行结果 f=1.0E14 f1=1.03948261E15 }
常量(不能修改)
1)格式:final 数据类型 标识符 = 数值。
例:
final int N=6;
2)常量一经初始化就不可修改;
3)常量用大写字母和下划线表示
例:
定义圆周率 final double PI=3.14;
定义一个最小值 final double MIN_VALUE=0;
图:常量不可以修改,所以报错
注意:
java中字面值有时候也叫做常量,实际上字面值是常量和变量表示的数值
后面的学习中我们会把常量和字面值都叫做常量