大家好呀,良子今天又来啦,哈哈哈。今天呢,主要学习的是,变量,八大基础基础类型,类型的转换。下面进行详细笔记讲解,希望在复习的同时呢也能够帮助大家。
1、java中的变量:
定义:java中存数据的地方。
①变量的声明:创建你需要的变量,并对其命名(相当于大家去银行开个账户)
例子:int a;//声明一个整型变量,变量名为a
②变量的初始化:对创建的变量进行赋值 (相当于大家为自己的账户存款)
例子:a=0;//对变量进行赋值为0
int b=1;//创建变量b,并对变量赋值为1(这里相当于创建账户的同时,给账户存款)
int c; c=2;//先创建一个变量c 再为变量赋值为2(这里相当于先创建账户,再存款)
③变量的使用:对变量进行操作,运算等
注意事项:1、对变量的使用就是对变量的赋值进行使用(相当使用账户的钱)
2、使用变量之前必须对变量进行声明和初始化(没有账号,账号里面没钱就无法操作啦)
例子:int e=c+1;//先取出变量c的值,再+1
④变量的命名:给变量取名字(相当于我们给账户起名)
注意事项:1、只能包含字母、数字、_、$。
2、不能以数字开头
3、不能使用关键字(关键字就是java中已经存在的)
4、使用英文进行命名,不建议使用中文和拼音(中文拼音不够见名知意)
5、使用小驼峰命名法(第一个单词首字母小写,其他单词首字母大写)
2、八大基本数据类型:byte:整型(其他信息后期补充,老师没讲)
shoryt:整型(其他信息后期补充,老师没讲)
int:整型,4个字节,+-21亿
说明:①整数直接量默认为int类型,但是不能超出范围,若超出范围则发生便编译错误
例子:int a=250//声明一个int类型的变量,命名为a,将250赋值给a,此处250<+-21 亿,没有发生编译错误;
int b=3000000000//编译错误,原因:30亿自动默认为int类型,30亿>21亿,超出范围;
int c = 25.678; //编译错误,数据类型不匹配,25.678默认为double类型,不能将其赋值为c
②两整数相除,结果还是整数,小数位无条件舍弃(不会四舍五入)
例子: System.out.println(5/2); //2
System.out.println(2/5); //0
System.out.println(5/2.0); //2.5
③运算时若超出范围则会发生溢出,溢出不是错误,但是需要避免
例子 nt d = 2147483647; //int的最大值
d = d+1;
System.out.println(d); //-2147483648,发生溢出了
long:长整型,8个字节,范围大约是+-900万万亿
说明:①表示长整型直接量,需要在数字后面加上L或招l(建议加L,l太过像数字1)
例子:ong a = 125L; //125L为长整型直接量
long b = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
long c = 10000000000L; //100亿L为长整型直接量
long d = 24.678; //编译错误,数据类型不匹配
②运算时若有可能发生溢出,建议在第一个数字后面加上L、
long e = 1000000000*2*10L;
System.out.println(e); //200亿
long f = 1000000000*3*10L;
System.out.println(f); //不是300亿
long g = 1000000000L*3*10;
System.out.println(g); //300亿
float:浮点型(其他信息后期补充,老师没讲)
double:浮点型,8个字节,范围很大很大
说明:①小数直接量默认为double型,若是想表示float,则需要在数字后面加上F或者f
例子:double a = 3.14; //3.14为小数直接量,默认为double类型
float b = 3.14F; //3.14F为float型直接量
②不能精确表示数字,运算时可能会发生舍入误差,精确场合不能使用
例子:double c=3.0,d=2.9;
System.out.println(c-d); //0.10000000000000009,有可能发生舍入误差
boolean:布尔型,1个字节
说明:① 只能取值为true或false
例子: boolean a = true; //true为布尔型直接量
boolean b = false; //false为布尔型直接量
boolean c = 25; //编译错误,只能取值为true或false
char:字符型,2个字节
说明:①采用Unicode编码格式,一个字符对应一个码,表现形式为字符,可是实际上还是他对应的码int(0-65535)
②ASCII码:'a'=97 'A'=65 '0'=48
③字符型直接量需要放在单引号中,有且仅有一个
④特殊符号需要\来转义
例子:char c1='女';//字符女
char c2 = 'f'; //字符f
char c3 = '6'; //字符6
char c4 = '*'; //字符*
char c5 = 女; //编译错误,字符直接量必须放在单引号中
char c6 = ''; //编译错误,必须有字符
char c7 = '女性'; //编译错误,只能有1个字符
char c8 = 65; //0到65535
System.out.println(c8); //println()会依据c8的类型来输出
若c8为char类型,则以字符的形式来输出
若c8为int类型,则以数字的形式来输出
char c9 = '\\';
System.out.println(c9); //\
3、类型间的转换:
①类型从小到大依次为:byte<short<int<long<float<double<char
②两种放式:——自动/隐式转化:小类型转到大类型
——强制类型转换:大类型转到小类型
注意:强转可能发生精度丢失,或者溢出
例子:
nt a = 5;
long b = a; //自动/隐式类型转换
int c = (int)b; //强制类型转换
long d = 5; //自动类型转换
double e = 5; //自动类型转换
long f = 100000000000L;
int g = (int)f;
System.out.println(g); //1215752192,强转有可能溢出
double h = 25.978;
int i = (int)h;
System.out.println(i); //25,强转有可能丢失精度
③两点规则:——整数型直接量可以直接给byte,short,char赋值,但是不能够超出范围
——byte,short,char型参与运算时,自动转化为int 类型再运算
例子:
byte b1 = 5;
byte b2 = 6;
byte b3 = (byte)(b1+b2);
System.out.println(2+2); //4
System.out.println(2+'2'); //52,2加上'2'的码50
System.out.println('2'+'2'); //100,'2'的码50,加上'2'的码50
补充:
1. 命名法:
- 小驼峰命名法:第1个单词首字母小写,其余单词首字母大写---------变量名、方法名
- 帕斯卡命名法/大驼峰命名法:所有单词首字母都大写-------------------类
2. 内存换算:
1G=1024M(兆)
1M=1024KB(千字节)
1KB=1024B(字节)
1B=8Bit(位)
3. Unicode:万国码、统一码、通用码,是世界级通用的定长字符集