第2天
1.变量:用于存放数据,通常变量指代词
1)声明:说明数据的类型(开户)
int a;
int b;
int a,b;(a和b数据类型必须一样)
2)初始化:第一次赋值(存钱)
int a=250;
int a;
a=250;
3)访问/使用----对变量中的值进行存取/计算(取钱)
3.1)对变量的操作就是对它所存的那个数的操作
int a=5;
int b=a+10;
a=a+10;//在a本身基础之上自增了10
System.out.println("b");//加引号,原样输出
System.out.println(b);//不加引号,计算机默认为变量,输出变量的值
3.2)变量的操作必须与数据类型匹配
3.3)变量在使用之前必须声明并初始化(取钱之前必须先开户并存钱)
4)命名规则
4.1)只能包含字母,数字,_和$,并且不能以数字开头
4.2)严格区分大小写
4.3)不能使用关键字
4.4)可以中文命名,但不建议;
int age;//建议英文的见名知意
int score,myScore,myJavaScore;//建议驼峰命名法
补充:
包名全都是小写字母组成
类名首字母必须大写
变量名首字母必须小写
2.基本数据类型共8种(4大类——整数,浮点,字符,布尔)
1)int:整型,范围在-21亿到21亿,占用4个字节(32位)
1.1)整数直接量默认为int型,但不能超范围,超范围则编译错误
1.2)两个整数相除,结果还是整数,小数位无条件舍去
1.3)整数运算时若超出范围,则发生溢出,溢出时需要避免的
int a=10000000000;//直接量超范围编译错误
int b=1000000000*10;//运算时超范围则溢出
2)long:长整型,范围很大很大很大,占用8个字节(64位)
2.1)长整型直接量需在数字后加L
2.2)运算时有可能溢出,建议在第1个数字后加L
2.3)存储当前日期和时间(用于计时操作)
System.currentTimeMillis()用于获取自 1970.1.1零时到此时此刻的毫秒数
BigInteger:范围无穷大(非基本数据类型)
3)double:浮点型,装小数,占用8个字节(64位)
3.1)浮点数直接量默认为double型,表示float需在数字后加f或F
3.2)double与float在运算时,有可能会出现舍入误差,精确运算场合不能使用
BigDecimal:也是存小数,但不存在运算误差,用于精确运算
4)boolean:布尔型,只能装true和false,占用1个字节(8位)
5)char:字符型,只能装单个字符(包括空格符),占用2个字节(16位)
5.1)采用Unicode字符集编码(世界级通用),一个字符对应一个码(0~65535之间)
表现的形式时字符char,但本质上是int
'a'--97 'A'--65 '0'--48)
5.2)字符型直接量需放在单引号中,并且只有一个,不允许空字符
5.3)特殊符号需通过\来转义(例如单引号:char ch='\'';)
\n表示换行 \r表示回车
3.基本类型间的转换
基本类型从小到大依次为:
byte,short/char,int,long,float,double
1)两点方式:
1.1)自动类型转换:小类型到大类型
1.2)强制类型转换:大类型到小类型(强转有可能发生溢出或丢失精度)
语法:(需要转换成的类型)变量
2)两点规则:
2.1)整数直接量可以直接赋值给byte,short,char,但不能超范围
2.2)byte,short,char型数据参与运算时,先一律转换为int再运算,结果为int
4.Scanner的用法:(接收用户输入数据)
1)在package下导入包:
import java.until.Scanner;
2)在main中:
Scanner scan=new Scanner(System.in);
3)在第2步之下:
int age=scan.nextInt();
课后练习:(写在day03包中)
1)创建类AgeRange,要求:
2)创建类LeapYear,要求:
3)创建类Casher,完成课后作业第9题
4)练习小代码:
4.1)变量一段
4.2)int/long/double一段
4.3)boolean/char一段
4.4)基本类型间的一段