1. 变量
存数的,代词,指代它所存的数
1.1 声明:变量名、变量类型;变量使用之前必须进行声明、如果多个变量类型一样,可以在一条语句中声明,中间用逗号隔开;如下:
Int a;//声明一个整型的变量,名为a
Int b,c,d;//声明了三个整型变量,名为bcd
1.2 命名:规则:只能由字母、数字、下划线、$组成,首字符不能以数字开头,Java大小写敏感,不能使用java保留字和关键字(如:int; class; public; package; project; if; for ),中文可以作为变量名,但不提倡;见名知意;驼峰命名法:一个单词小写,两个单词以上组成,从第二个首字母开始大写;帕斯卡命名法:所有首字母大写
1.3 初始化:第一次赋值,变量在使用之前必须初始化,在声明的同时赋值或先声明后赋值但确定在第一次使用该变量之前.静态成员变量必须在声明同时初始化或构造器中初始化.
1.4 使用:必须与数据类型匹配;对变量的使用就是对它所存的数的使用;变量在用之前必须声明并初始化
2.基本数据类型
2.1 有8种:int型(有范围):整数;long型:整数;double型:浮点;char (男和女);boolean (true 和 false),不同类型所占空间大小不同,1G=1024M;1M=1024KB;1KB=1024B;1B=8Bit(位)
2.2 Int:整型,4个字节,只能装整数,-21多亿---21多亿,-2147483648到2147483647
注意:1.整数直接量即直接写出来的整数,整数直接量默认为int类型,但不能超出范围,如果整数超出了int的表达范围则会出现编译错误
2.两个整数相除,会舍弃小数部分并非四舍五入;求百分比先乘100再除
3.运算时超出范围则发生溢出,溢出是需要避免的,其中运算超范围是溢出,数值超范围是编译错误
2.3 Long:长整形,8个字节,整数,范围很大,注意:数字后加L,若运算时有可能超出范围,在第一个数字后加L,system.currentTimeMillis()可以获取自1970-1-1零时到此时此刻的毫秒数
2.4 Double:8个字节,精度值是float的两倍,默认的浮点值为double型,float型需要在数字后加F,运算时有些数会有误差,精确运算场合可以使用BigaDecimal 需要精确运算小数时使用
2.5 Boolean:布尔型,1个字节,只能存储true和false
2.6 Char:字符型,2个字节,Unicod编码形式:0-65535
1.java中的char采用unicode编码格式,一个字符(char)对应一个码(int),表现形式是char字符,实质上是int码;
2.字符需放在单引号中,有且仅有一个
3.特殊符号需通过转义符进行转义,\ 转义符;\n表示回车;\r表示换行
4.字符类型事实上是一个16位无符号的整数,0---48,A--65,a---97
3.基本类型间的转换
除boolean外的七种,类型从小到大依次为 byte short int long float double char
3.1 两种方式:
3.1.1 自动类型转换:从小类型到大类型
3.1.2 强制类型转换:从大类型到小类型,有可能溢出,也有可能丢失精度转换时在变量前加(数据类型) 例:long a=(int)b
3.2 两点规则:
1.整数直接量可以直接赋值给byte,short,char ,例 byte=5可以,int a=5;byte=a则错误
2.byte,short,char,参与运算(+=等除外,系统自动做强转),系统直接转换为int型再运算
3.3 Scanner的用法
3.3.1 给变量赋值:
1.赋一个固定的值(int age=37);
2.接收用户输入的值(int age=?);
3.系统随机生成的值 (int age=?);
3.3.2 Scanner用法步骤:
1.在package下:import java.util.Scanner;
2.在main中: Scanner scan=new Scanner(System.in);
3.在第二步下:System.out.print("请输入年龄");int age=scan.nextInt();