菜鸟学习笔记:Java基础篇6(数组、字符串)

菜鸟学习笔记:Java常用类(数组、字符串)

  • 数组
    • 概述
    • 数组的定义
    • 二维数组
    • 数组查找和排序
      • 查找
      • 排序
  • 数组运用——字符串
    • 不可变字符序列(String)
    • 可变字符序列(StringBuilder与StringBuffer)与不可变

数组

概述

只要对多少接触过一点C语言同学来说数组肯定不陌生。Java中的数组和C语言差不多,所以这里不做太多引入直接上概念:
数组是相同类型数据的有序集合。
它有三个特点:

  1. 数组长度确定,一但创建它的大小不可改变。
  2. 其元素必须是相同类型。
  3. 数组中的元素可以是基本类型也可以是引用类型。

数组的定义

int[] a = new int[2];
//定义长度为2的数组,也可以写成int a[] = new int[2];
a[0] = 1;
a[1] = 2;

//数组静态初始化
int b[] = {
   2,4,6,8};//直接创建长度为4的数组并初始化值

对上述代码来说,a是一个引用类型的变量,它存储的是堆中数组这块连续空间的首地址,而数组这块连续的结构中存储的就是实际的数据,和c、c++一样,数组表示一块连续的内存结构,根据数组类型不同每一块占用的内存大小不同,比如int类型占4个字节,那上例的数组就占8个字节,每个数组元素占4个字节。
引用类型数组:

public class Fish{
   
	public Fish(String name){
   
		this.name = name;
	}
	String name;
}

main函数中:

public static void main(String[] args) {
   
	//注意,这里是新建一个数组对象,不是Fish对象
	Fish[] aFish1 = new Fish[2]; 

	aFish1[0] = new Fish("小丑鱼");//这里才是Fish对象
	aFish1[1] = new Fish("大鲨鱼");

	//也可以静态初始化
	Fish[] aFish2 = {
   new Fish("食人鱼"), new Fish("红烧鱼")}

}

内存结构:
菜鸟学习笔记:Java基础篇6(数组、字符串)_第1张图片
另外数组可以通过length属性求得其长度,比如上例a.length就是2。这一点在数组遍历时比较常用。

二维数组

Java中二维数组的用法和c语言相差不多,总的来说那就是将数组中的基本类型变量替换为引用类型变量,让这个引用类型变量指向另一个数组,比如下面这个例子:

public static void main(String[] args) {
   
	int[][] a = {
   {
   1, 2}, {
   3, 4, 5}};
	System.out.println(a[1

你可能感兴趣的:(基础教学,Java基础,笔记,java,字符串,编程语言,数组,后端)