栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java学习第5天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java学习第5天

数据类型面试题拓展
public class Demo02 {
    public static void main(String[] args) {
        //整数拓展  进制  二进制0b   十进制  八进制0  十六进制0x
        int i=10;
        int i1=010;//八进制0
        int i2=0x10;//十六进制0x 0-9  A-F 16
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);
        System.out.println("===============================");
        //===============================================================
        //浮点数拓展 银行钱怎么表示
        //BigDecimal 数学工具类
        //===============================================================
        //float 有限的 离散的 都会出现舍入误差  大约 接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        float f=0.1f; //0.1
        double d=1.0/10;//0.1

        System.out.println(f);
        System.out.println(d);
        System.out.println(f==d);//结果为false f=0.1 d =0.1

        float d1=233333333333232323f;
        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);//强制转换为int类型
        System.out.println(c2);
        System.out.println((int)c2);//强制转换为int类型
        //所有的字符本质还是数学
        //编码 Unicode 表(97=a 63=A) 2字节 范围为65536  Excel表的范围为2的16次方=65536
        //U0000 UFFFF
        char cs='u0061'; //Unicode表的写法
        System.out.println(cs); //输出a
        //转义字符
        //t  制表符
        //n  换行
        //.......
        System.out.println("hello n 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是否等于true
        if(flag){} //与上面的表达的意思是一样的
        // Less is More ! 代码要精简易读
    }
}

类型转换
  • 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型装换
  • 低------------------------------------------------------------------------------>高
  • byte–>short–>char–>int–>long–>float–>double
  • 运算中,不同类型的数据先转化为同一类型,然后进行运算
  • 强制类型转换
    • 高---->低 需要强制类型转换
  • 自动类型转换
    • 低----->高 自动转换
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出,或者精度问题!
public class Demo03 {
    public static void main(String[] args) {
        int i=128;
        byte b=(byte) i; //内存溢出

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

        System.out.println(i);//128
        System.out.println(b);//-128

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

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

        System.out.println("=============================");
        //操作比较大的数的时候,注意溢出问题
        //Jdk7新特性,数字之间可以用下划线分割
        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);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583475.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号