鱼C论坛

 找回密码
 立即注册
查看: 2604|回复: 0

[学习笔记] JAVA学习Day5【数组】

[复制链接]
发表于 2020-8-16 20:46:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 糖逗 于 2020-8-16 20:59 编辑

学习视频:https://www.bilibili.com/video/BV17J411G72L?p=20

85-101
/*
*数组(有限个类型相同的变量)
*/

class test05_01{
        public static void mian(String[] args){
                int[] scores = new int[2];//声明数组
                scores[0] = 99;
                scores[1] = 100;
                //打印数组的长度
                System.out.println(scores.length);
        }
}

/*
*数组初始化(1)动态初始化(2)静态初始化
*/


class test05_02{
        public static void main(String[] args){
                int[] scores;
                //静态初始化
                scores = new int[]{33, 45, 11, 87, 99, 100};
                //遍历数组
                for(int i = 0; i < scores.length; i++){
                        System.out.println(scores[i]);
                }
                

        }
}

/*
*静态数组内存
*int[] array = {1, 3, 4, 5};其中int[]是一种数据类型,数组类型,它是一种引用数据类型
*引用,表示引用一个对象,引用堆中的一块内存
*java程序是在JVM中运行的,JVM中的内存主要有两块区域:栈和堆
*其中栈存储局部变量(现在见到的变量都是局部变量)堆中存储的是对象
*array是引用数据类型,表示引用堆中这个对象的变量,数组名中存储的是数组的首地址
*
*1.数组下标为什么从0开始?下标表示的是这个元素的位置距离首地址的偏移量
*2.数组名中存储的是什么?数组名中存储的是数组在堆中的一整块区域的首地址
*3.数组的元素如何存储?在堆中依此连续的存储
*/
class test05_03{
        public static void main(String[] args){
                int[] array = {1, 3, 4, 5};
                System.out.println(array);
                //返回的结果是 数组对象的类型@对象的hashCode编码值

        }
}


/*
*动态初始化(1)如果没有手动赋值之前,数组的元素有默认值
*元素是基本数据类型
*byte,short,int,long:0
*float,double:0.0
*char:\u0000 字符编码为0的空字符
*boolean:false
*元素是引用数据类型:null
*/

class test05_04{
        public static void main(String[] args){
                char[] letters;
                letters = new char[26];
                for(int i = 0; i < letters.length; i++){
                        letters[i] = (char)('A' + i);
                }

        }
}

/*
*数组初始化存储(动态数组)栈存储首地址
*/

class test05_05{
        public static void main(String[] args){
                int[] array = {1, 5, 7};
                //最大值,最小值
                int max = array[0];
                for(int i = 1; i < array.length; i++){
                        if(array[i] > max)max = array[i];
                }
                System.out.println("最大值是:" + max);
        }
}

/*
*数组反转(原地址不变)
*/
class test05_06{
        public static void main(String[] args){
                //(1)建立一个新数组,逆序赋值
                char[] newLetter = new char[letters.length];
                for(int i = 0; i < newLetter.length; i++){
                        newLetter[i] = Letter[letters.length - 1 - i];
                }
                letters = newLetter;
                for(int i = 0; i < letters.size(); i++){
                        System.out.println(letters[i]);
                }
                //(2)首尾互换
                for(int i = 0; i < lettes.length / 2; i++){
                        char temp = letters[i];
                        letters[i] = letters[letters.length - 1 - i];
                        letters[letters.length - 1 - i] = temp;
                }
        }
}


/*
*数组复制
*/

class test05_07{
        public static void main(String[] args){
                //(1)复制一个和原来一样的数组,长度和元素
                int[] arr = {1, 2, 3, 4};
                int[] newArr = new int[arr.length];
                for(int i = 0; i < newArr.length; i++){
                        newArr[i] = arr[i];
                }
                //(2)赋值一个比原来数组短的(截取)
                int[] newArr = new int[end - start + 1];
                for(int i = 0; i < newArr.length; i++){
                        newArr[i] = arr[start + i];
                }
                //(3)复制一个比原来常的
                int[] newAR = new int[arr.length * 2];
                for(int i = 0; i < arr.length; i++){
                        newArr[i] = arr[i];
                }
                //(4)复制一个新数组,新数组的长度有键盘输入,长度不定
                java.util.Scanner input = new java.util.Scanner(System.in);
                System.out.print("请输入新数组的长度:");
                int len = input.nextInt();
                int[] newArr = new int[len];
                for(int i = 0; i < arr.length && i < newArr.length; i++){
                        newArr[i] = arr[i]
                }
        }
}

内存存储

内存存储

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 19:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表