ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Day2.数据类型、类型转换

2021-12-07 15:02:50  阅读:107  来源: 互联网

标签:类型转换 String int 数据类型 float Day2 System println out


目录

数据类型

八大基本数据类型

类型转换


数据类型

  • 强类型语言

    • 要求变量的使用严格符合规定,所有变量都先定义后使用

  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本类型 (primitive type)

    • 引用类型 (reference type)

八大基本数据类型

  • 基本类型

public class Demo01 {
    public static void main(String[] args) {
        //整数
        byte num2 =20;
        short num3 =30;
        int num1 =10;  //最常用
        long num4 =30L;  //Long类型要在数字后面加L

        //小数:浮点数
        float num5 =50.1F;  //float类型要在数字后面加F
        double num6 =3.1415926535;

        //字符
        char name ='A';

        //字符串,String不是关键字,类
        String namea ="Demon";

        //布尔值:是非
        boolean fuck = true;
        boolean fucky = false;

    }
}
  • 整数扩展

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

        int a = 10;
        int b = 010;   //八进制0
        int c = 0x10;  //十六进制0x     0-9   A-F
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println("===================================================");
        //======================================================================
        //浮点数拓展   银行业务如何表示?
        //BigDecimal  数学工具类
        //======================================================================
        //float     有限  离散  摄入误差  大约  接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较

        float f =0.1f;     //0.1
        double d =1.0/10;  //0.1

        System.out.println(f==d);  //false

        float d1 =23132313113123f;
        float d2 =d1 + 1;

        System.out.println(d1==d2); //true
  • 字符拓展

    //字符拓展?
    
        char c1 ='a';
        char c2 ='鼎';

        System.out.println(c1);
        System.out.println((int)c1); //强制转换

        System.out.println(c2);
        System.out.println((int)c2); //强制转换

        //所有的字符本质还是数字
        //编码  Unicode  2字节  65536
        char c3 ='\u0061';
        System.out.println(c3);

        System.out.println("===================================================");
        //转义字符  \t(制表符)  ( ) (\n) 换行 ....
        System.out.println("hello\tWorld");  //hello	World

        System.out.println("===================================================");
        //对象  从内存分析
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);  //false

        String sc ="hello world";
        String sd ="hello world";
        System.out.println(sc==sd);  //true
  • 布尔值扩展

    //布尔值扩展
        boolean flag = true;
        if(flag==true){}  //新手
        if(flag){}        //老手
        //less is Morel   代码要精简易读

类型转换

  • 由于Java是强类型语言,所以要进行有些运算时,需要用到类型转换。

    低------------------------------------------------------高

    byte,short,char->int->long->float->double

        //强制转换  (类型)变量名    高--低
        //自动转换     低--高
        int i = 128;         //128
        byte b = (byte) i;   //-128 内存溢出

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

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

        System.out.println("=============================");
        char c = 'a';
        float d = c+1;    //自动转换

        System.out.println((int)c);   //97
        System.out.println(d);        //98
        System.out.println((char)d);  //b

        System.out.println("=============================");

        //操作较大时,注意溢出问题
        int money = 10_0000_0000;
        int years =20;
        int total =money*years;  //-1474836480
        long total2 =money*years;  //-1474836480  ,转换时默认int,已经出现问题

        long total3 =money*((long)years);  //把一个数据转换成Long
        System.out.println(total3);   //20000000000

        System.out.println("=============================");

标签:类型转换,String,int,数据类型,float,Day2,System,println,out
来源: https://blog.csdn.net/a111042555/article/details/121768222

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有