day04

day04

数据类型

java是一门强类型语言,所有变量都必须经过规范的的定义,才能够使用。**

八大基本数据类型

整数型(byte,int,short,long)

  1. byte

    byte占一个字节范围(2的8次方),范围为-128~127

  2. int

    int型占四个字节范围(2的32次方),范围在21亿

  3. short

    short占两个字节范围(2的16次方),范围在-32768~32767

  4. long

    long占八个字节范围(2的32次方),范围很大很大,要在数字后面加上L。

    long num = 12L;
    

浮点型(float,double)

  1. float

    float占四个字节范围,要在数字后面加上F。

    float num1 = 10.2F;
    
  2. 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);


    }
}


整数扩展

  1. 二进制表示0b

    int i = 0b10;	//二进制表示0b 
    System.out.println(i);	//输出十进制表示为2
    
  2. 十进制表示

    int i1 = 10;	//十进制表示
    System.out.println(i1);	//输出十进制表示为10
    
  3. 八进制表示0

    int i2 = 010;	//八进制表示0
    System.out.println(i2);	//输出十进制表示为8
    
  4. 十六进制表示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

原文地址:https://www.cnblogs.com/vae-469395/p/13629339.html