1 : 什么是变量
变量的定义是: 用来命名一个数据的标识符
1949 这是一个数字,代表某年
如果要命名这个数字,在java里就会写成:
int year = 1949;
int 是数据类型,表示是整数
year 是一个标识符
= 是赋值操作符
1949 是一个数字类型的值
; 表示该行结束
year 这个标识符就是一个变量,它代表1949这个值
public class HelloWorld {
public static void main(String[] args) {
int year = 1949;
}
}
2 : 基本变量类型
一个变量的类型,决定了该变量可以包含什么样的值。
Java中有八种基本类型,都是Java语言预先定义好的,并且是关键字。
这八种基本类型分别是:
整型 (4种)
字符型 (1种)
浮点型 (2种)
布尔型(1种)
示例 1 : 整型
整型变量用于存放整数
byte
short
int
long
区别在于不同类型的整型,最大值,最小值不一样
如果试图给byte类型的变量赋予超出其范围的值,就会产生编译错误,这个时候就需要进行类型转换
public class HelloWorld{
public static void main(String[] args){
byte b = 1;
short s = 200;
int i = 300;
long l = 400;
/*如果试图给byte类型的变量赋予超出其范围的值,就会产生编译错误*/
byte b2 = 200;
}
}
示例 2 : 字符型
char类型用于存放一个字符,值用单引号'表示 (双引号表示字符串)
其长度和short一样,也是16位的
只能存放一个字符,超过一个字符就会产生编译错误
public class HelloWorld{
public static void main(String[] args){
char c = '中';
//char 只能存放一个字符,超过一个字符就会产生编译错误
char c2 = '中国'; //报错
char c3 = 'ab'; //报错
}
}
示例 3 : 浮点型
浮点数类型有两种
float 长度为32位
double 长度为64位
注意: 默认的小数值是double类型的
所以 float f = 54.321会出现编译错误,因为54.321的默认类型是 double,其类型 长度为64,超过了float的长度32
在数字后面加一个字母f,直接把该数字声明成float类型
float f2 = 54.321f,
这样就不会出错了
public class HelloWorld{
public static void main(String[] args){
double d = 123.45;
//该行会出现编译错误,因为54.321是double型的
float f = 54.321;
float f2 = 54.321f;
}
}
示例 4 : 布尔型
布尔型用于表示真假
其长度为1
boolean b1 = true;
boolean b2 = false;
分别代表真假
虽然布尔型真正存放的数据是0(false) 1(true)
但是,不能直接使用0 1 进行赋值
public class HelloWorld {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
// 虽然布尔型真正存放的数据是0(false) 1(true)
// 但是,不能直接使用0 1 进行赋值
boolean b3 = 1;
}
}
示例 5 : String类型
String类型其实并不是基本类型,但是它是如此广泛的被使用,常常被误以为是一种基本类型。
String类型是Immutable的,一旦创建就不能够被改变
public class HelloWorld {
public static void main(String[] args) {
String str = "Hello Java";
}
}
3 : 字面值
创建一个Hero对象会用到new关键字,但是给一个基本类型变量赋值却不是用new. 因为基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象。
给基本类型的变量赋值的方式叫做 字面值,如下所例:
float hp = 313f;
int armor = 24;
示例 1 : 整数字面值
当以l或者L结尾的时候,一个整数字面值是long类型,否则就是int类型。 建议使用大写的L而非小写的l,因为容易和1混淆。
byte,short,int和long的值都可以通过int类型的字面值来创建。整数的字面值可以用如下四种进制来表示:
十进制: 基 10, 包含从0-9的数字,平常用的就是这种
十六进制: 基 16, 包含从0-9的数字,和从A-F的字母。
八进制: 基 8, 包含从0-7的数字
二进制: 基 2, 包含0和1。(从 JAVA7开始就可以创建 二进制的字面值了)
public class HelloWorld {
public static void main(String[] args) {
long val = 26L; //以L结尾的字面值表示long型
int decVal = 26; //默认就是int型
int hexVal = 0x1a; //16进制
int oxVal = 032; //8进制
int binVal = 0b11010; //2进制
System.out.println(oxVal);
}
}
示例 2 : 浮点数字面值
当以f或者F结尾的时候,就表示一个float类型的浮点数,否则就是double类型(以d或者D结尾,写不写都可以)。
浮点数还可以用E或者e表示(科学计数法)
e2表示10的二次方,即100
1.234e2 = 1.234x100
public class HelloWorld {
public static void main(String[] args) {
float f1 = 123.4F;// 以F结尾的字面值表示float类型
double d1 = 123.4;// 默认就是double类型
double d2 = 1.234e2;// 科学计数法表示double
}
}
示例 3 : 字符和字符串字面值
字符的字面值放在单引号中
字符串的字面值放在双引号中
需要注意的是,\表示转义,比如需要表示制表符,回车换行,双引号等就需要用 \t \r \n \" 的方式进行
public class HelloWorld {
public static void main(String[] args) {
String name = "盖伦";
char a= 'c';
//以下是转义字符
char tab = '\t'; //制表符
char carriageReturn = '\r'; //回车
char newLine = '\n'; //换行
char doubleQuote = '\"'; //双引号
char singleQuote = '\''; //单引号
char backslash = '\\'; //反斜杠
}
}