下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、班级: 学号: 姓名: 第五章 数组与字符串知识点一:Java的内存分配机制内存分配:栈内存、堆内存。栈内存:基本数据类型的变量和对象的引用变量。超出变量的作用域,会自动释放掉为该变量所分配的内存空间。堆内存:存放由new运算符创建的对象和数组,在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。举例:int x; x=new int10; 第一句:引用变量x,在栈内存中分配空间 第二句:数组初始化,在堆内存中分配空间栈中的变量x的取值= 数组在堆内存中的首地址,所以栈中的这个变量就成了数组的引用变量。举例String s1; String s2;s1=“a string”; s2=s1
2、;s1s210001a string10001栈内存堆内存引用变量实际上保存的是数组或对象在堆内存中的地址(也称为对象的句柄),所以可以通过使用栈的引用变量来访问堆中的数组或对象。引用变量相当于是为数组或对象起的一个别名。引用变量是普通变量,定义时在栈中分配,在程序运行到其作用域之外被释放。数组或对象:在堆中分配内存,在没有引用变量指向它时,也不会释放,但会变为垃圾,不能再被使用。在随后一个不确定的时间被垃圾回收器收走(释放)。null:引用常量,如果某个引用变量值为null,表示不指向任何对象或数组。知识点二:一维数组数组:相同数据类型的元素按一定顺序排列的集合,实现对这些数据的统一管理。声
3、明方式type var 或 type var;type指定数组的类型,可以是基本数据类型,也可以是一个类类型(即类名),如 int a; int a1; double b; 注意:Java语言中声明数组时不能指定其长度(数组中元素的个数)。例如:int a5; /非法所有的数组下标从零开始A 、动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行使用运算符new来为数组所要存储的数据分配内存,并将它们分配给数组变量int a;a = new int3;a0 = 3;a1 = 9;a2 = 8;B、静态初始化 在定义数组的同时为数组元素分配空间并赋值int a = 3, 9, 8;MyDa
4、te dates = new MyDate(22, 7, 1964), new MyDate(1, 1, 2000), new MyDate(22, 12, 1964);C、数组元素的默认初始化数组是引用类型,它的元素相当于类的成员变量数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化,比如在下例中,整型数组a中的元素并未显示的初始化,此时所有元素系统默认赋值为0。public class Test public static void main(String argv)int a= new int5;System.out.println(a3); (1) 数组元素的引用定
5、义并用运算符new为之分配空间后,才可以引用数组中的每个元素数组元素的引用方式:arrayNameindexindex为数组元素下标,可以是整型常量或整型表达式,如a3 , bi , c6*i数组元素下标从0开始;长度为n的数组合法下标取值范围:0 n-1每个数组都有一个属性length指明它的长度,例如a.length 指明数组a的长度(元素个数)知识点三:多维数组定义多维数组变量时,将每维数放在各自的方括号中,例:下面语句声明了一个名为twoD的二维数组变量 int twoD = new int45;该语句分配一个4行5列数组并把它分配给数组twoD当给多维数组分配内存时,只需指定第一个(
6、即最左边)维数的内存即可,可单独地对余下的维数进行内存分配(2)多维数组举例例如,int twoD = new int4;在数组twoD被定义时给它的第一个维数分配内存,对第二维则是手工分配内存 int t1 = new int 4; /非法twoD0 = new int5; twoD1 = new int5; twoD2 = new int5; twoD3 = new int5; (3)Java中多维数组的特殊情况不必须是规则矩阵形式int tt = new int4; tt0 = new int2; tt1 = new int4;tt2 = new int6; tt3 = new int8
7、;知识点四:字符串String类字符串:字符串是由字符组成的序列,用双引号括起来的一个字符序列构成了字符串Java的字符串常量通常是作为String类的对象存在,有专门的属性来规定它的长度。String 类的定义和实例的生成(三种方式) String str; str=“this is a string” 或者 str=new String(“this is a string”);或 String str1=new String(“hello”);或 String str2=“aaaa”;对字符串的操作,两个字符串str1, str2str1 = str2; 指两个引用指向同一个地址str1.
8、equals(str2); 判断两个字符串内容是否相等String aStr=HelloWorld!;String bStr=HelloWorld!;if(aStr.equals(bStr) / 取值为真if(aStr=bStr) / 取值为真,练习题:1、 若已有数组说明“char s;”,则创建20个字符的数组的语句是 。2、在Java中定义一个字符串类型的变量str的语句是: ,定义一个具有10个元素的整型数组a的语句是: 。3、下列程序的输出结果是 。 public class Test public static void main(String args) int a=1,2,3,
9、4; for(int i=a.length-1;i=0;i-) System.out.print(ai+ ); 4、 当声明一个数组int arr = new int5; 时,这代表这个数组所保存的变量类型是 ,数组名是 ,数组的大小为 ,数组元素下标的使用范围是 。5、 下列关于数组的定义形式,哪个是正确的?( )Aint c=new char10; Bint 3=new int2 ;Cint a; a=new int; Dchar b ; b=new char80;6、 执行String s=new String10;语句后,哪些结论是正确的?( )As0 为 未定义 Bs.length
10、为10Cs9 为 null Ds10 为 7、 给出下面代码,关于该程序以下哪个说法是正确的?( )public class Person static int arr = new int5;public static void main(String a) System.out.println(arr0); A、编译时将产生错误B、编译时正确,运行时将产生错误C、输出零 D、输出空8、 以下程序的输出结果是 。class StringTest public static void main(String args) String str1 = JAVA; String str2 = JAVA
11、; String str3 = new String(JAVA); boolean result1 = str1.equals(str2); boolean result2 = str2.equals(str3); boolean result3 = str1=str2; boolean result4 = str2=str3; System.out.println(result1+,+result2+,+result3+,+result4); 9、 下列程序段执行后的结果是( )。 String s = new String(abcdefg);for (int i=0; is.length(
12、); i+=2) System.out.print(s.charAt(i); A) aceg B) ACEG C) abcdefg D) abcd 10、 已知如下定义:String s = story; 下面哪个语句不是合法的( )A、s += books;B、s = s + 100;C、int len = s.length;D、String t = s + “abc”;11、下列数组定义及赋值,错误的是( )A. int intArray=new int2;B. int intArray=new int3;intArray1=1;intArray2=2;intArray3=3;C. float b=1.2, 2.1, 3.5, 4.3, 5.6;D. int a =new int2;a0=new int4;a1=new int23;12、若String s = hello; String t = he
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林艺术学院《影视照明技术》2021-2022学年第一学期期末试卷
- 吉林艺术学院《书法实训I》2021-2022学年第一学期期末试卷
- 吉林艺术学院《剪辑基础》2021-2022学年第一学期期末试卷
- 2024年供热管网互联互通协议书模板
- 吉林师范大学《中国东北史》2021-2022学年第一学期期末试卷
- 2024年大型绿植售卖合同范本
- 2024年大厂员工合同范本
- 娱乐场营销合同协议书范文范本
- (浙教2024版)科学七年级上册3.2 太阳系的组成与结构 课件(共2课时)
- 吉林师范大学《外国古代教育史》2021-2022学年第一学期期末试卷
- 绵阳市高中2022级(2025届)高三第一次诊断性考试(一诊)语文试卷(含答案)
- 自然资源调查监测劳动和技能竞赛
- 2 0 2 4 年 7 月 国开专科《法理学》期末纸质考试 试题及答案
- 6.1 我对谁负责 谁对我负责 课件-2024-2025学年统编版道德与法治八年级上册
- 2023-2024学年天津市经开区国际学校八年级(上)期末物理试卷
- DB23T 3842-2024 一般化工企业安全生产标准化评定规范
- 期中模拟押题卷(1-3单元)(试题)-2024-2025学年苏教版数学六年级上册
- 2023-2024学年北京市东城区东直门中学七年级(上)期中数学试卷【含解析】
- 新制定《公平竞争审查条例》主题
- 小学体育课件《运动损伤的预防和处理》
- 个人招生计划方案
评论
0/150
提交评论