数组&&API

申请空à声明变量à变量类型

String name;//声明一个字符串变量

String[ ] names;//声明一个字符串组变量

数组:

   概念:一个能够盛放单一类型固定个数数据的容器。

数组的声明

String[ ]  names;

数组的初始化:

数组名 = new 数据类型[ 长度 ];

赋值:

数组名[索引]=值;

   索引,又称下标,角标,编号,索引从0开始的。

放在c语言中,数组的声明是:string names[ ]={ };不同之处是,关键字后加[ ],同时长度一定要有。

索引从0开始:

names=new String[4];

     names[0]="张三";

     names[1]="李四";

     names[2]="王五";

     names[3]="赵六";

     //采用println打印数组第二个元素

     System.out.println(names[2]);

第二个元素,数起来不是第一个,第二个,而是第零个,第一个,第二个。

以后按照前一种方法来.

Java中的内存分配

Java程序在运行时,需要在内存中的分配空间,为了提高运算效率,就对控件进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式

--栈 存储局部变量

--存储new出来的东西

--方法区 (面向对象进阶讲)

--本地方法区(和系统相关)

--寄存器(给cpu使用)

声明数组:作用是在栈区申请一份空间

数组初始化:作用是在堆区申请对应的空间;

赋值:作用是按照栈区的指示,寻找堆区对应的地址进行装入值。

声明→初始化→赋值   三步走

为什么会越界?

因为在声明的时候已经固定了空间大小,其他未声明的空间属于其他程序,若是进行覆盖会出现崩溃。

错误示范:

String[] names;

Names={“张三”,”李四”,”王五”}

正确示范

String[ ]names={“张三”,”李四”,”王五”};

或者 String[ ]names=new String[ ]{ “张三”,”李四”,”王五”};

面向对象:Object OrientedProgramming,简称”OOP”

API:applicationprogramming interface

Api文档使用:

--字段摘要:类的属性

--构造方法摘要:方法功能阐述,是用来创建对象的

--调用构造方法:用new创造对象

String str=New String();//先用new来调用,然后返回值需要什么类型就写什么类型,最后定义一个合适的接收者来接收

所以通常情况下:

String name=”张三”;//简单的写法,称为语法糖

String name=new String(“张三”);//这种就是最常见的调用构造方法格式.,也就是如何构造String,第一步就是new,第二步定义一个类型变量(对象?)来接收.

这里面注意如果定义一个字符串,暂时没有字符的话

String name=new String();

前面没有括号,后面有括号;

字符串判断是否相等为什么不能用等于号?

例子:

String a1=””;

String a2=newString();

Booleanres=a1.equals(a2);

System.out.println(res);

System.out.println(a1==a2);

解释:内存里面有栈区,堆区,方法区

A1等号右边叫对象.会在方法区里面的常量区开辟一个空间,同时栈区也会开辟空间.常量区里面的地址传递给a1,

String a2=newString();这一句执行过程是,先在栈区开辟空间,然后在堆区开辟空间,把堆区的地址传递给a2,这样的话a2就指向了堆区的空间.

这样的话,如果a1和a2相比较的话,则是两个地址的比较,不相等的.

猜你喜欢

转载自blog.csdn.net/kakaoracle/article/details/78992032