第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)基本类型间的一段