排期管理记录

360 阅读4分钟

一、equals

Java数据类型分为__基本数据类型__与__引用数据类型__。

1、基本数据类型:

  • 数值类型:
    • 整型(byte、short、int、long)
    • 浮点(float、double)
  • 引用类型:
    • 类(class)
    • 接口(interface)
    • 数组

byte:Java中最小的数据类型,在内存中占1个字节(8 bit),取值范围-128127,默认值0
short:短整型,2个字节(16 bit),取值范围-32768
32717,默认值0
int: 整型,用于存储整数,在内存中占4个字节,取值范围-21474836482147483647,默认值0
long:长整型,在内存中占8个字节-2^63
2^63-1,默认值0L

float:浮点型,在内存中占4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double:双精度浮点型,用于存储带有小数点的数字,在内存中占8个字节,默认值0

char:字符型,用于存储单个字符,内存中占2个字节,取值范围0~65535,默认值为空
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

2、引用类型:

Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。引用类型分3种:类,接口,数组:
类(Class):所有的类,无论是Java自身已经存在的,还是用户后来创建的:

  • Objec类:它是__所有类的父类__,每个类都实现这个类的方法;用Object 可以定义所有的类;
  • String类:String类代表字符串

接口(interface): 系统自带或者用户创建的;
数组(array): 系统自带或者用户创建的。

3、 Java中的数据类型在内存的存储原理

Java的数据类型存储原理要根据其为局部变量还是成员变量来区分,局部变量与成员变量根据定义变量的位置区分:

局部变量:方法中的变量;
成员变量:类中方法外;

局部变量数据类型存储原理:

(1) 基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,Java语言里面八种数据类型是这种存储模型;

(2) 引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用__Java内存堆和内存栈来进行这种类型的数据存储__,简单地讲,“引用”(存储对象在内存堆上的地址)是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;

基本数据类型和引用类型的区别主要在于: 基本数据类型是分配在栈上的,而引用类型是分配在堆上的!

对于__局部变量__来说,不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于引用类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。

对于__成员变量__来说,不论是基本数据类型还是引用类型,他们都会存储在堆内存或者方法区中;成员变量可细分为静态成员变量和普通成员变量,静态成员变量类属于类,类可以直接访问,存储在方法区中;普通成员变量属于类对象,必须声明对象之后,通过对象才能访问,存储在堆中。

  • !!!!使用equals方法时要避免__"null".equals()__的情况出现,否则会报空指针异常。