文档目录
一、变量
1、变量定义
在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
变量类型 变量名 [=初始值];
2、变量数据类型
Java有8种基本数据类型:byte、short、int、long、float、double、char、boolean。
(1)整数类型变量
(2)浮点数类型变量
(3)字符类型变量
- 字符类型变量用于存储一个单一字符,在Java中用char表示
- Java中每个char类型的字符变量都会占用2个字节
(4)布尔类型变量
布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。
3、变量类型转换
把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。
(1)自动类型转换
- 自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。当把一个类型取值范围小的数值直接赋给另一个取值范围大的数据类型变量时,系统就会进行自动类型转换
- Java中支持不同数据类型之间的自动转换
(2)强制类型转换
- 强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换
- 在对变量进行强制类型转换时,会发生取值范围较大的数据类型向取值范围较小的数据类型的转换情况,如将一个int类型的数转为byte类型,这样做极容易造成数据精度的丢失
(3)表达式类型自动提升
表达式是指由变量和运算符组成的一个算式。变量在表达式中进行运算时,也有可能发生自动类型转换,这就是表达式数据类型的自动提升,如byte
、short
和char
类型的变量在运算期间类型会自动提升为int
,然后再进行运算。
(4)强制类型转换格式
目标类型 变量名 = (目标类型)值;
4、变量作用域
变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。
- 变量作用域的三个级别:代码块级别——>方法级别——>类级别
- 低级别范围可以访问高级别变量,反之则不能访问,编译器会报错
二、常量
常量就是在程序中固定不变的值,是不能改变的数据。在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。
1、字面常量
(1)整型常量
- 二进制:由数字0和1 组成的数字序列。在JDK 7以后,允许使用二进制字面值来表示整数,此时二进制数值前面要以0b或0B开头,目的是为了和十进制进行区分,如:0b01101100、0B10110101
- 八进制:以0开头,并且其后由0 ~7范围(包括0和7)内的整数组成的数字序列,如:0342
- 十进制:由数字0~9范围(包括0和9)内的整数组成的数字序列。如:198
- 十六进制:以0x或者0X开头,并且其后由0-9、A-F(包括0和9、A和F)组成的字符序列,如:0x25AF
(2)浮点型常量
- 浮点数常量就是在数学中用到的小数,分为float单精度浮点数和double双精度浮点数两种类型
- 单精度浮点数后面以
F
或f
结尾,而双精度浮点数则以D
或d
结尾。当然,在使用浮点数时也可以在结尾处不加任何后缀,此时Java虚拟机会将浮点数默认识别为double双精度浮点数
(3)字符常量
字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引号' '
引起来,它可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。
(4)字符串常量
字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号" "
引起来。
(5)布尔常量
布尔常量即布尔类型的两个值true和false,该常量用于区分一个条件的真假。
(6)null常量
null常量只有一个值null,表示对象的引用为空。
2、符号常量
Java符号常量,其实就是特殊的变量,也是固定不变的量,有且只能进行一次赋值。只需要在定义变量的语法基础上加上一个final关键字修饰即可。
- 符号常量定义格式:
final 常量类型 常量名 [= 初始值];
三、常见转义字符
- \r :表示回车,将光标定位到当前行的开头,不会跳到下一行。
- \n :表示换行,换到下一行的开头。
- \t :表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab键一样。
- \b :表示退格符号,就像键盘上的Backspace。
- \’ :表示单引号字符,表示字符的开始和结束,如果直接写单引号字符(’),程序会认为前两个是一对,会报错,因此需要使用转义(\’)。
- " :表示双引号字符,表示字符串的开始和结束,包含在字符串中的双引号需要转义,比如"he says,“thank you”."。
- \ :表示反斜杠转义字符,由于在Java代码中的斜杠(\)是转义符,因此需要表示字面意义上的\,就需要使用双斜杠\。
四、程序案例
1、常见变量类型
package net.xsp.lesson01;
import java.text.DecimalFormat;
/**
* 功能:测试基本数据类型
* 作者:xsping
* 日期:2019年3月14日
*/
public class TestDataTypes {
public static void main(String[] args) {
// 数值型变量
byte b = 127;
short s = 32767;
int i = 2147483647;
long l = 9223372036854775807L;
float f = 3.4028235E38f;
double d = 1.7976931348623157E308;
// 数值型变量范围
System.out.println(Integer.MAX_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println(Float.MAX_VALUE);
System.out.println(Double.MAX_VALUE);
// 字符型变量
char c1 = 'a';
char c2 = 'A';
int c1asc = c1;
int c2asc = c2;
System.out.println(c1 + "的ASCII:" + c1asc);
System.out.println(c2 + "的ASCII:" + c2asc);
//转义字符
System.out.println("你喜欢Java吗?\n那还用说!\n为什么喜欢呀?\nJava排名第一!");
System.out.println("张三\t\t李二\t\t王五");
// 布尔型变量
boolean b1 = true;
boolean b2 = false;
System.out.println("b1 = " + b1 + "\nb2 = " + b2);
// 符号常量
final double PI = 3.1415926;
// 浮点型
double r = 2;
double area = PI * r * r;
System.out.println("area = " + area);
System.out.println("area = " + String.format("%.2f", area));
double area1 = ((int) (area * 100 + 0.5)) / 100.0;
System.out.println("area = " + area1);
System.out.println("area = " + Math.round(area * 100) / 100.0);
DecimalFormat df = new DecimalFormat("#.##");
System.out.println("area = " + df.format(area));
int x, y, z;
x = y = z = 100;
System.out.println("x = " + x + "\ny = " + y + "\nz = " + z);
}
}