day04
数据类型
java是一门强类型语言,所有变量都必须经过规范的的定义,才能够使用。**
八大基本数据类型
整数型(byte,int,short,long)
-
byte
byte占一个字节范围(2的8次方),范围为-128~127
-
int
int型占四个字节范围(2的32次方),范围在21亿
-
short
short占两个字节范围(2的16次方),范围在-32768~32767
-
long
long占八个字节范围(2的32次方),范围很大很大,要在数字后面加上L。
long num = 12L;
浮点型(float,double)
-
float
float占四个字节范围,要在数字后面加上F。
float num1 = 10.2F;
-
double
double占八个字节范围
字符型
char
char占两个字节范围,只能表示一个字符。
char ch1 = '中';
char ch2 = '国';
String不是关键字,是一个类。
布尔型
boolean
Boolean占一个位,只有true或false。
public class demo02 {
public static void main(String[] args) {
//八大基本数据
//整数
int num1= 10; //最常用
//byte num2= 200; //byte占一个字节范围 -128-127
byte num2= 20;
short num3 = 30;
long num4 = 30L; //long类型要在数字后面加个L
//小数:浮点数
float num5 = 50.1F; //float类型要在后面加上F
double num6 =3.141592535;
//字符
char nam = 'Z';//char name = 'ff'; 会报错,char变量只能定义一个字符
//字符串,string不是关键字,是类
//String namea = "秦疆";
//布尔值:是非
boolean flag = true;
//boolean flag = false;
System.out.print("flag");
//System.out.print(flag);
}
}
整数扩展
-
二进制表示0b
int i = 0b10; //二进制表示0b System.out.println(i); //输出十进制表示为2
-
十进制表示
int i1 = 10; //十进制表示 System.out.println(i1); //输出十进制表示为10
-
八进制表示0
int i2 = 010; //八进制表示0 System.out.println(i2); //输出十进制表示为8
-
十六进制表示0x
int i3 = 0x10; //十六进制表示0x System.out.println(i3); //输出十进制表示为16
浮点数扩展
涉及银行业务怎么表示?钱是有小数点表示的
float f = 0.1f;
double d = 0.1;
System.out.println(f=d); //false
float f1 = 13325255f;
float f2 = f1+1;
System.out.println(f1=f2); //true
当用浮点数表示时,是有限并且离散的,表示的是数值的大约情况,其中存在舍入误差,数值接近但不等于,所以用浮点数进行比较时,都不会得到相等的结果。
----------------------------最好完全避免使用浮点数进行比较------------------------------------
----------------------------最好完全避免使用浮点数进行比较------------------------------------
----------------------------最好完全避免使用浮点数进行比较------------------------------------
以后会提到,对小数进行比较可使用一个java分装好的数学工具类BigDecimal
字符串扩展
char c1 = 'a';
char c2 = '中';
System.out.println(c1); //a
System.out.println(c2); //中
System.out.println((int)c1); //(int)c1强制转换 输出97 字符‘a‘对应的编码
System.out.println((int)c2); //(int)c2强制转换 输出20013 字符‘中’对应的编码
所有的字符本质上也是数字,java存在一个Unicode表对字符和数字有个一一对应的关系,其中字符a则对应97,字符中则对应20013。Unicode编码用两个字节来表示。U0000~UFFFF
char c3 = 'u0061';
System.out.println(c3); //输出a 这里有十六进制与十进制的转化你关系,0x61则为十进制97 所以输出a
其中u则为表示十六进制的转义字符,还有其他的转义字符,例如:d 表示八进制、 制表符table、 换行符等。
System.out.println("hello world");
System.out.println(("hello
world");
这里还有一个伏笔:
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println((sa==sb); //flase
String sc = 'hello world';
String sd = 'hello world';
System.out.println(sc==sd); //true
这里涉及对象,要从内存分析,此留下疑问,待以后解决。
布尔值扩展
boolean flag = ture;
if(flag==ture){} //新手
if(flag){} //老手 代码简洁易懂
2020 9.7 21:23