1-Java基础回顾整理_03_类型、变量、运算符

1、数据类型

  Java是一门强类型的开发语言,要求十分严格,所有的变量都必须先定义才能使用;

  这样就造就的它的特点:安全性高,但是相对的速度就是适当的慢一些

2、Java数据类型

  Java的数据类型分为两大类:基本数据类型、引用数据类型

  基本数据类型(primitive type):

    byte、short、int、long、float、double、char、boolean

  引用数据类型(reference type):

    类、接口、数组,这些都是引用数据类型,最常见的是String,它是一个类,对应的基本数据类型的包装类,也是引用数据类型

    基本数据类型对应的包装类只记两个比较特殊的:Integer、Character、其他的都是首字母大写;

3、字节:

  位(bit):计算机内部数据存储的最小单位,比如11001100就是一个八位的二进制数;

  字节(byte):计算机中数据处理的基本单位,习惯上采用大写B的写法来表示;

    位与字节的关系:1B = 8bit

  字符:指计算机中使用的字母、数字、字和符号;

4、通常人们口中讲的电脑的32位和64位的区别

  其实就是涉及到一个寻址能力;

  64位的可以装32位操作系统和64位的操作系统,内存最多支持128G,理论上无限大;

  32位的只能装32位操作系统,内存最多支持4G;

5、浮点数拓展

  浮点数:float、double

    切记:千万要避免使用两个浮点数来进行比较,会出现问题;

  特别是银行方面,不要使用浮点类型进行计算,建议使用BigDecimal类,数学工具类来进行计算。

6、字符

  所有的字符本质上还是数字;

    编码,Unicode编码,2字节,0 - 65536,也就是2^16,Excel的最大长度就是65536,只是大部分人没有注意到;

      u0000 - uFFFF

  转义字符:

     水平制表符(相当于Tab,空格)   换行    例如:char c = 'u0061';  最后输入的是a

7、== 与 equals的区别

  当比较的是引用数据类型的时候,==比较的是地址值,当比较的是变量内容的时候,比较的是值

  equals比较的是内容是否相等

8、类型转换

  小数的优先级高于整数

    byte,short,char -> int -> long -> float -> double

    低 ---------------------------------------------------> 高

  强制类型转换可能引发的问题:

    内存溢出、精度损失;

  当操作比较大的数时,需要注意数据溢出的问题,要考虑到进行数据类型转换

    int i = 1000000000;  在JDK1.7中,有一个新特性,可以使用下划线进行分割,不会对下划线进行识别

    int i = 10_0000_0000;  打印输出的还是1000000000;

  当计算较大的值时,若原数据类型为int,需要转换为long,否则会出现溢出问题;

    如:int i = 20; int j = 1000000000;

      long num = j * ((long)i);

9、变量

  Java变量是程序中最基本的存储单元,其三要素为:变量名、变量类型、作用域;

  作用域:

    类变量:加static关键字

    实例变量(可理解为全局变量):没有static关键字

    局部变量:在方法内部的变量

10、修饰符

  修饰符不区分先后顺序,前后均可    如:static final double PI = 3.14;

  类变量是全局可用的。

11、运算符

  关系运算符:instanceof,面向对象的部分使用较多;

  四则运算符:当进行四则运算的时候,要注意范围,是否需要进行类型转换,int 转换为 long、double。

  一元运算符:++、--

    ++:自增    i++:先用再增加  ++i:先加再使用

    --:自减      i--:先使用再减    --i:先减再使用

  幂运算:比如求 2^3

    可使用Math.pow(2,3);  数据工具类的方法进行计算

    也可以使用位移符号进行计算,2 << 3,效率比较高

  位运算:

    &与、|或、~非、^异或

    <<左移:左移一位,相当于*2

    >>右移:右移一位,相当于/2

12、输出计算内容与字符串连接""

  当""在计算内容前面,则后面的计算不会进行

  当""在计算内容后面,则前面的计算会进行

原文地址:https://www.cnblogs.com/hand-blog/p/13089889.html