------- android培训、java培训、期待与您交流! ----------
class arraydemo //数组 就是一个将相同数据类型数据装在一起的容器
//它的好处是可以将这些数据元素从0开始编号 方便对其操作
{
public static void main(String[] args)
{
/*
格式1:元素类型[] 数组名= new 元素类型[元素个数或数组长度];
示例 : int [] arr=new int [5]; //new用于在内存中产生一个数据实体
*/
//需求 想定义一个可以存储3个数据的容器
int [] x = new int [3]; //不要丢new 注意x是数组类型 现在就要学习它了
/*x[0] = 59 ;不能写成int x[0] =59 上面已经int了 不要丢了; 此时
打印角标为0的元素的值时已经变成59了*/
x = null; /*不能写成x[]=null;这样是错误的 直接是x = null 此时 若
下边仍有"System.out.println(x[0]);" 就会报错 因为此时
堆内存没人使用 已经成为垃圾了*/
/*
数据类型分为 基本数据类型 和 引用数据类型
基本数据类型: 1.数值型 (1)整数类型(byte, short, int, long)
(2)浮点类型(float, double)
2.字符型(char)
3.布尔型(boolean)
引用数据类型 1.类(class)
2.接口(interface)
3.数组( [ ] )
整数默认:int 小数默认:double
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了
不同大小的内存空间
栈内存特点 数据在使用完毕后会自动释放空间 所以多个函数 都用x y 做变量也可以
局部变量都是定义在栈内存中
局部变量:定义在方法上的变量 定义在方法的参数上的变量 定义在for循环里面的变量都
是局部变量
堆内存都是实体 实体包括数组和对象 数组也能称为对象
堆内存特点: (结合视频的截图看)
1.堆内存里的每一个实体都有对应的位置位置是通过二进制的地址值来标识的
数组在内存中存放的时候 总有一个起始位置 为了简便 我们用16进制来表示
这些位置 当被栈内存使用的时候 只是引用了堆内存中的地址位置
2.堆内存中的实体是为了封装数据的 堆内存中的数据都有默认的初始化值
不赋值的情况下 都有默认值 具体值根据数组中元素的类型不同而确定 比如
下边的"System.out.println(x[0]);//换成[1]结果也是0" 就说明int型的默
认值是0 double 是0.0 float 是0.0F boolean 是false 引用是null
字符串也是null
3.当x=null时 堆内存就没人使用了 此时虚拟机就视此为垃圾 垃圾并不会被立
即清除 而是会不定时地启动垃圾回收机制 来清除无用的堆内存
int [] x = new int [3]; 中的int x 在栈内存里 而后面的new数组则存放在堆内存里
*/
//如何打印数组中角标为0的元素的值
//System.out.println(x[0]);//换成[1]结果也是0 (见上面堆内存特点2)
/*
java的垃圾回收机制
java本身是成长制c++语言 它优化了c++中的一些特性 而变得更加简单易用 尤其是在内存这
块 c++的特点(或说缺点)在于是我们写了好多程序 在运行的时候 在内存中开辟空间 当内存
中的实体比较多的时候 比较占用内存空间 哪一个实体不用了 就需要清除掉 以腾出空间存
放其他的数据 而c++的做法是 由程序员手动调用一个功能将内存中的数据进行清除 否则 随着
程序运行时间的变长 运行会越来越慢
而java中是由虚拟机自动通过垃圾回收机制 进行清理的(把实体清除掉) 不是定时的
*/
System.out.println("--------------其他的就见图片了--------------");
}
}