Java知识点汇总第五篇(红色重点记忆、黄色应用较多、蓝色了解)

一、数组

定义:相同数据类型的元素按照一定顺序排列的集合。

(java中数组元素可以是简单数据类型,也可以是对象)

特点:数组中各元素是有先后顺序的,在内存中按照这个先后顺序连续存放在一起。

1. 内存

(1)栈内存:定义的基本类型的变量和对象的引用变量,超出作用域将自动释放(如函数的执行)

(2)堆内存:存放由 new 运算符创建的对象和数组,由Java虚拟机的自动垃圾回收器来管理。

2.栈

特点:(1)先进后出,后进先出 (队列:先进先出,后进后出)

(2)栈是一种运算受限的线性表,仅限在表尾进行插入和删除操作。

(3)存储速度比堆快

(4)栈中的数据大小与生存期必须是确定的,缺乏灵活性

(5)主要存放一些基本类型的变量(如int float char boolean等)和对象句柄

(Java的堆与数据结构不同,但Java中的栈与数据结构类似)

3.数组与对象存放于堆内存

(1) 由 new 命令创建,堆内存中的对象和数组只能由栈内存中的引用变量来访问,引用相当于是指针。

(2) 数组和对象在没有引用变量指向它的时候,变成垃圾,不被使用,但占内存,随后不确定的时间

由Java虚拟机垃圾回收器来自动回收。

(引用变量占一定的空间,它的字节数取决于Java虚拟机的位数,32位 = 4个字节,64位 = 8个字节)

 二、一维数组

1.

 

2.动态内存分配说明:

(1)用 new 分配内存的同时,数组的每个元素都会自动赋默认值

(2)

 

3.静态内存分配:

若在声明数组时进行赋值(初始化)称为静态内存分配。

(在Java程序中声明数组时,无论用何种方式定义数组,都不能指定其长度)

4.访问

引用方式: 数组名[下标]

与C/C++不同, java对数组元素访问要进行越界检查。

越界保护:若访问数组时下标越界,则扔出异常。

5.用x.length指出数组x所包含的元素个数。 数组属性有length

str.length()指出字符串str所包含的元素个数。 字符串方法有length()

6.遍历

(1)循环结构

(2)foreach遍历

for (type element : array){ ... }

三、多维数组

1.Java中没有真正的多维数组,只是数组的数组。

2.分配内存时,必须指明行和列的个数。

3.C语言的二维数组一定呈矩形,m行n列,开辟连续的(m*n)个储存空间

Java语言的二维数组不一定呈矩形

4.得到二维数组的维数:

得到某数组的行数: 数组名.length

得到某数组某行元素的个数: 数组名[下标].length

(二维数组申请内存时必须指定高层维数)

5.二维数组是一个特殊的一维数组,它的每个元素都是一个一维数组。

四、字符串

1.用一对双引号 “ ” 括起来的字符序列

2.Java语言中,字符串常量或变量均用类实现。

---不属于基本数据类型

---所有字符串均为对象

3.字符串变量的创建:

(1)String 变量名;

变量名 = new String(" 字符串");

(2)String 变量名 = new String(" 字符串 "); //使用new,一定会在堆内创建新的对象(不论原来是否存在)

(3)String 变量名 = “ 字符串 ”;

4.字符串是引用型变量,存储方式与数组基本相同。

5.字符串的比较:

由于字符串是对象,所以使用 == 符号实际上比较的是对象的地址。

---若两个字符串引用均指向同一块地址,其内容必然相等。

---但是无法比较存储在不同区域,但内容实际可能相等的串

因此,比较字符串内容应调用 String 类的 equals 方法。

6.字符串的拼接

使用 + 操作符进行字符串拼接效率低下。

在性能要求较高的场景下应优先使用StringBuilder 类方法进行拼接操作。

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值