zoukankan      html  css  js  c++  java
  • JAVA的学习日记3

    Java基础类型拓展

    public class Demo03 {
        public static void main(String[] args) {
            //基础数据类型拓展
            //整型    二进制ob     十进制     八进制0     十六进制0x
            int i = 10;
            int i1 = 010;   //八进制
            int i2 = 0x10;  //十六机制
    
            System.out.println(i);  //10
            System.out.println(i1); //8
            System.out.println(i2); //16
    
            System.out.println("======================");
            //浮点数拓展
            float f = 0.1f;     //0.1
            double d = 1.0/10; //0.1
            System.out.println(f == d);     //false
            System.out.println(f);          //0.1
            System.out.println(d);          //0.1
    
            float f1 = 21231212121212f;
            float f2 = f1 + 1;
            System.out.println(f1 == f2);   //true
    
            /*所以说浮点数是存在缺陷的,浮点数是:有限的、离散的、是有舍入误差的,表示的是一个大约数,接近但不等于*/
            /*所以最好完全避免使用浮点数进行比较*/
            /*所以最好完全避免使用浮点数进行比较*/
            /*所以最好完全避免使用浮点数进行比较*/
    
            //所以后面比较的时候会用到BigDecimal  是一个数学工具类
    
    
    
            //字符拓展
    
            char c1 = 'a';
            char c2 = '中';
    
            System.out.println(c1);
            System.out.println((int)c1);    //强制转换  97
    
            System.out.println(c2);
            System.out.println((int)c2);    //强制转换  20013
            //所有的字符本质还是数字
            //编码 Unicode--->表:(A=65   a=97)  占据2个字节  最多可以表示65536个字符
            //表示范围U0000-UFFFF
    
            char c3 = 'u0061';
            System.out.println(c3);     //a
    
    
            //转义字符
            //	 制表符    
    换行
            System.out.println("Hello	World");     //Hello	World
            System.out.println("Hello
    World");
            /*Hello
            World*/
    
            String s1 = new String("Hello World");
            String s2 = new String("Hello World");
            System.out.println(s1 == s2);       //false
    
            String s3 = "Hello World";
            String s4 = "Hello World";
            System.out.println(s3 == s4);       //true
            //对象  从内存上分析
    
    
            //布尔值拓展
            boolean flag = true;
            if(flag){}
            //上下两行的表示意思相同,后面的大多时候都会使用上面的方法
            if(flag==true){}
        }
    }
    
    
    

    转义字符表

    Java类型转换

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

    • 运算中,不同类型的数据先转化为同一类型,然后在进行运算

    • 强制类型转换

    • 自动类型转换

    public class Demo04 {
        public static void main(String[] args) {
            int i = 128;
            byte b = (byte)i;
    
            System.out.println(i);      //128
            System.out.println(b);      //-128
            /*很明显第二个结果输出的不符合预期,这是因为byte类型的数据范围是-128~127,
            因为类型强制转换,导致了内存溢出所以在操作的时候要尽量避免*/
    
            // 强制转换格式:  (类型)变量名     低---高
            // 自动转换:    不需要任何操作     高---低
            /*
            * 注意点:
            *   1.不能对布尔值进行转换
            *   2.不能把对象类型转换为不相干的类型
            *   3.在把高容量转换到低容量打的时候,强制转换
            *   4.转换的时候可能存在内存溢出或者精度问题【浮点数】!
            * */
    
            System.out.println((int)23.7);       //23
            System.out.println((int)-12.5f);      //-12
    
            char c = 'a';
            int d = c + 1;
            System.out.println(d);              //98
            System.out.println((char)d);        //b
    
    
        }
    }
    
    

    大数操作的时候应该注意的问题

    public class Demo05 {
        public static void main(String[] args) {
            //操作比较大的数的时候,注意溢出问题
            //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; //20000000000 先把一个数转换为long,就能符合强类型转换了
            System.out.println(total3);
    
        }
    }
    
    
    加油!!!
  • 相关阅读:
    apache配置
    windows 查看端口号,杀进程
    c/c++ 拷贝控制 右值与const引用
    c/c++ 多线程 多个线程等待同一个线程的一次性事件
    c/c++ 多线程 等待一次性事件 异常处理
    c/c++ 多线程 等待一次性事件 std::promise用法
    c/c++ 多线程 等待一次性事件 packaged_task用法
    c/c++ 多线程 等待一次性事件 future概念
    c/c++ 多线程 利用条件变量实现线程安全的队列
    c/c++ 多线程 一个线程等待某种事件发生
  • 原文地址:https://www.cnblogs.com/cdoudou/p/13623398.html
Copyright © 2011-2022 走看看