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”。

  • 相关阅读:
    饿了么P7级前端工程师进入大厂的面试经验
    前端程序员面试的坑,简历写上这一条信息会被虐死!
    这次来分享前端的九条bug吧
    移动端开发必会出现的问题和解决方案
    创建一个dynamics 365 CRM online plugin (八)
    创建一个dynamics 365 CRM online plugin (七)
    创建一个dynamics 365 CRM online plugin (六)
    创建一个dynamics 365 CRM online plugin (五)
    使用User Primary Email作为GUID的问题
    怎样Debug Dynamics 365 CRM Plugin
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/13756467.html
Copyright © 2011-2022 走看看