zoukankan      html  css  js  c++  java
  • Java数据类型、运算符及类型转换

    一.标识符

    作用:常量、变量、方法、类和包等的名称

    命名规范:

      1.必须以数字、字母、下划线或$符号开头

      2.其他部分必须是数字、字母、下划线或$,不能出现特殊符号

      3.标识符大小写敏感

      4.不可以是Java的关键字

    常规建议

      1.驼峰标识:

        类名、接口名称在命名时要首字母大写

        方法、变量命名的时候首字母要小写

        多个单词拼接标识一个标识符的时候,每个单词的首字符都要大写

      2.见名知意:通过标识符的名称能知道代表的含义,不要写拼音

    二.关键字/保留字

    Java关键字是Java语言保留供内部使用的(不要刻意去背)

    三.Java基本数据类型

    Java是一种强类型语言:变量都必须声明其数据类型

    弱类型语言:js、php等不需要声明基本类型,可以用var定义

    整数类型:

      byte:使用一个字节存储,范围是-128-127

      short:使用两个字节存储,范围是-32768-32767

      int:使用四个字节存储,范围是正负21亿

      long:使用八个字节存储,范围很大

        注意:整数类型默认int类型,在声明long型常量时可以加‘l’或‘L’

    浮点类型:

      float:单精度

      double:双精度

        注意:浮点类型默认double类型,在声明float型常量时可以加‘f’或‘F’

             浮点类型并不能表示一个精确的值,会损失一定的精度

    字符型:

      char:占用两个字节,使用的时候使用‘’单引号使用

      常用转义符: (换行)、 (相当于tab键)

    布尔型:

      boolean:只有true和false两值,在存储的时候占一位,不是一个字节

    四.常量和变量

    常量:在程序运行过程中,值不会发生改变的量

      赋给变量的值称为常量

      注意:使用final关键字修饰的变量称之为常量或者叫做最终常量,表示不可修改

    变量:在程序运行过程中,值会发生改变的量

      变量可以先声明后赋值(int a;  a = 10;),也可以边声明边赋值(int a = 10;)

    五.运算符

    算数运算符:+、-、*、/、%(取余数)、++(自增加1)、--(自增减1)

      例题:int a = 2;    System.out.println(++a+a++);      答案:6

      解答:++的优先级高于+,先计算++a,a的值为3,后计算a++,此时a在++前,先与之前的a相加后再自身加1

    赋值运算符:=

    扩展赋值运算符:+=、-=、*=、/=

      注意:byte a = 1; 计算 a = a+1;涉及到类型转换,会报错

                 a += 1;使用扩展赋值运算符不会报错

    关系运算符:>、<、>=、<=、==、!=  (该类型只会返回boolean类型的值)

    逻辑运算符:&&、||、!

      &&:短路与,表达式从左向右开始对比,若左边的表达式为false,右边不需要进行判断

      ||:短路或,表达式从左向右开始对比,若左边的表达式为true,右边不需要进行判断

    位运算符:&、|、^、~、>>、<<、>>>(了解)

      若两个数字进行位运算符,操作的时候会转换为二进制进行运算

      &运算:有0为0          |运算:有1为1           ^运算:相异为1相同为0

      ~运算:进行取反       <<运算:数字变为二进制左移        >>运算:数字变为二进制右移

      例题:System.out.println(~4)           答案:-5

      解答:4的原码为:00000100、进行取反得到补码为:11111011、补码-1得到反码:11111010、取反得到原码:10000101=-5

    条件运算符:? :(三目运算符,表达式为true返回?后的值,表达式为false返回:后的值)

      例题:System.out.println(true?false:true?false:true);      答案:false

            System.out.println(false?false:true?false:true);      答案:false

    六.运算符的优先级

      括号的优先级是最高的

      ++、--的优先级高于+、-

    注意:这个顺序不需要记住,在现实生产环境中,如果我们没有记住顺序,只需要将需要优先计算的运算式加上括号即可

    七.原码、补码、反码

    原码:指将最高位作为符号位(0表示正、1表示负),其他数字位由二进制转换为十进制

      例如:数字6在计算机中的原码为:00000110

           数字-6在计算机中的原码为:10000110

         以上是在8位计算机中的原码表示,如果在32位或16位计算机中,表示方法一样,只是前面补0即可

      原码运算可能出现的问题:

      

    反码:如果是正数,表示方法和原码一样,如果是负数,则保留符号位1,然后将这个数字的原码每位取反

      例如:数字6在计算机中的反码和原码同为:00000110

           数字-6在计算机中的反码为:11111001

      反码运算可能出现的问题:

      

    补码:如果是正数,表示方法和原码一样,如果是负数,补码就是对反码加一

      

    八.类型转换

    在赋值运算或算数运算时,要求数据类型相同,否则就要进行类型转换

    类型由小到大提升顺序:byte,char,short<int<long<float<double

    自动转换

    在运算过程中,如果两个值的类型不一致,则会自动将小的类型转换为大的类型

    例如:int a = 10;     byte b = 5;     int c = a + b;

    强制转换

    在运算过程中可以手动强制转换,将大的类型转换为小的类型,在强制转换中可能会发生精度损失,结果不准确

    例如:int a = 10;     byte b = 5;     byte c = (byte) a + b;

  • 相关阅读:
    读《ASP.NET Core3框架揭秘》之3&4~依赖注入
    读《ASP.NET Core3框架揭秘》之2~跨平台的奥秘
    读《ASP.NET Core3框架揭秘》之1~全新的开发体验
    C# 获取当前方法/父方法的信息
    Redis——集群(cluster)
    Redis——哨兵(sentinel)
    Redis——主从复制
    Redis——版本升级&数据迁移
    Redis——6.0集群安装部署
    Redis——常用命令
  • 原文地址:https://www.cnblogs.com/lyc-code/p/12457360.html
Copyright © 2011-2022 走看看