一、
1、整数拓展
进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
输出结果
10
8
16
2、浮点数拓展
//银行业务关于钱的怎么表示
//BigDecimal 数学工具类
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d) //flase
float d1 =23231333131313113f;
float d2 = d1+1;
System.out.println(d1==d2); //ture
//因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。
//根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值
3、字符拓展
char c1 = 'A';
char c2 = '中';
System.out.println(c1); A
System.out.println((int)c1);//强制类型转换 65
System.out.println(c2); 中
System.out.println((int)c2);//强制类型转换 20013
//所有的字符本质还是数字
//编码 Unicode 十六进制 占两个字节 0~65536
char c3 = '\u0061';
System.out.println(c3); //a
转义字符
\t 制表符
\n 换行
等等
System.out.println("hello\tworld"); // hello world
二 、类型转换
1、java是强类型语言,有些运算要用到类型转换
2、运算中,不同类型的数据先转化为同一类型,然后再运算
低------------------------------------->高
byte,short,char->int->long->float->double
char本质还是数字,所以上面这些都可以进行运算
int i = 128;
byte b = (byte)i;//超出byte范围,内存溢出,所以后面输出的数不对
System.out.println(i); 128
System.out.println(b); -128
//强制转换 (类型)变量名 高->低
int i = 128;
double b = i;
System.out.println(i); 128
System.out.println(b); 128.0
//自动转换 低->高
/* 注意点:
1、不能对布尔值进行转换
2、不能把对象类型转换为不相干的类型
3、转换的时候可能存在内存溢出,或者精度问题,小数点后面的直接舍去
*/
char c = 'a';
int d = c+1;
System.out.println(d); 98
System.out.println((char)d); b
int money = 10_0000_0000;
int years = 20;
int total = money*years;//数值太大,计算的时候就已经溢出了 -1474836480
long total2 = money*years;//默认是int,转换前就存在问题了 -1474836480
long total3 = money*((long)years);//先把一个数转为long 20000000000
三、变量
1、变量就是可以变化的量 变量可以对内存中的数值进行操作
2、java是一种强类型语言,每个变量都必须声明其类型
3、java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域。
变量作用域:类变量,实例变量,局部变量
4、每个变量都有类型,类型可以是基本类型,也可以是引用类型(string)
6、变量声明是一条完整的语句,每一个声明都必须以分号结束。
//类
public class WU {
//类里面还可以定义 属性:变量
//类变量 static 也写在方法外面
static double salary = 2500;//可以直接输出
//实例变量:从属于对象,如果不自行初始化,会变成这个类型的默认值
//默认值是0 0.0
//布尔值:默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法,主程序方法
public static void main(String[] args) {
//局部变量是在方法里面的;
//局部变量使用前必须声明和初始化值;
//局部变量只在自己所在的方法里面有效。
//实例变量的使用
//变量类型 变量名字 = new WU();
WU wu = new WU();//new WU();之后按alt+回车
System.out.println(wu.age);
System.out.println(wu.name);
}
//其他方法
public void add(){
}
}
四、常量
1、初始化后不能再改变值,不会变动的值
2、可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
关键词是final 修饰符,不存在先后顺序
static final double PI =3.14;
final static double PI = 3.14;
//两者是一样的
3、常量名一般使用大写字符

浙公网安备 33010602011771号