申请空à声明变量à变量类型
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相比较的话,则是两个地址的比较,不相等的.