Java基础知识回顾之七 ----- 总结篇

在之前Java基础知识回顾中,我们回顾了基础数据类型、修饰符和String、三大特性、集合、多线程和IO。本篇文章则对之前学过的知识进行总结。除了简单的复习之外,还会增加一些相应的理解。

基础数据类型

基本数据类型主要有:
byte、short、int、long、float、double、char、boolean
它们可以分为三类:

数值类型:byte、short、int、long、float、double

字符类型:char

布尔型:boolean

其中byte是8位,short是16位, int是32位以及 long是64的整数;而float 32位,double 64 位的浮点数。
数值类型的级别从低到高分别为:
byte,char,short(这三个平级)——>int——>float——>long——>double
其中由低级别转到高级别,是属于自动类型转换,这点是由系统自动转换的。在进行计算的时候,如果级别小于int,最终的数据类型会自动转换为int,如果高于int,最终数据结果会取其中最高的一个。
又高级别转到低级别是强制类型转换强制类型转换需要注意取值范围和数据的精确度

char是字符类型,可以储存任何字符。
boolean是布尔类型,只有false或true。

基础数据类型更详细的说明:

一般我们在用基础数据类型的时候,也会用到包装类型。
这里顺便说下包装类型,也来弥补之前的文章讲述不足。

什么是包装类型?包装类型和基础数据类型的关系。
包装类就是基本类型数据转换为对象的一种类型。

每个基本类型在java.lang包中都有一个相应的包装类。
基础数据类型:
boolean, char, byte,short,int, long, float,double
分别对应的包装数据类型:
Boolean,Character,Byte,Short,Integer,Long,Float,Double

包装类型有什么用

利于实现基本类型之间的转换;
因为我们了解到基本数据类型之间的相互转换分为自动类型转换强制类型转换自动类型转换还好,但是强制类型转换容易出现问题。所以出现了包装类型,它可以很方便的帮助转换。
例如: String类型的转int类型可以通过 Integer.parseInt()转换成int,或使用Integer.valueOf()转换成Integer类型。

便于函数传值;
为什么说方面函数传值呢?假如一个方法的入参是Object 类型, 但是你的入参是个int类型,是无法直接调用这个方法的,所以这时便可以将int类型的数据进行包装成Integer类型,在进行调用便可以了。其实除了这个示例,比较常见的是我们的pojo类型,一般会使用包装类型,这样的话在便可以使用null来进行判断。不止这些,在集合的List、Map和Set等等泛型中的类型是,用的是包装类型,例如: Map<String,Integer> map=new HashMap<String,Integer>();

注意:在使用包装数据类型进行值比较的时候,用equals进行比较,不要用==。例如:

Integer a=127; Integer b=127; Integer c=128; Integer d=128; System.out.println(a == b); System.out.println(a.equals(b)); System.out.println(c == d); System.out.println(c.equals(d));

输出结果:

true true false true 修饰符

Java修饰符主要分为两类:

访问修饰符

非访问修饰符

其中访问修饰符主要包括 private、default、protected、public。
非访问修饰符主要包括 static、final、abstract、synchronized。

访问修饰符

访问修饰符的访问权限:
| 修饰符 | 当前类 | 同一包内 | 子类 | 其它包 |
| :-----: | :-----:| :------: | :----:| :---: |
| public | Y | Y | Y | Y |
| protected | Y | Y | Y | N |
| default | Y | Y | N | N |
| private | Y | N | N | N |

非访问修饰符

static: 用来修饰类变量和类方法。
修饰变量

static在修饰类变量的时候,无论该类被实例化了多少次,它的静态变量只有一份拷贝。静态变量也被称为类变量。局部变量是不能被声明为static变量的。

修饰方法

static在修饰类方法的时候,静态方法是不能使用类的非静态变量。静态方法可以直接通过类名调用,因此静态方法中是不能用thissuper关键字的。

final :用来修饰类、方法和变量。

final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract :用来创建抽象类和抽象方法。
修饰类

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppswd.html