首页 > 编程语言 >Java中的数组-暂未完结

Java中的数组-暂未完结

时间:2024-02-25 23:55:21浏览次数:21  
标签:Java 变量 未完结 对象 元素 数组 类型 new

数组的定义
数组是相同类型数据的有序集合
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
◆其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。

数组声明创建
◆首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[]arrayRefVar; // 首选的方法
dataType arrayRefVar[]; // 效果相同,但不是首选方法

Java语言使用new操作符来创建数组,语法如下:

dataType[]arrayRefVar = new dataType[arraySize];

数组的元素是通过索引访问的,数组索引从0开始。

获取数组长度:
arrays.length

三种初始化

静态初始化
int[l] a={1,2,3};
Man[] mans ={new Man(1,1),new Man(2,2)}; //引用类型初始化

动态初始化
intt] a = new int[2];
a[0]=1;
a[1]=2;
数组的默认初始化因此数组一经分配空间,其中的每个元数组是引用类型,它的元素相当于类的实例变量,素也被按照实例变量同样的方式被隐式初始化。

如下:

数组边界
◆下标的合法区间:[0,length-1],如果越界就会报错;
◆ ArrayIndexOutOfBoundsException:数组下标越界异常!
◆小结:
数组是相同数据类型(数据类型可以为任意类型)的有序集合数组也是对象。
数组元素相当于对象的成员变量数组长度的确定的,不可变的。如果越界,则报:ArrayIndexOutofBounds
注意:数组下标比实际长度小1,因为数组下标是从0开始的。

数组如果未赋值则为初始值0,String为null

Java内存分析:
堆:
存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用


存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)

方法区
可以被所有的线程共享
包会了所有的class和static变量


数组的四个基本特点
◆其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
◆其元素必须是相同类型,不允许出现混合类型。
◆数组中的元素可以是任何数据类型,包括基本类型和引用类型。
◆数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
◆数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型数组对象本身是在堆中的。


反转数组

多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是.
一个一维数组。
二维数组
int a[][]= new int[2][5];

Arrays 类
数组的工具类java.util.Arrays
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
查看JDK帮助文档
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用"使用对象来调用(注意:是"不用"而不是“不能”)
◆具有以下常用功能:
给数组赋值:通过 fill 方法。.
◆对数组排序:通过 sort 方法,按升序。
◆比较数组:通过 equals 方法比较数组中元素值是否相等。
◆查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
输出数组:

对数组进行排序:

对数组进行填充

冒泡排序
冒泡排序无疑是最为出名的排序算法之一,。总共有八大排序!
冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。
我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)。

标签:Java,变量,未完结,对象,元素,数组,类型,new
From: https://www.cnblogs.com/shangzhiqian/p/18033269

相关文章

  • Java HashMap merge() 方法
    在3020.子集中元素的最大数量【力扣周赛382】用哈希表统计元素个数使用点击查看代码classSolution{publicintmaximumLength(int[]nums){Map<Long,Integer>cnt=newHashMap<>();for(intx:nums){cnt.merge((long)x,1,In......
  • 【leetcode】数组篇刷题 --滑动窗口
    /**@lcapp=leetcode.cnid=209lang=cpp**[209]长度最小的子数组*找最短的子数组*///@lccode=startclassSolution{public:intminSubArrayLen(inttarget,vector<int>&nums){//滑动窗口,//一个计算总和intsum=0;......
  • java中的基础方法使用
    何谓方法?◆System.out.printIn(),那么它是什么呢?◆Java方法是语句的集合,它们在一起执行一个功能。◆方法是解决一类问题的步骤的有序组合◆方法包含于类或对象中◆方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我......
  • Leetcode 560 和为k的子数组
    Problem:560.和为K的子数组难点怎么通过前缀和找到和为k的子数组如官方题解所言,[j···i]的子数组=k可转化为pre[i]-pre[j-1]==k要找到前缀和找到和为k的子数组个数就是“找到当前前缀和pre[i]-之前求得的前缀和=k”的总情况。我们通过哈希表记录每个前缀和(的值)出......
  • Java基础12:JavaDoc生成文档
    JavaDoc1.javadoc命令是用来生成自己API文档的2.参数信息2.1@author作者名2.2@version版本号2.3@since指明需要最早使用的jdk版本2.4@param参数名2.5@return返回值情况2.6@throws异常抛出情况 ......
  • FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memo
    <---JSstacktrace--->====JSstacktrace=========================================Securitycontext:000000A526FA5891<JSObject>1:fromString(akafromString)[buffer.js:314][bytecode=0000010AE305A149offset=164](this=00000347695822D1&......
  • Java基础11:包机制
    1.包机制:1.1为了更好地组织类,Java提供了包机制,用于区别类名的命名空间1.2包语句的语法格式为:1.3一般利用公司域名倒置最为包名;1.4为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用`import`语句可以完成此功能 创建一个包......
  • Java的IO流
    夯实基础的第三篇:IO流1、流的概念流就是一连串的连续动态数据的集合,在Java的IO流中我们可以将其看做一个管道,将其包含输入输出流,Sourcet通过输入流将数据信息传给程序,而程序又通过输出流将数据信息传给目的地。就类似于我们从外部将东西传给程序就要输入流,我们从程序传给外部就......
  • DVWA-Javascript
    Javascript漏洞指的是通过某种方式绕过前端的javascript逻辑进行服务器访问。 --low级别:服务器端代码:提交token无效的结果如下:因为这里要求是在文本框中提交success内容,并且获取到最新token信息,才能提交成功。因此,先在文本框中输入success,然后再console控制台中,手动调用g......
  • Java学习笔记(1)
    常用DOS指令helloworld勾选文件扩展名创建.txt文件去掉.class后缀,运行java的执行原理组成跨平台使用IDEA创建项目之后直接编写代码使用Scanner接收输入数组静态初始化形式要注意数组的访问代码演示:publicclassMain{publicstaticvoidmain(......