ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

四月十号java知识点

2021-04-10 21:35:48  阅读:113  来源: 互联网

标签:知识点 java 十号 int 元素 数据类型 内存 数组 new


1.数组:若干个相同数据类型元素按照一定顺序排列的集合
2.JAVA语言内存分为栈内存和堆内存
3.方法中的一些基本类型变量和对象的引用变量都在方法中
的栈内存中分配
4.堆内存用来存放new运算符创建的数组或对象,在堆中存放的内存
由java虚拟机的垃圾回收器来自动管理
5.在堆中创建一个数组或对象后,同时还在栈中定义一个特殊的变量,
让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中
的这个变量就成了 数组或对象的引用变量,引用变量实际上保存的是
数组或对象在堆内存的首地址(也称为对象的句柄),以后就可以
在程序中使用栈的引用变量来访问堆中的数组或对象
6.引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行
到其作用域之外后被释放。而数组或对象本身在堆内存中分配,即使
程序运行到使用new运算符创建数组或对象的语句所在代码块之外,
数组或对象本身占据的内存也不会释放,数组或对象在引用变量没有
指向它时,会变成垃圾,不能再被使用,但依然占用内存空间不放
在随后一个不确定的时间被垃圾回收站收走(释放掉),这也是java
比较占内存的原因
7.数组特点:
1)数组是相同数据类型元素的集合
2)数组中的各元素是先后有序的,它们在内存中按照这个先后顺序
连续存放一起
3)数组元素用整个数组的名字和自己在数组中的顺序位置来表示。
例如,a[0]表示名字为a的数组中的第一个元素,a[1]表示数组中的
第二个元素,以此类推。
8.一维数组定义三步骤:
1)声明数组
2)分配空间
3)创建数组元素并赋值
数据类型 []数组名;
数组名 = new数据类型[个数];
9.举例子说明数组定义:
第一种:int []x;
x = new int[10];
第二种,声明数组时也可以同时分配空间:
数据类型 []数组名 =new 数据类型[个数]
int []a =new int[10]
10.数组的引用方式:数组名[下标]
下标可以是整型或整型表达式,如a[3+i].JAVA语言下标从0开始
与C/C++不同的是JAVA语言对数组元素要进行越界以确保安全性
11.对每个数组都有一个属性length指明它的长度
如x.lengt指出数组x所包含的元素个数
12.注意:Java程序中声明数组时,无论用何种方式定义数组,
都不能指定其长度。
13.foreach语句:只需要提供三个数据
1)元素类型
2)循环变量名字(用于存储连续的元素)
3)用于检测元素的数组
for(type element:array){
输出语句;
}
功能是每次从数组array中取出一个元素,自动赋给element,用户不用判断
是否超出了数组的长度
14.需要注意:element的类型必须是与数组array中元素的类型相同
15.二维数组声明和内存分配:
数据类型[][]数组名;
数组名=new数据类型[行数][列数];
或者数据类型[][]数组名=new 数据类型[行数][列数]
16.JAVA语言的二维数组不一定是规则的矩形
例如:int[][]x=new int[]
17.JAVA语言中的二维数组可以看成是多个一维数组
int [][]x=new int[3][]
数组x有三个元素,每个元素都是int[]类型的一维数组
18.如果数组是一个规则矩阵
在二维数组中如果想获得二维数组的行数,只要在数组后面添加一个.length属性即可
若想获得数组中某行元素的个数,则需在数组名和后加上该行的下标,再加上.length
属性
例如:x.length//计算数组的行数
x[0].length//计算数组x第一行元素个数
x[3].length//计算数组x第三行元素个数
19.注意:二维数组要求必须指向高层维数
int [][]array = new int[1][];
int [][]array = new int[2][5];
错误申请:int[][]array = new int [][5];
int[][]array = newint [][];
20.二维数组赋初值:数据类型[][]数组名 = {{第一行初值},
{第二行初值},
{第三行初值}
{第n行初值}}
21.程序中可以用到的字符串可以分为两大类:
1)创建之后不会做修改和变动的字符串变量
2)创建之后允许再做修改和变动的字符串变量
22.字符串变量创建:
String 变量名
变量名=new String("字符串");

标签:知识点,java,十号,int,元素,数据类型,内存,数组,new
来源: https://www.cnblogs.com/kzf-99/p/14642157.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有