zoukankan      html  css  js  c++  java
  • PPT动手动脑1

    1.枚举类

    public class EnumTest {
    
        public static void main(String[] args) {
            Size s=Size.SMALL;
            Size t=Size.LARGE;
            //s和t引用同一个对象?
            System.out.println(s==t);  //
            //是原始数据类型吗?
            System.out.println(s.getClass().isPrimitive());
            //从字符串中转换
            Size u=Size.valueOf("SMALL");
            System.out.println(s==u);  //true
            //列出它的所有值
            for(Size value:Size.values()){
                System.out.println(value);
            }
        }
    
    }
     enum Size{SMALL,MEDIUM,LARGE};

    (1)当s与t引用同一个对象时s==t为true。

    (2)getclass()为返回Class类型的对象。isPrimitive()Class为判断是否为

    原始数据类型(boolean、char、byte、short、int、long、float、double)

    (3)valueOf()将普通字符串转为枚举实例,就如同 Integer.valueOf(String str)将String转为Integer类型一样。

    (4)values()方法可以把枚举变成枚举类型的数组方便访问。

    以下为运行结果

     可见枚举类型并不是原始数据类型,它的每个值都引用一个对象,相同的值引用同一个对象。

    枚举类型可以用==比较变量的值。

    枚举类型相当于一个类,里面可以有方法如:

    public class test10 {
        public static void main(String[] args) {
            for(int i=0;i<3;i++)
            {
                Size.showSize(i);
            }
        }
    }
    enum Size{
        small("SMALL"),medium("MEDIUM"),large("LARGE");
        private  String size;
        private Size(String size)
        {
            this.size=size;
        }
        public static void showSize(int n)
        {
            switch(n)
            {
            case 0:
                System.out.println(Size.small);break;
            case 1:
                System.out.println(Size.medium);break;
            case 2:
                System.out.println(Size.large);break;
            }
        }
    };

    运行结果

     2.二进制表示正数和负数

    反码,补码,原码这些在上学期计算机导论与c语言程序设计中都有个介绍。

    (1)原码:十进制数的二进制表示方式,最高位为符号位,0为正,1为负。

    如-1的原码:10000000 00000000 00000000 00000001

    1的原码::00000000 0000000 00000000 00000001

    (2)反码:正数的反码为它本身,负数的反码为除最高位其余为取反(1变为0,0变为1)。

    如-1的反码:11111111 11111111 11111111 11111110

    (3)补码:正数的补码为它本身,负数的补码为反码加1。

    如-1的补码:11111111 11111111 11111111 11111111

    位操作

    (1)m<<n:把m的二进制表示左移n位,高位舍弃,低位补0。

    (2)m>>n:把m的二进制表示右移n位,m为正数高位补0,m为负数高位补1。

    (3)m>>>n:把m的二进制表示右移n为,不论正负高位补0。

    可以利用位操作观察java的二进制运算,以及原码,反码,补码的操作原理

    如1<<2   1的二进制00000000 00000000 00000000 00000001运算后00000000 00000000 00000000 0000100得到4.

            int i=1<<2;
            System.out.println(i);

    3.java的同名变量屏蔽原则

    每一个变量都有自己的有效区,出了这个区域则不再有效。

    局部变量会屏蔽全局变量中相同名字的变量。

    以下为测试代码:

    public class test10 {
        final int NUM=100;
        public static void main(String[] args) {
            int NUM=10;
            System.out.println(NUM);
        }
    }

    输出结果

     可见main方法中的NUM将全局变量NUM屏蔽了。

     如,输出语句中的i报错,是因为for中定义的i的有效区域就是for循环,出了区域不再有效,i需重新定义。

    4.

    char类型 位数 2 范围  0-65535

    byte类型 位数:8 范围 -128~127

     int类型 位数:32 范围:-2147483648~2147483648。

    short类型 位数:16 范围-32768~32768

    long类型 位数 64 范围 -9223372036854775808 ~9223372036854775807 

    float类型 位数 32 范围 1.4E-45~3.4028235E38

    double类型 位数 64 范围 4.9E-324 ~1.7976931348623157E308

    整型之间从小位数到大位数的转换并不会出现精度损失,然而整型与浮点型之间的转换会产生精度损失,而浮点型之间的转换并不会出现精度损失。

    5.

     以下为运行结果

     

     第一个先输出“X+Y=”为String类,所以后面的X,Y也按String类处理,并不会加在一起。

    第二个X+Y为int型加在一起输出300,最后输出String类型“=X+Y”。

  • 相关阅读:
    K折交叉验证
    浅谈python的第三方库——pandas(三)
    关于机器学习二分类问题的几个评估指标辨析
    浅谈python的第三方库——pandas(二)
    浅谈python的第三方库——pandas(一)
    【内核篇】Windows内核重要变量
    【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取
    【系统篇】从int 3探索Windows应用程序调试原理
    【编程篇】使用操作系统异常巧妙获取交叉链表的交点
    【灌水篇】为什么我们要拼搏北上广
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/13756467.html
Copyright © 2011-2022 走看看