Java零散知识点学习——数组、字符串

  1. Java语言中有关内存分配的知识:
    (1)Java的内存(两种):栈内存和堆内存
    (2)在方法中定义的一些基本类型的变量和对象的引用变量都在方法的栈内存中分配。当在一段代码块中定义了一个变量时,Java就在栈内存中为该变量分配内存。当超出变量的作用域后,Java会自动释放掉为该变量分配的内存空间。
    (3)堆内存用来存放由new运算符创建的对象和数组。在堆中创建了一个数组或对象后,同时还在栈中定义了一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,引用变量实际上保存的是数组或对象在堆中的地址(也称为对象的句柄),以后就可在程序中使用栈的引用变量来访问堆中的数组或对象。引用变量就相当于是为数组或对象起的一个名字。引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之后被释放。而数组或对象本身在堆内存中分配,即使程序运行到使用new运算符创建数组或对象的语句所在的代码外,数组或对象本身所占据的内存也不会释放,数组或对象在没有引用变量指向它时,会变成垃圾,不能再使用,但仍占据内存空间,在随后一个不确定的时间被垃圾回收器释放掉,这也是Java比较占内存的原因。
    Java有一个特殊的引用型常量null.如果将一个引用变量赋值为null,则表示该引用不指向任何对象。
  2. 一维数组的定义
    Java数组的使用(3个步骤):
    (1)声明数组
    (2)创建空间
    (3)创建数组元素并赋值
    格式:
数据类型[] 数组名;	//声明一维数组
数组名=new 数据类型[个数];	//分配内存给数组
  1. foreach语法格式:
for(type element:array){
...
}
  1. 多维数组声明格式:
数据类型[][] 数组名;
数组名=new 数据类型[行数][列数];
  1. Java中的字符串分为两大类:
    (1)创建之后不会再做修改和变动的字符串变量;
    (2)创建之后允许再做修改的字符串变量
    对于第一种字符串变量,由于程序中经常需对其做比较、搜索等操作,所以通常把它放在一个具有一定名称的对象中,由程序完成对该对象的上述操作。在Java程序中存放这种字符串的变量是String类对象。对于第二种字符串变量,由于程序中经常需对其做添加、插入、修改等操作,所以这种字符串变量一般都存放在StringBuilder类的对象中。
  2. 字符串常量和字符串常量的不同:
    字符串常量用“”括起来的单个字符,而字符串常量是用双引号“"”括起来的字符序列。

猜你喜欢

转载自blog.csdn.net/tozeroblog/article/details/89334213