变量:存储单个数据
数组:存储多个数据 数组的特点:1.数组是一个引用数据类型2.数组是一个容器,长度一旦确定不能改变3.数组中数据类型相同4.数组中数据是有序的数组的声明方式:1. 数据类型[] 数组名;

数据类型: 当前数组中所有数据的数据类型 基本数据类型|引用数据类型

操作数组中的数据:    0~ 数组名.length-1(数组名。index)索引|下标  从0开始 数组名[索引]
在数组中最后一个数据的索引:  数组名.length-1
数组的长度 :数组名.length  数组的遍历:1.普通for循环2.增强for循环   for..eachfor(数据类型 变量名i:容器名|数组名){i就是数组中的每一个数据,不是索引  从前向后遍历}增强for只能获取值不能赋值

数组:数组是存储同一种数据类型数据的集合容器。
数组的定义格式:
数据类型[] 变量名 = new 数据类型[长度];
分析数组:
左边: int[] arr 声明了一个int类型的的数组变量,变量名为arr。
int : 表示该数组容器只能存储int类型的数据。
[] : 这是一个数组类型。
arr : 变量名.
右边:new int[50]; 创建了一个长度为50的int类型数组对象。
new : 创建数组对象的关键字。
int: 表示该数组对象只能存储int类型数据。
[]: 表示是数组类型。
50 : 该数组最多能存储50个数据。数组的容量。

数组的好处: 对分配到数组对象中每一个数据都分配一个编号(索引值、角标、下标),索引值的范围是从0开始,最大是: 长度-1.

局部变量: 如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。
成员变量: 成员变量就是定义在方法之外,类之内的.

class Demo4 如何静态赋值 查看容量 返回全部值。
{
public static void main(String[] args)
{
//定义一个数组
int[] arr = new int[4];
arr[0] = 10;
arr[1] = 30;
arr[2] = 50;
arr[3] = 90;
//System.out.println(“数组的容量:”+ arr.length); //数组的有一个length 的属性,可以查看数组 的容量。
//System.out.println("arr[2] = "+ arr[2]);
//查看数组中的所有数据。
for(int index = 0 ; index<arr.length ; index++){
System.out.println(arr[index]);
}
}

数组的内存分析:
class Demo5
{
public static void main(String[] args)
{
int[] arr1 = new int[2];
int[] arr2 = new int[2];
arr1[1] = 10;
arr2[1] = 20;
System.out.println(arr1[1]); // 吴: 10 李:10

 int[] arr1 = new int[2];arr1[1] = 100;int[] arr2 = arr1;arr1[1] = 10;arr2[1] = 20;System.out.println(arr1[1]);  // 20 20 20
}

数组中最常见的问题:
1. NullPointerException 空指针异常
原因: 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。
2. ArrayIndexOutOfBoundsException 索引值越界。
原因:访问了不存在的索引值。
class Demo6
{
public static void main(String[] args)
{
int[] arr = new int[2];
arr = null ; //null 让该变量不要引用任何的对象。 不要记录任何 的内存地址。
arr[1] = 10;
System.out.println(arr[1]);

 int[] arr = new int[4];arr[0] = 10;arr[1] = 30;arr[2]  =40;arr[3] = 50;//System.out.println(arr[4]); //访问索引值为4的内存空间存储的值。           for(int index = 0 ; index<=arr.length ; index++){System.out.print(arr[index]+",");}
}

}

需求:编写一个数组的工具类。
Arrays.toString() [1,2,3,4];
sort()

//数组工具类
class ArrayTool{

public static String toString(int[] arr){String result  = "";for(int i = 0;  i < arr.length ; i++){if (i==0){result+="["+arr[i]+",";}else if(i==(arr.length-1)){result+= arr[i]+"]";}else{result+=arr[i]+",";}}return result;
}

public static String toString(int [] arr){
String result="";
for(int i=0;i<arr.length;i++){
if(i0){
result="["+arr[i]+","+result;
}else if(i(arr.length-1)){
result=arr[i]+"]";
}else{
result=arr[i]+","+result;
}
}
}

public static void sort(int[] arr){for(int i = 0; i < arr.length-1 ; i++){for(int j = i+1 ; j<arr.length ; j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}
}

}

class Demo3
{
public static void main(String[] args)
{
int[] arr = {12,1,456,165};
//ArrayTool tool = new ArrayTool();
ArrayTool.sort(arr);

 String info = ArrayTool.toString(arr);System.out.println("数组的元素:"+ info);
}

}
/*/**

public class Demo05{
public static void main(String[] args){
//动态初始化:
double[] arr=new double[4];
//通过索引获取值
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);

 //通过索引赋值arr[0]=1;arr[1]=2;arr[2]=3;arr[3]=4;System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);//静态初始化  char[] arr2=new char[]{'a','b','c'};System.out.println(arr2);  //字符数组->可以直接打印数组中的内容System.out.println(arr2[0]);System.out.println(arr2[1]);System.out.println(arr2[2]);//推荐 静态初始化的简略定义方式String[] arr3={"杨建秋","宋灿","戴子烨","李凯","丁胜胜"};System.out.println(arr3); System.out.println(arr3[0]); System.out.println(arr3[1]);System.out.println(arr3[2]);System.out.println(arr3[3]);System.out.println(arr3[4]);//普通for   遍历的是数组的索引for(int i=0;i<arr3.length;i++){System.out.println(arr3[i]);}//for .. eachfor(String i:arr3){System.out.println(i);}int[] arr4=new int[6];int num=11;//普通for循环赋值for(int i=0;i<=arr4.length-1;i++){  //i代表数组的索引arr4[i]=num;num++;}//遍历  只能获取值不能赋值for(int i:arr4){System.out.println(i);}arr=new double[1];arr3=new String[]{"你好"};
}

}

java 基础 数组2相关推荐

  1. Java基础---数组练习(最大值、最小值的索引)

    Java基础–数组练习 1.将一维数组的遍历,封装成方法public static void arrayBianli(int[] arr) {for(int i = 0;i<arr.length ...

  2. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础--数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  3. Java基础数组编写酒店管理系统

    文章目录 Java基础数组编写酒店管理系统 需求说明: 实现代码: ①酒店类(Hotel.java) ②房间类(Room.java) ③酒店管理测试类(HotelMgtSystem.java) 测试结 ...

  4. Java 基础——数组解析

    数组对于每一门编辑应语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 可以声明一个数组变量,如numbers[100 ...

  5. Java基础---数组内容详解

    数组 概念:内存中开辟的一块连续的空间,用来存储有限个相同数据类型的数据定义格式:元素的数据类型[] 数组名称 = new 元素的数据类型[数组长度]简化格式:元素的数据类型[] 数组名称 ={值1, ...

  6. 【Demo 0003】Java基础-数组

    本章学习要点:       1.  了解数组的基本概念:       2.  掌握数组使用方法: 一.数组的基本概念 1.  数组定义: 同一数据类型数据的集合,在Java中它也是一种数据类型:数组按 ...

  7. Java基础——数组实现+排序实现福利彩票抽奖

    import java.util.Arrays; import java.util.Random; import java.util.Scanner;/*** 31选7* 1,获取中奖号码* 1,需要 ...

  8. 康师傅-java基础-数组

    p156 - p 一维数组 声明.分配空间.赋值 type[] var; Java 语言中声明数组是不能指定其长度(数组中元素的数),例如:int a[5]; 动态初始化:数组声明且为数组元素分配空间 ...

  9. 黑马程序员——Java基础---数组与集合之间转换

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  10. Java基础--数组的认识(通透!!!)

    文章目录 一/简单回顾 二/ 引子 三/ 数组 (1)概念 (2)性质 (3)写法 1)数组的声明(创建) 2)举例 3)补充 (4)数组的初始化 1)静态初始化 2)动态初始化 3)总结 (5)数组 ...

最新文章

  1. QuartZ Cron表达式详解
  2. 【Linux】一步一步学Linux——gdb命令(258)
  3. 推荐:Dapper扩展-Dapper.SimpleCRUD
  4. 【Flink】Flink 消费 kafka 实现 限流处理 RateLimiter
  5. 《机器学习实战》第二章学习笔记:K-近邻算法(代码详解)
  6. XX基金 机器学习平台使用情况访谈总结
  7. Acer 4750 安装黑苹果_黑苹果 MacOS 10.15 Catalina 最新安装教程
  8. 把业务逻辑变成数据结构和SQL语句的例子。自然架构改成自然框架
  9. ES(Elasticsearch)更改字段索引
  10. 【栈】实现逆波兰计算器
  11. 传统数据与大数据对比
  12. Linux【网络库】| 【02 <netdb.h>】以及网络常用结构体
  13. VS Code 报Windows找不到文件‘chrome‘. 请确定文件名是否正确后,再试一次。八种解决办法
  14. MySQL提权——udf提权
  15. 极其简单的Flutter 屏幕适配
  16. mysql root password_MYSQL安装时解决要输入current root password的方案
  17. Android TabLayout修改指示器宽度方案汇总
  18. VBA中引用单元格与区域
  19. [申卡心得] 农行最新最全申请进度代码汇总!
  20. 王维:送綦毋潜落第还乡

热门文章

  1. 联想电脑管家哪里下载及验证保修期
  2. FreeRTOS(基础)
  3. Packet Capture(Android APP端抓包工具)
  4. Vue+i18n多语言动态设置(保姆级案例教程)
  5. 电子地图2007_科技观察 ▏电子地图,不止出行!
  6. AttributeError: XX object has no attribute XX问题案例分享
  7. 教程-利用壹伴插件一键采集图文
  8. 品牌好的舆情数据监测平台有哪些,品牌舆情趋势监测方案?
  9. 【正点原子FPGA连载】第十一章 触摸按键控制LED灯实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  10. 服务器查看光模块信息的命令,能不能通过命令查看到端口上所接光模块的信息...