1.变量:存数的
1)声明:----相当于在银行开了个帐户
int a; //声明一个整型的变量,名为a
int b,c,d; //声明三个整型的变量,名为b,c,d
2)初始化:----相当于给帐户存钱
int a = 250; //声明整型变量a并赋值为250
int a; //声明整型变量a
a = 250; //给变量a赋值为250
3)使用:----使用的是帐户里面的钱
3.1)对变量的使用就是对它所存的那个数的使用
int a = 5;
int b = a+10; //取出a的值5,加10后,再赋值给变量b
System.out.println(b); //输出变量b的值15
System.out.println(“b”); //输出b,双引号中的原样输出
a = a+10; //取出a的值5,加10后,再赋值给a
//在a本身基础之上增10
System.out.println(a); //15
3.2)变量在用之前必须声明并初始化
//System.out.println(m); //编译错误,变量m未声明
int m;
//System.out.println(m); //编译错误,变量m未初始化
4)命名:
4.1)只能包含字母、数字、_和$符,并且不能以数字开头
4.2)严格区分大小写
4.3)不能使用关键字
4.4)允许中文命名,但不建议,
建议"英文的见名知意"、“驼峰命名法”
2.八种基本数据类型:byte,short,int,long,float,double,boolean,char
1)int:整型,4个字节,负的2的31次方到正的2的31次方减1;
1.1)整数直接量默认为int类型,但不能超范围,若超范围则编译错误
1.2)两个整数相除,结果还是整数,小数位无条件舍弃(不会四舍五入)
1.3)运算时若超出范围,会发生溢出(溢出不是错误,但需要避免)
2)long:长整型,8个字节,很大很大很大
2.1)长整型直接量需要数字后加L或l(建议用L)
2.2)运算时若有可能溢出,建议在第1个数字后加L或l
3)double:浮点型,8个字节,很大很大很大
3.1)浮点数直接量默认为double类型,表示float需在数字后加F或f
3.2)double和float型数据运算时,有可能出现舍入误差
4)boolean:布尔型,1个字节
5)char:字符型,2个字节
5.1)采用Unicode字符集编码格式,每个字符都有一个对应的码,
表现的形式为字符char,但本质上是码int(0到65535之间)
(ASCII码: ‘a’–97 ‘A’–65 ‘0’–48)
5.2)字符直接量必须放在单引号中,只能有一个
5.3)特殊符号需要通过\来转义
3.类型间的转换:
数据类型从小到大依次为:
byte,short,int,long,float,double
char,
1)两种方式:
1.1)自动/隐式类型转换:小类型到大类型
1.2)强制类型转换:大类型到小类型
语法: (要转换成为的数据类型)变量
强转有可能溢出或丢失精度
2)两点规则:
2.1)整数直接量可以直接赋值给byte,short,char,
但不能超出范围
2.2)byte,short,char型数据参与运算时,
系统会一律先将其转换为int再运算
package Test;//声明包Test
//数据类型的演示
public class DataTypeDemo {
public static void main(String[] args) {
//类型间的转换:
int a = 5;
long b = a; //自动类型转换
int c = (int)b; //强制类型转换
long d = 5; //自动类型转换
double e = 5; //自动类型转换(e的值为5.0)
long f = 10000000000L;
int g = (int)f;
System.out.println(g); //强转有可能发生溢出
double h = 56.987;
int i = (int)h;
System.out.println(i); //56,强转有可能丢失精度
/*
2.1)整数直接量可以直接赋值给byte,short,char,
但不能超出范围
2.2)byte,short,char型数据参与运算时,
系统会一律先将其转换为int再运算
*/
byte b1 = 5;
byte b2 = 6;
//byte b3 = b1+b2; //编译错误,运算时将b1和b2转成int类型,
//两个int相加,结果还是int类型,
//将int赋值给byte,因为不是直接量,
//所以需要强转
byte b4 = (byte)(b1+b2); //强转的是运算之后的int结果
/*
//1)int:整型,4个字节,-21个多亿到21个多亿
int a = 250; //250为整数直接量,默认为int类型
//int b = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
//int c = 25.678; //编译错误,整型变量中只能装整数
System.out.println(5/2); //2
System.out.println(2/5); //0
System.out.println(5/2.0); //2.5
int d = 2147483647; //int的最大值
d = d+1;
System.out.println(d); //溢出了,-2147483648(int的最小值)
//2)long:长整型,8个字节,很大很大很大
//long e = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
long f = 10000000000L; //长整型直接量需在数字后加L或l
long g = 1000000000*2*10L;
System.out.println(g); //200亿 //练习+下课----3:00继续
long h = 1000000000*3*10L;
System.out.println(h); //溢出了
long i = 1000000000L*3*10;
System.out.println(i); //300亿,有可能溢出时建议在第1个数字后加L
*/
/*
//3)double:浮点型,8个字节,很大很大很大
double a = 3.14; //3.14为浮点型直接量,默认为double型
double b=3.0,c=2.9;
System.out.println(b-c); //0.10000000000000009-舍入误差
//4)boolean:布尔型,1个字节
boolean d = true; //true为布尔型直接量
boolean e = false; //false为布尔型直接量
//boolean f = 25; //编译错误,布尔型只能取值为true或false
*/
/*
//5)char:字符型,2个字节
char c1 = '女'; //字符女
char c2 = 'f'; //字符f
char c3 = '6'; //字符6
char c4 = ' '; //空格符
//char c5 = 女; //编译错误,字符型直接量必须放在单引号中
//char c6 = ''; //编译错误,必须有字符
//char c7 = '女性'; //编译错误,只能有一个字符
char c8 = 65; //0到65535之间
System.out.println(c8); //A,输出时会按变量的数据类型来
char c9 = '\'';
System.out.println(c9); //'
*/
}
}