您的位置:首页 > 编程语言 > Java开发

Java基础部分记录

2017-09-11 19:03 316 查看

基础知识

数据类型

1、基本数据类型

在栈区直接存储数据

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

整数类型*4/浮点类型*2/字符/布尔值

这八种数据类型有对应的封装类型

Byte/Short/Integer/Long/Double/Float/Charactor/Boolean

基础数据类型初始值(跟引用类型比较):

byte/short/int:0
long:0L
double:0.0
float:0.0f
char:'\u0000'
boolean:false


在基础数据类型和引用类型互相转换的过程叫做自动装箱/拆箱

Integer integer=100;//实际上编译器会自动将其转化为下面这句:
Integer integer=Integer.valueOf(100);

int i=integer;//这一句实际上将integer对象进行了拆箱
int i=integer.intValue();


使用”=”赋值(此处与引用数据类型的区别)

int i1=100;
int i2=i1;
i1=200;
i1==i2;//false


将i1的值拷贝一份给i2

如果是数组的话

int[] arr1=new int[]{1,2,3};
int[] arr2=arr1;


此时两个数组指向的是同一个地址

2、引用数据类型

在栈区存储引用的地址,指向堆区的特殊空间

是一个对象

对于Integer对象来说:

当数值处于-128~127时,不会创建新的对象

建议使用equals()方法来判断内容是否相等(而不是“==”)

一般会重写类的equals()方法,若没有重写就会默认调用Object类的,相当于”==”

“==”会比较两边的引用地址

常见的String类型的比较:

1、String重写了equals()方法,会直接比较对象的字符串内容。(Integer等封装类也是)

String s1="string";
String s2=new String("string");
s1.equals(s2);//true


下面不考虑equals()情况

2、如果使用new String(“内容”)的话,会创建一个新的对象,即使内容相同,”==”也会判断为不等

String s1="string";
String s2=new String("string");
s1==s2;//false


3、即使是使用”+”将字符串连接起来也一样

String s1="str"+"ing";
String s2="string";


4、但是使用对象+”字符串”就相当于创建新的对象

String s1="string";
String s2=new String("st
889e
r")+"ing";
s1==s2;//false


将引用指向另外的地址:

以下代码仅仅是把p2的引用指向了p1的实例

Person p1=new Person();
Person p2=p1;


注意此处与基本数据类型的区别

修改一个会影响另外一个

String的初始化以及基本数据类型的初始化:

使用String s和使用String s=null不同

前者未初始化,不能使用,后者为空,可以使用…而加上static之后就默认为null

引用类型的对象没有初始化就不能用(即使你把他初始化为空也是不一样的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: