ICode9

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

数据类型转换

2022-07-02 10:02:46  阅读:100  来源: 互联网

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


进制,字符 布尔值拓展 ,转义字符

public class num4 {
    public static void main(String[] args) {
        //整数拓展   进制        二进制0b       十进制        八进制0         十六进制0x
        int c=10;
        int c1=010;
        int c2=0x10;
        System.out.println(c);//十进制
        System.out.println(c1);//八进制
        System.out.println(c2);//十六进制   //0~9 a~f
        //十六进制算法:首位*进制+尾数 a~f=10~15
        //=============================================
        //浮点整数拓展    银行业务怎么表示?钱
        //BigDecimal  数学工具类
        //fLoat 表示字长有限    离散    舍入误差    接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        System.out.println("=============================");
        float f=0.1F;
        double d=1.0/10;
        System.out.println(f==d);
        float a1=85885868768521231f;
        double a2=a1+1;
        System.out.println(a1==a2);
        System.out.println("=============================");
        //字符拓展
        char a4='b';
        char a5='我';
        System.out.println((int) a4);//加int强制转换
        System.out.println((int) a5);
        //所有字符的本质还是数字
        //编码 Unicode 表 2字节   0-65536 每个字符有对应的数字
        System.out.println("=============================");
        char a6='\u0061';
        System.out.println(a6);//a
        //转义字符
        // \t 制表符
        // \n 换行
        System.out.println("Hello,world");
        System.out.println("===============================");
        String sa=new String("Hello world");
        String sb=new String("Hello world");
        System.out.println(sa==sb);
        String sc="Hello world";
        String sd="Hello world";
        System.out.println(sc==sd);//从面向对象问题 从内存问题分析
        //布尔值扩展
        boolean flag = true;
        if (flag ==true);{}//新手
        if(flag);{}//老手
        //less is more 代码要精简易读

    }
}

类型转换

  1. 强制转换:由高到低
  2. 自动转换:由低到高
public class num5 {
    public static void main(String[] args) {
        //强制转换(类名)+变量名 高——低 避免超过转换范围导致内存溢出
        int a=128;
        byte b=(byte)a;
        System.out.println(a);
        System.out.println(b);//-128 高转低 内存溢出
        //自动转换  低——高 可以直接输出
      int d =128;
     long f=d;
        System.out.println(d);
        System.out.println(f);
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.由高到低强制转换时候可能存在内存溢出,精度丢失问题

         */
        System.out.println("==================");
        System.out.println(23.7);
        System.out.println((int) 23.7);//23
        System.out.println((int)45.89F);//45 高转低 精度丢失
        System.out.println("==================");
        char o='l';
        int p=o+1;
        System.out.println(p);
        System.out.println((char) p);
    }

}

数据溢出问题

public class num6 {
    public static void main(String[] args) {
        //操作数值比较大的时候注意溢出问题
        //数字间可以用下划线表示
        int money=10_0000_0000;
        int years=20;
        int ab=money*years;
        System.out.println(ab);//-1474836480 数值过大 内存溢出
       long lk =money*((long)years);
        System.out.println(lk);//默认是int 所得数值超过int范围 需要将其中一个数转换为更大范围的long类型

    }
}

标签:类型转换,String,int,System,println,数据,public,out
来源: https://www.cnblogs.com/go8888/p/16436764.html

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

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

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

ICode9版权所有