|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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]
- }
- }
- }
复制代码 |
-
内存存储
|