• Java语法基础一些常见问题


    enum枚举类型的用法

    1)有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    2)枚举,能让我们的代码可读性更强。

    3)向枚举中添加新方法如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

    4)覆盖枚举的方法

    5)实现接口所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

    6)使用接口组织枚举

    反码补码原码含义

    数在计算机中是以二进制形式表示的。 

    数分为有符号数和无符号数。 

    原码、反码、补码都是有符号定点数的表示方法。 

    一个有符号定点数的最高位为符号位,0是正,1是副。 

    以下都以8位整数为例,

    原码就是这个数本身的二进制形式。
    例如
    0000001 就是+1
    1000001 就是-1

    正数的反码和补码都是和原码相同。

    负数的反码是将其原码除符号位之外的各位求反
    [-3]反=[10000011]反=11111100
    负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。
    [-3]补=[10000011]补=11111101
    一个数和它的补码是可逆的。

    为什么要设立补码呢?

    第一是为了能让计算机执行减法:
    [a-b]补=a补+(-b)补

    第二个原因是为了统一正0和负0
    正零:00000000
    负零:10000000
    这两个数其实都是0,但他们的原码却有不同的表示。
    但是他们的补码是一样的,都是00000000
    特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)
    [10000000]补
    =[10000000]反+1
    =11111111+1
    =(1)00000000
    =00000000(最高位溢出了,符号位变成了0)

    有人会问
    10000000这个补码表示的哪个数的补码呢?
    其实这是一个规定,这个数表示的是-128
    所以n位补码能表示的范围是
    -2^(n-1)到2^(n-1)-1
    比n位原码能表示的数多一个

    又例:
    1011
    原码:01011
    反码:01011 //正数时,反码=原码
    补码:01011 //正数时,补码=原码

    -1011
    原码:11011
    反码:10100 //负数时,反码为原码取反
    补码:10101 //负数时,补码为原码取反+1

    0.1101
    原码:0.1101
    反码:0.1101 //正数时,反码=原码
    补码:0.1101 //正数时,补码=原码

    -0.1101
    原码:1.1101
    反码:1.0010 //负数时,反码为原码取反
    补码:1.0011 //负数时,补码为原码取反+1

    在计算机内,定点数有3种表示法:原码、反码和补码

    所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

    反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

    补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
    同名屏蔽原则
    1:使用当前语言规定的合法字符(最好是英文)。记住当前语言(甚至是大多数语言)的关键字,不起关键字的名字。
    比如:C语言不支持中文名字,而Java支持,等等等。。。
    2:见名知意,看到这个变量名就应该大概知道是用来做什么的。
    比如:人的名字你用一个叫a的变量存储就不太合适。
    3:作用域越大的变量名就越起的复杂些,或者加上限定前缀、后缀什么的。
    比如:一个全局变量直接起个叫Name的变量,其他地方用起来就可能出问题。
    4:注意大写的i和小写的L。这俩货如果打错,不靠编辑器找错会很困难。
    比如:某变量名表示一个人是否生病:bIsIll……知道后三个是什么么。。
    5:尽量不要和常用的系统类、方法重名。
    比如:print这个方法,很多语言里都有。你创建一个这个方法是给自己找麻烦……
    6:如果加入了某开发团队,则要熟悉该团队的命名规范,这样你好我好大家好。
    比如:某团队要求变量名字前面要加类型前缀,例:bool型的前缀b啦或者怎么样。
    你就是不加,然后一个Gender名的变量对阅读代码的人是个负担,这性别是按字符存储的呢?还是按Object存储的呢?还是按bool型存储的呢?
    Java中每个数据类型所占的位数,和表示数值的范围
    1)基本类型;  2)扩展类型。它包括  类型    描述   取值范围  Boolean 布尔型 只有两个值true、false  Char 字符型 
    1.   Byte 8位带符号整数 -128到127之间的任意整数 

        Short 16位无符号整数 -32768~32767之间的任意整数 

        Int 32位带符号整数 -2^31到2^31-1之间的任意整数 

        Long 64位带符号整数 -2^63到2^63-1之间的任意整数 

        Float 32位单精度浮点数 根据IEEE754-1985标准 

        Double 64位双精度浮点数 根据IEEE754-1985标准 一些提示: 

        不象其它程序设计语言,Java语言中的整型的位数是固定的,而不会根据硬件平台以及操作系统的不同而不同。 

    2.  

      1> boolean型

      在上一章的逻辑运算符中,我们就已经看到过了取值为true和false的变量,这种变量称为boolean型变量。 

        实例说明 源程序:test601.javapublic class test601 {public static void main(string args[]){boolean x=true;boolean y=false;System.out.println("x&&y="+(x&&y));System.out.println("x||y="+(x||y));System.out.println("x^y="+(x^y));System.out.println("!x="+(!x));}}  根据逻辑运算符的计算表可以得出x&&y=true&&false=false;x||y=true||false=true;x^y=true^false=true;!x=!true=false。

    3.  

      2 >char型 

        char型是用来表示字母的,它仅能表示一个单一的字母。通常char型常量必须使用单引号括起来,以与数字区分开来。下面就是一个char 

      型变量的实例: 

      char letter=’a’; 

        char型在Java语言中并不是很常用,因为如果要存储字符的话,一般使用扩展的数据类型string. 

    4.  

      3 >整型 

        在Java语言中,提供了多种整型数据类型:byte、short、int、long。它们都是定义了一个整数,唯一的区别就是它们能够表示数据的范 

      围。 

        能够表示数据的范围越大,占用的内存空间也就越大,因此,在程序设计中应该选择最合适的类型来定义整数。 

        大家可以根据以下规律,记住它们所占的内存空间: 

        1) int是最基本的,它占用32位(现代计算机不就是32位机嘛!); 

        2) long,长的,也就是比int还长,它占用64位; 

        3) short,短的,也就是比short还短,它占用16位; 

        4) byte,字节,8位组成一个字节,当然byte就只占8位了。 

        根据它们所占用的内存空间不同,能够表示的数字范围也不同。占用内存空间越大,能够表示的数字范围也就越广。 

        实例说明  源程序:test602.java 

      public class test602 {public static www.gzlij.com void main(String args[]){int x=20;System.out.println(x+5);System.out.println(x*7);}} 

      源程序:test603.java 

      public class test603 {public static void main(String args[]){byte x=129;System.out.println(x+5);}} 

    5.  

      4 >>浮点型 

        前面我们学习了存储整数的变量数据类型,现在我们还看看存储小数的变量数据类型---浮点数。在Java语言中有两种浮点数类型:float 

      、double。 

        其中float是单精度型,占用32位内存空间,而double是双精度型,占用64位内存空间。 

        浮点数: 

        浮点数这个名称是相对于定点数而言的,这个点就是小数点。浮点数就是指小数点可以根据需要改位置。 

     



  • 相关阅读:
    解决docker 容器删除不掉的问题
    centos下安装docker
    Microsoft SQL Server 双机热备份,实时同步
    同一台主机下的两台虚拟机互ping不通
    JAVA基本数据类型
    记录一些比较高能的网站!
    Nginx+Lua+Redis配置
    用Squid3搭建缓存代理服务器
    Mysql导入CSV文件
    LeetCode--Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/ever1961211/p/5935813.html
Copyright © 2020-2023  润新知