代码改变世界

Java01注释与数据类型

2021-01-17 19:02  天培  阅读(68)  评论(0编辑  收藏  举报

main方法 psvm或main

输出 sout

注释

		//单行注释
        
		/*
        多行注释

         */
        
		/**
         * 文档注释
         */

java数据类型

强类型语言

先定义后使用

Java的数据类型分为两大类

  • 基本类型(primitive type)

    ​ 数值类型 Boolean

  • 引用类型(reference type)

    ​ 类 接口 数组

     //八大基本数据类型
    
            //整数
            int num1= 10;//最常用
            byte num2 = 20;
            short num3 = 30;
            long num4 = 40L;//后面要加L
    
            //小数:浮点数
            float num5 = 50.1F;//后面要加F
            double num6 =3.14159265358;
    
            //字符
            char name = 'A';
            //字符串,String不是关键字,类
            //String name="王天培"
    
            //布尔值:是非
            boolean flag =true;
    

数据类型拓展

		//整数拓展 :进制 二进制0b 十进制 八进制0 十六进制0x

        int i = 10;
        int i2 = 010;
        int i3 = 0x10;
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("=====================================");

        //浮点数扩展?银行业务怎么表示?钱
        // BigDecimal 数学工具类
        //float 有限 离散 舍入误差 大约 接近但不等于

        //double
        //最好完全避免使用浮点数进行比较
        float f = 0.1f;
        double d = 1.0/10;

        System.out.println(f==d);//flase
        System.out.println(f);
        System.out.println(d);
        float d1 = 235656565232136f;
        float d2 = d1 + 1;
        System.out.println(d1==d2);//true
        System.out.println("=======================================");
        //字符拓展

        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);//强制换行
        System.out.println(c2);
        System.out.println((int)c2);//强制换行
        //所有的字符本质还是数字
        //编码 Unicode 表:(97 =1 65 =A) 2字节 0-65536 Excel 2 16 = 65536
        // U0000 UFFFF

        char c3 = '\u0061';
        System.out.println(c3);
		System.out.println("==================================");
        //转义字符
        // \t 制表符
        // \n 换行
        //……
        System.out.println("Hello\nWorld");
        
        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 = true;
        if (flag==true){ }//新手
        if (flag){}//老手
        //Less is More! 代码要精简易读

类型转换

public class Demo04 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;//内存溢出

        //强制类型转换  (类型)变量名  高--低
        //自动类型转换  低--高

        System.out.println(i);
        System.out.println(b);

        /*
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把高容量转换到低容量的时候,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题

         */
        System.out.println("================");
        System.out.println((int)23.7);//23
        System.out.println((int)-45.89f);//-45

        System.out.println("================");
        char c = 'a';
        int d = c+1;
        System.out.println(d);//98
        System.out.println((char)d);//b

        System.out.println("================");
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;//-1474836480,计算的时候溢出了
        long total2 = money*years;//默认是int,转换之前已经存在问题了
        long total3 = money*(long)years;//先把一个数转换为Long
        System.out.println(total);
        System.out.println(total2);
        System.out.println(total3);
    }
}