Java基础部分记录

基础知识

数据类型

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("str")+"ing";
s1==s2;//false

将引用指向另外的地址:

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

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

注意此处与基本数据类型的区别
修改一个会影响另外一个

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

使用String s和使用String s=null不同
前者未初始化,不能使用,后者为空,可以使用…而加上static之后就默认为null
引用类型的对象没有初始化就不能用(即使你把他初始化为空也是不一样的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值