数组的学习
1.数组的概念?作用是什么?
系统中存储多个值,
2.数组的定义?
数据类型[] 数组名;

3.定义好数组以后需要对其进行初始化
数组初始化有两种:
第一种动态初始化,指定数组的长度,长度指数组中可以存放多少条数据,一旦定义不能改变
动态初始化有两种
1,数组类型[ ] 数组名=new 数组类型[数组的长度]
2,数据类型[] 数组名;
数组名=new 数组类型[数组的长度]
如果数组动态初始化完成后,数组元素都会有一个默认值(原因:)
整数---0 小数--0.0 char--空格 boolean--false 引用数据类型----null
第二种静态初始化,
不是指定数组的长度,而是在初始化的同事给数组元素赋值
数组类型[] 数组名=new 数组类型[]{元素值1,元素值2,...}
获取,如何访问数组:
常见的数组异常:
ArrayIndexOutOfBoundsException 数组下标越界异常
NullPointerException 空指针异常

获取数组长度:数组名.length;
数组的遍历:
1.for循环

for(int i=0;i<arr7.length;i++){
sum=sum+arr7[i]; }

2.foreach
for(int a:arr) 数组第一个元素开始遍历,遍历后赋值给a,继续

for(int str:arr7){
System.out.println(str);
}

1.栈(Stack):主要存放局部变量
2.堆(Heap):new出来的东西都在堆里面.只要在堆里面的变量都有默认值
3,方法区(Method Area):存放.class文件
4.本地方法区:和操作系统有关
5.寄存器:和cpu有关

冒泡排序
两两比较

从大到小
10,20,30,40,50,60,70
----
20,30,40,50,60,70,10 第一趟 6次
30,40,50,60,70,20,10 第二趟 5次
40,50,60,70,30,20,10
50,60,70,40,30,20,10
60,70,50,40,30,20,10
70,60,50,40,30,20,10 第六趟 1次

7个数比较6趟
N个数比较n-1趟

次数=7-趟数

 package day04;
/**
* n个数字来排队,两两比较小靠前
* 外层循环n-1
* 内层循环n-1-i
* @author ASUS
*
*/
public class Demo2 {
public static void main(String[] args) {
//从大到小
int arr[]={10,20,30,40,50,60,70};
//外层循环控制趟数
for(int i=0;i<arr.length;i++){
//内存循环控制次数 for(int j=0;j<arr.length-i-1;j++){
//从大到小 <
if(arr[j]<arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
} }
for(int num:arr){
System.out.println(num);
} }
}

二维数组;数组中的数组
定义格式:
数组类型[][] 数组名;
第一个中括号代表二维数组中有几个一维数组 行
第二个中括号代表每个一维数组中有几个元素 列
二维数组初始化
动态初始化
静态初始化

 package day04;
/**
* 二维数组
* @author ASUS
*
*/
public class Demo3 { public static void main(String[] args) {
//1.动态创建数组
int[][] arr=new int[3][4];
arr[0][1]=10; //静态初始化
int [][]arr1=new int[][]{{12,89,56},{75,45,45}}; //最简单
int[][] arr2={{12,89},{75,45,54},{75,41,54}}; //遍历二维数组
//外层控制行
for(int i=0;i<arr2.length;i++){
for(int j=0;j<arr2[i].length;j++){
System.out.println(arr2[i][j]+"\t");
}
}
}
}

常用知识点:

数组的复制与反转:

 //复制
final int arr5[]=arr4.clone();
System.out.println("数组的复制"+Arrays.toString(arr5));
//反转
for(int i=0;i<arr4.length/2;i++){
final int temp=arr4[i];
arr4[i]=arr4[arr4.length-1-i];
arr4[arr4.length-1-i]=temp;
} System.out.println("反转后的数组"+Arrays.toString(arr4));
数组的打印:System.out.println(Arrays.toString(arr5));
 //4.将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|C罗|罗纳尔多|贝克汉姆”。
String [] arr2={"梅西","卡卡","c罗","罗纳尔多","贝克汉姆"};
for(final String str:arr2){
System.out.print(str+(str.equals(arr2[arr2.length-1])?"":"|")+" ");
}
 System.out.print(str+(str.equals(arr2[arr2.length-1])?"":"|")+" ");
 

关于java基础_数组的学习的更多相关文章

  1. 【BigData】Java基础_数组

    什么是数组?数据是可以装一组数据的变量 1.定义数组 float[] arr1 = new float[10]; // 可以装10个float数据 int[] arr2 = new int[10]; ...

  2. 13.Java基础_数组内存图

    单个数组内存图 new int[3]: 在堆内存里申请一块空间存储int类型的变量(初始化时值都为0) int[] array: 在栈内存申请一块内存存储堆内存里数组的首地址 array[i]: 通过 ...

  3. 关于java基础_方法的学习

    方法: 方法就是把一堆需要反复执行的代码封装起来,如果项目需要调用这段代码时,直接调用方法名即可 方法相当于榨汁机, 材料:水果 产出物:果汁 参数(材料):进入方法的数据 返回值(产出物):就是方法 ...

  4. 【java开发】数组基本学习

    一维数组 定义:具有相同数据类型的一组数据. 声明:int []a=new int[3];    释义:该数组的数据类型为int型,该数组长度为3,有3个元素 可采用如下方式为元素赋值:a[0]=1; ...

  5. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  6. Java基础-反转数组

    /** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...

  7. java基础(十) 数组类型

    1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...

  8. java 基础概念 -- 数组与内存控制

    问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...

  9. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...

随机推荐

  1. mysql无法远程连接问题(ERROR 1045 (28000): Access denied for user 'root')

    mysql版本 : 8.0.21 使用mysql 作为nextcloud的数据库.之前使用挺正常的,因为被黑客勒索过一次,重新启动了一个mysql的docker镜像. 结果数据库配置老是失败,next ...

  2. unity探索者之socket传输protobuf字节流(二)

    版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/6977935.html 上一篇主要说的是protobuf字节流的序列化和解析,将pr ...

  3. Eclipse中构建maven项目的两种方式

    Eclipse中构建maven项目的两种方式 方式一: 1.构建maven项目 1.1 新建meven项目,可在Other中找到maven文件夹 1.2 进入maven项目后,点击next 1.3 在 ...

  4. idea 推送jar包到maven私库

    1.推送到本地仓库 idea直接install即可 2.推送到公司私库 2.1 使用配置公司仓库地址的setting文件 <?xml version="1.0" encodi ...

  5. NeuroAttack: Undermining Spiking Neural Networks Security through Externally Triggered Bit-Flips

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2005.08041v1 [cs.CR] 16 May 2020 Abstract 由于机器学习系统被证明是有效的,因此它被广 ...

  6. Linux MPI环境配置

    参考:https://blog.csdn.net/lusongno1/article/details/61709460 注意点: 1. /etc/profile.d/user.sh和/etc/ld.s ...

  7. kali安装open-vm-tools实现虚拟机交互

    普通的VMware tools 弱爆了 安装具有复制粘贴功能的open-vm-tools.servic: 切记:如果之前已经安装了VMware tools,一定要删除:vmware-uninstall ...

  8. 09.redis 哨兵主备切换时数据丢失的解决方案

    一.两种数据丢失的情况 1. 异步复制导致的数据丢失   因为master->slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了 2 ...

  9. 0827考试 T1

    Description ​ 有一棵树,每个点有一个权值,找到一个权值最大的"乙烷"模型. ​ "乙烷"模型是指: ​ 其中黑点表示可以有0个或多个点. Samp ...

  10. gson 处理null

    1.定义null处理类 class StringConverter : JsonSerializer<String?>, JsonDeserializer<String?> { ...