变量
概念
- 内存中的一个储存区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的储存单元。包含变量类型、变量名和储存值。
变量的作用
- 用于在内存中保存数据
使用变量注意
- Java中每个变量必须先声明,后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一堆{}内
- 同一个作用域内,不能定义重名的变量
变量的类型
基本数据类型
- 数值型:整数类型(byte \ short \ int \ long)、浮点类型(float \ double)
- 字符型:char
- 布尔型:boolean
整型:
byte b1 = 127;//byte 范围为-128-127
//byte b2 = -129;//报错
//byte b3 = 128;//报错
short s1 = 128;
int b2 = 1234;
long l1 = 3254545L;
//long型变量后要加L或者l
System.out.println(b1);
System.out.println(b2);
System.out.println(s1);
System.out.println(l1);
浮点型:
浮点型变量默认为double型,声明float型常量,需后加‘ f ’或‘ F ’。
double d1 = 123.3; //不加f
float f1 = 12.3F; //必须加F或者f
System.out.println(d1+1);
System.out.println(f1+1);
字符型:
- 定义char型变量,通常使用一对 ’ ’
char a1 = 'a';
System.out.println(a1);
char c5 = '\n';
System.out.print("Hello" + c5);
System.out.println("Java");
布尔类型:
boolean bb1 = true;
//布尔型只能去两个值之一:true、false
//常常在条件判断、循环结构中使用
System.out.println(bb1);
Boolean isMarried = true;
if (isMarried) {
System.out.println("你就不能参加单身party了");
}else{
System.out.println("你可以参加单身party了");
}
引用数据类型
- 类(class)注:字符串是类类型
- 接口(interface)
- 数组( [ array ] )
自动类型提升运算
自动类型提升
- 当容量小的数据类型变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的类型。
提升顺序:(byte,char并列)
byte 、short、char-->int-->long-->float-->double
注意:byte、char、short 三种类型的变量做运算 结果输出为int
强制类型转换
强制类型转换:自动类型提升运算的逆运算
- 需要使用强转符:()
- 注意点:强制类型转换,可能导致精度损失
public class VariableText3 {
public static void main(String[] args){
double a1 = 12.9999;
int b1 = (int)a1;//强制转换成int,相当于取整,精度损失
System.out.println(b1);// b1 = 12
int s1 =128;
byte c1 = (byte)s1;
System.out.println(c1);// -128
}
}
注意:float型不加 f 会被转成int型
整型常量,默认为int型,
浮点型常量,默认为double型
String类型变量的使用
String类型变量的使用:
- String属于引用数据类型,翻译为:字符串
- 声明String类型变量时,使用一对“ ”
- String可以和8种基本数据类型变量做运算,且运算只能是连接运算。
public class StringTest {
public static void main(String[] args){
String s1 = "Hello World!";//字符串输出
String s2 = "";
//char s3 = '' //报错 String可以什么都不放,char类型必须放一个字符。
System.out.println(s2);
System.out.println(s1);
//***********************
int number = 1001;
String numberStr = "学号:";
String info = numberStr + number;//连接运算
System.out.println(info);
boolean b1 = true;
String b2 = numberStr + b1;//连接运算
System.out.println(b2);
char c = 'a';
int num = 10;
String str = "Hello";
System.out.println(c+num+str);//107Hello
System.out.println(c+str+num);//aHello10
System.out.println(c+(num+str));//a10Hello
System.out.println((c+num)+str);//107Hello
System.out.println(str+num+c);//Hello10a
进制
- 二进制(binary):0,1,满2进1,以0b或0B开头。
- 八进制(octal):0-7.满8进1,以数字0开头表示。
- 十进制(decimal):0-9,满10进1.
- 十六进制(hex):0-9及A-F,满16进1,以0x或0X开头表示,此处的A-F不区分大小写。