Day03
数据类型拓展
二进制: 十进制:010 十六进制:0x eg:0x10
如下:
public class demo02 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制 十六进制
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);
System.out.println("============================");
//====================================
//浮点数拓展 eg:银行业务的表示 BigDecimal
//float 有限的 离散的 舍入误差 接近但是不等于
// 与double
//最好完全使用浮点数进行比较
//BigDecimal 数学工具类
float f=0.1f; //0.1
double d=1.0/10; //0.1
System.out.println(f==d);
float d1=2323233232323f;
float d2=d1+1;
System.out.println(d1==d2); //true ,因为是有限的字节,所以 忽略 了 1
//==============================================
// 字符拓展
//============================
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制换行
System.out.println(c2);
System.out.println((int)c2);//强制换行
//所有字符的本质还是数字,通过编码Unicode编码转换,eg(97=a, 65=A) 2字节 0~65536
//转义字符 非常多,自己测试
// \t 制表符
// \n 换行
System.out.println("HELLO\tWORLD");
//======================================
String sa=new String("dadashisb");
String sb=new String("dadashisb");
System.out.println(sa==sb);//FALSE
String sc="dadashisb";
String sd="dadashisb";
System.out.println(sc==sd); //TRUE
//对象,从内存分析
//布尔值扩展
boolean flag=true;
if (flag){}// if(flag==true)
}
}
字符拓展:、
所有字符本质是数字,通过Unicode编码进行转换
转义字符:非常多。eg:\t,\n等等等等
类型转换
低---------------------------高 (小数的优先级大于整数) byte,short,char->int->long->float->double 运算中,不同类型的数据先转化成统一类型,然后进行运算
注意溢出问题,以及转换问题,详情见demo03,如下:
public class demo03 {
public static void main(String[] args){
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间用下划线分割
int money=10_0000_0000;
int years=20;
int tatal=money*years; //此时会溢出
long total2=money*years; //由于money和years都是int,所以转换之前已经存在问题
long total3=money*((long)years); //先把一个数转换成long
System.out.println(total3);
//除了转换类型,类也可以转换
}
}
变量
变量:可以变化的量 //栈?? 每个变量必须声明其类型 JAVA变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
注意事项:
-
每个变量都有类型,类型可以使基本类型,月可以是引用类型(变量八大基本类型)
-
变量名必须是合法的标识符(注意day02中的常用标识符)
-
变量声明是一跳完整的语句,因此每一个变量声明必须以分号结尾
变量作用域
类变量:写在类里面 实例变量:写在类中间 局部变量:写在方法里
public class demo05 {
//属性:变量
//类变量 static 只要加了static这个关键词,
static double salary=2500;
//实例变量:从属于对象,如果不自行初始化,这个会变成这个类型的默认值
String name; //不用初始化 但是用,就需要一些操作
int age;
//main方法
public static void main(String[] args){
//局部变量:实在方法里面的,再两个大括号之间的 ,使用之前必须声明和初始化值。这些声明只在这个括号里面有用
//方法块,代码块,作用域就比较宽
//变量类型(就是demo05) 变量名字=new demo05();
demo05 demo05 = new demo05();
System.out.println(demo05.age); //输出是10,由于没有自行初始化,所以输出为这个类型的默认值
System.out.println(demo05.name); //输出是null
/*
所有数字类型初始化一般都是0(整数)和0.0(小数),
字符串变量初始化会是一个16位的0,即u0000,
布尔值:会默认是false
除了基本类型,其余的默认值都是null
*/
//类变量 static 只要加了static这个关键词,就可以直接使用,后面会重点讲,前期学习都用这个,后面回血new
System.out.println(salary); //此时可以直接输出salary
}
}
常量
常量:初始化之后就不能再改变值,不会变动的值 可以理解成一种特殊的变量,他的值再被设定之后,在程序中就不会再改变
定义方法如下:
final 常量名=值;
eg: final double PI=3.14
//常量名一般都大写
eg:
import java.security.spec.RSAOtherPrimeInfo;
public class demo06 {
//修饰符,不存在先后顺序,有一大堆
static final double PI=3.14; //定义常量,可以直接调用,制作一些长宽高等一系列的东西的时候作用大
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
-
所有变量,方法,类名:见名知意
-
类成员变量:首字母小写和驼峰原则:eg monthSalary
-
局部变量:首字母和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GodMan
-
方法名:首字母小写和驼峰原则:run();runRUN()
以上重点
static和fanal
命名规范
运算符
算术运算符:+ - * %(取余,念做模),++,--
加减乘除如下:
package base; //代表当前的包
public class Demo07 {
public static void main(String[] args) {
//二元运算符
//ctrl+d 复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b); //会有小数,要搞清楚作用范围
}
}
输出字符有优先级,如下
package base;
public class Demo08 {
public static void main(String[] args) {
long a=123123123123123L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d); //Long 有long,结果就是long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
}
}
赋值运算符:=
关系运算符:<,>,>=.<=,==,!=(不等于),instanceof
package base;
public class Demo09 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误
int a=10;
int b=20;
int c=21;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a);
}
}
逻辑运算符:&&,||,! (与或非)
位运算符: 条件运算符:? : 扩展复制运算符
浙公网安备 33010602011771号