Java 数组详解

本文详细介绍了Java中的数组概念,包括数组的定义、初始化、访问、遍历、复制及排序算法。数组是一种线性数据结构,用于存储相同类型的数据。在Java中,数组长度在创建后不可改变,可以通过`System.arraycopy()`进行复制,或使用`Arrays.copyOf()`进行扩容。此外,还展示了冒泡排序算法的实现。
摘要由CSDN通过智能技术生成

Java 数组

什么是数组?
程序=算法+数据结构
前面所学习的if ,if-else switch 循环 解决的都是流程问题,即算法问题。
所谓的数据结构,简单说就是把数据按照特定的某种接二狗来保存,设计一个合理的数据结构是解决问题的前提。
数组就是最基本的一种数据结构。

数组的官方定义

相同数据类型的元素组成的集合
元素按线形顺序 所谓线形顺序是指除第一个元素外,每一个元素都有唯一一个前驱元素,除最后一个元素外,每一个元素都有唯一一个后驱元素(一个跟一个)。可以通过元素所在位置的顺序号(下标)做标识来访问每一个元素
(从下标从0开始,最大的元素个数为-1)

定义基本类型数组

声明一个数组的语法:
数据类型 [ ] 数组名=new 数据类型[大小]
int [ ] arr//声明了一个数组,但是没有指定长度,(没有创建数组的实例,没有实例化)
int [ ] arr=new int[10];//创建了长度为10的数组 中括号种不指定数值会报错(创建的数组的实例并且指定了长度为10)
ps:实例和声明的区别在于虚拟机是否为当前变量分配了空间

此时的数组并没有初始化(给数组元素赋值),但是有默认值,不同的数据类型对应不同的默认值

int[]:指定数组类型,表示数组中的每一个元素都是int类型
arr:数组类型变量名 (引用)
[10];数组的长度 即数组中元素的个数

定义基本类型数组的要点
1,要有确切的数据类型
2,要有整体的数组名称
3,不能缺少的[ ]
4,执行new语句才能使得数组分配到指定大小的内存空间
int[ ] arr 与int arr[ ] 两种写法均可
声明数组是不规定数组长度,new关键字分配空间时需要指定分配的空间大小

数组的初始化

基本类型数组创建之后,其元素的初始值,byte short char int long 为0
float和double则为0.0 boolean为false
可以在数组声明的同时对数组的元素进行初始化
例如:int【】arr={10,12,23,30,21}
ps:
1.元素的个数即为数组的长度,
2.此种写法只能用于声明时的初始化,不能用于赋值,如下面代码就会出现编译错误

       int[] arr=new int[10];
	   arr= {,2,3,2,1}
	   //错误
	   int[] arr= {1,2,3,2,1};//正确

可以通过下面的方式给已经声明的数组类型变量进行初始化

   int[]  s;
	s=new int[] {1,2,3,4,5};//先声明后初始化
数组的访问

获取数组的长度,
调用数组的lenght属性就可以获取数组的长度

//创建并初始化数组
	   int[]  s=new int[] {1,2,3,4,5};
	   int a=s.length;
	   System.out.println(a);//5

通过下标访问数组中的元素
数组中的元素通过下标的方式进行访问
ps:下标从零开始,最大到length-1

遍历数组元素

遍历数组元素,通常选择for循环语句,循环变量作为访问数组的下标,即可访问数组中的没一个元素

int[]  s=new int[] {1,2,3,4,5};
	   int r=s[2];
	   //交换数组下标为2和3的两个相邻元素的值
	   s[2]=s[3];
	   s[3]=r;
	   //System.out.println(s);//[I@1efbd816  散列码  数组不能直接输出
	   //输出当前数组在内存中的散列码(hashcode值)

	   for (int i = 0; i < s.length; i++) {
		System.out.println(s[i]+" ");
	}

遍历数组元素,逆序输出

	 //逆序输出
	   for (int i =s.length-1 ; i >= 0; i--) {
		System.out.println(s[i]+" ");
	}
数组的复制

System.arraycopy()方法
public static void arraycopy
System.arraycopy(src, srcPos, dest, destPos, length);

src:原数组
srcPos:原数组中的起始位置
dast:目标数组
destPos: 目标数组中的起始位置
length :要复制的数组元素的数量

数组的扩容

数组的长度在创建后是不可改变的
java中没有提供任何方法用于改变一个已经定义和的数组的长度

int[] arr=new int[10];
arr=new int[11];//这并非是在原数组的基础上进行长度的改变
//这其实是创建一个新的数组
//其实是在内存中开辟出了一个新的空间
//并把新的空间的引用(内存地址)赋值给了arr

所谓的克隆是指创建一个更大的新数组并将原有数组的让人复制到其中

String是不能改变的 但是StringBuffer是可以改变的
Arrays.copyof()简便实现数组的扩展

int[] a= {10,20,30,40,50};
System.out.println(a.hashCode());
//扩容   创建了一个比原数组更长,并且包含原数组的所有内
a=Arrays.copyOf(a, a.length+1);
System.out.println(a.hashCode());
//hashCode返回当前数组在内存的地址值(返回时处理后的十进制)。
数组冒泡排序算法

冒泡排序的原则
比较相邻的元素,如果违反最后的顺序准则,则交换
实现
可以简化理解为
第一次找到所有元素中最大的元素并放在最后一个位置中,不再变动
第二次找到剩余元素中最大的值放置在倒数第二个位置上
以此类推

        int  arr[]=new int[10];
		Random ran=new Random();
		for(int i = 0;i<arr.lenght;i++){
		arr[i]=ran.nextInt(100);
		}
		System.out.println(Arrars.toSting(arr));
		//随机了一个1-100之间的10位数组   并且输出这个数组
Burp Suite 能高效率地与单个工具一起工作,例如:一个中心站点地图是用于汇总收集到的目标应用程序信息,并通过确定的范围来指导单个程序工作。在一个工具处理HTTP 请求和响应时,它可以选择调用其他任意的Burp工具。例如:代{过}{滤}理记录的请求可被Intruder 用来构造一个自定义的自动攻击的准则,也可被Repeater 用来手动攻击,也可被Scanner 用来分析漏洞,或者被Spider(网络爬虫)用来自动搜索内容。应用程序可以是“被动地”运行,而不是产生大量的自动请求。Burp Proxy 把所有通过的请求和响应解析为连接和形式,同时站点地图也相应地更新。由于完全的控制了每一个请求,你就可以以一种非入侵的方式来探测敏感的应用程序。当你浏览网页(这取决于定义的目标范围)时,通过自动扫描经过代{过}{滤}理的请求就能发现安全漏洞。IburpExtender 是用来扩展Burp Suite 和单个工具的功能。一个工具处理的数据结果,可以被其他工具随意的使用,并产生相应的结果。 由于Burp2.0.12以后的版本更改了算法,原破解补丁已经失效。。Burp2.0.12以前的版本可以继续破解使用。 此次分享版本为2.0.11beta,同时附有破解补丁和汉化补丁,破解完成后打开bat文件即可使用(破解方法不做赘述,请自行论坛内搜索)。 直接点击bat文件即可运行,如果不行,利用破解补丁先自行破解下,和前几个版本破解补丁使用方法一样!
要下载和安装Burp Suite,你可以按照以下步骤进行操作: 1. 打开你的浏览器,访问Burp Suite的官方网站:https://portswigger.net/burp。 2. 在官方网站的主页上,你会看到一个"Get Started with Burp Suite"的按钮。点击这个按钮。 3. 你会看到两个版本的Burp Suite:Community Edition(免费版)和Professional Edition(专业版)。点击"Download Community Edition"按钮,以获取免费版。 4. 下载完成后,找到下载文件并双击打开。根据你的操作系统选择正确的安装程序。 5. 在安装过程中,你可以选择自定义安装位置,也可以保持默认设置。根据你的需求进行选择,并点击"Next"按钮。 6. 接下来,你需要阅读并接受许可协议。勾选"我接受许可协议"选项,并点击"Next"按钮。 7. 在接下来的步骤中,你可以选择创建一个桌面快捷方式和开始菜单项。根据你的需求进行选择,并点击"Next"按钮。 8. 点击"Install"按钮开始安装过程。 9. 安装完成后,将会显示一个"Installation Complete"界面。确保勾选"Launch Burp Suite Community Edition"选项,并点击"Finish"按钮。 10. Burp Suite将会启动,并打开一个欢迎界面。在这里,你可以选择导入或创建一个新的项目。如果你是初学者,可以选择导入一些演示项目进行学习。 恭喜!你已经成功下载和安装了Burp Suite。现在你可以开始学习和使用这个强大的渗透测试工具了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值