Java学习笔记三(数组,字符串)

数组的定义

数组是相同类型数据的有序集合。数组描述的是相同类型的若干数据。按照一定的先后次序排列组合。其中每一个数据称为元素,每个元素都可以通过数组的索引或者下标(角标)来定位。

数组的特点

1 数组本身是引用数据类型,而数组中的元素可以使任意类型(基本类型/引用类型)

2 创建数组对象会在内存中开辟一块空间,他的空间是连续的。而数组名中引用的是这块连续空间的首地址。

3 数组的长度一但确定 就不能修改。

4 数组中存储的数据的类型必须是相同的 不能出现混合类型

数组的分类
维度: 一维数组 二维数组 三维数组 多维数组…

数据类型: 基本类型的数组(整形数组 浮点型数组 字符型数组 布尔型数组) 引用类型的数组

数组的创建和初始化

格式一: 数据类型[] 变量名   int[] arr;   定义了一个int类型的一维数组  数组名称为arr   (掌握)
格式二: 数据类型  变量名[]  int  arr[] 

数组的初始化:

java中的数组必须先初始化,然后才能使用。

所谓初始化:就是为数组中的元素分配内存空间,并为每一个元素赋值

数组的初始化方式

  • 静态初始化
  • 动态初始化

静态初始化:在定义数组的同时就位数组元素分配空间并赋值

数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,...,数据n}

此时在声明数组的时候 不需要的指定长度系统会根据给出的数据自动分配长度
简化:

数据类型[] 变量名 = {数据1,数据2,数据3,...,数据n}

动态初始化:

​ 数组声明和数组元素的分配空间及赋值分开进行。

格式: 数据类型[] 变量名 = new 数据类型[数组的长度]

int[] arr = new int[5]  表示声明了一个长度为5的整型数组

动态初始化:

​ 数组声明和数组元素的分配空间及赋值分开进行。

格式: 数据类型[]  变量名 = new  数据类型[数组的长度]

等号的左边:

​ int 数组的类型

[] 表示这是一个数组

arr 是这个数组的名称

等号的右边:

​ new: 为数组开辟内存空间

​ int 数组的数据类型 制定了数组中每个元素的空间大小

​ [] 表明这是一个数组

​ 5 表示数组的长度

数组元素 即使我们没有赋值 每个元素都存在一个默认的值

数组的默认值

byte shot int 默认值是 0
long类型的默认值0L

float double 默认值是0.0
char类型的默认值他是"\u0000"

boolean 类型为false
String为代表的引用类型为null

多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

String str[][] = new String[3][4];

多维数组的动态初始化(以二维数组为例)
直接为每一维分配空间,格式如下:

type[][] typeName = new type[typeLength1][typeLength2];

type 可以为基本数据类型和复合数据类型,typeLength1 和 typeLength2 必须为正整数,typeLength1 为行数,typeLength2 为列数。

例如:

int a[][] = new int[2][3];

在Java中 二维数组 不必恃规则的矩阵形式。(与c语言不一样)

字符串

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

创建字符串
创建字符串最简单的方式如下:

String str = "Runoob";

在代码中遇到字符串常量时,这里的值是 “Runoob”",编译器会使用该值创建一个 String 对象。

和其它对象一样,可以使用关键字和构造方法来创建 String 对象。

用构造函数创建字符串:

String str2=new String("Runoob");

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

图示:请添加图片描述
所以String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

有关 String 类支持的方法可见

https://www.runoob.com/java/java-string.html

Java StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值