`
cpf1985
  • 浏览: 76606 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java数组

    博客分类:
  • java
阅读更多

--java里面的数组不能这样写int a[5];
 *为什么呢?如果这样写的话一般情况下会将五个内存空间分配到栈上,但是java的数据是放在堆上的,栈上只能分配一个指针地址而已
 *数组的神明有两种方式int[] a;或者int a[];
--数据的问题
 方法中int[] a=new int[5];由于使用了new关键字,那么数组中的值(堆中已经分配内存)都被初始化成了0(初始化规则和类的成员变量一致);如果只值类型就能直接使用里面元素了,如果是引用类型,由于初始化成null所以不能使用
 如果不需要系统默认的给数组给初始值,而是我们手动给值,那么就不能显示的制定数据的长度,比如int[] a=new int[3]{1,2,3}这样的写法是错误的
--初始化的方式
 第一种:动态初始化.int[] i=new int[3];i[0]=1;i[1]=2;i[2]=3;
 第二种:静态初始化.int[] i={1,2,3}内存执行过程和动态初始化完全一致,只是编译器层面的一次封装而已
 第三种:int[] k=new int[]{1,2,3};也只是编译层面的封装,和动态初始化的内存执行过程一致
--注意字符串到基本数据类型的转换不能用(int)类似的方式强转,而必须使用Interger.parseInt()这种对应的封装类型做转换
--java里面的多维数组在内存中是树状形式分配的
 所以必须要有了根再有干再有叶子
 这也是为什么int[][] i=new int[3][4]正确
        int[][] i=new int[3][]正确
        int[][] i=new int[][4]错误
        int[][] i=new int[][]{{1,2},{1,2,3},{4,5,6}};正确(也是如果手动分配的时候不能写任何长度)
        int[][] i={{1,2},{3,4}}正确
 由于是树状的那么i[0]也是一个数组哦,是一个引用类型指针变量,掌握了这个就掌握了一切
 所以分析这样的问题(注意理解内存分配过程)
 int[][] i=new int[3][4];其中i[0]不为空
 int[][] i=new int[3][];其中i[0]为空       
分享到:
评论

相关推荐

    Java数组练习题(带答案).doc

    Java数组阶段的选择题、填空题、编程题、判断题都有,适合想自己测试下的学生以及准备出题的老师

    Java数组与内存控制

    Java数组在内存分配方面的知识;Java数组的静态特征;对于数组变量而言,一定要区分它何时是数组变量,何时代表数组对象本身。

    java数组初始化详解

    java 数组初始化 详解 doc

    java 数组求和计算

    java 数组求和计算 java 数组求和计算 java 数组求和计算

    第03讲 JAVA数组.ppt

    第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt

    Java数组详细讲解

    Java数组的详细资料纤细介绍了Java数组的使用从零开始学习Java数组解决你学习过程中遇到的问题........

    java 数组下标越界异常(ArrayIndexOutOfBoundsException)

    java 数组下标越界异常(ArrayIndexOutOfBoundsException) java 数组下标越界异常(ArrayIndexOutOfBoundsException)

    java数组排序

    java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。

    Java数组越界问题实例解析

    主要介绍了Java数组越界问题实例解析,具有一定参考价值,需要的朋友可以了解下。

    java数组扩容2

    Java数组扩容的原理  1)Java数组对象的大小是固定不变的,数组对象是不可扩容的。  2)利用数组复制方法可以变通的实现数组扩容。  3)System.arraycopy()可以复制数组。  4)Arrays.copyOf()可以简便的...

    java 数组和字符串

    java 数组和字符串

    46.java数组遍历1.zip

    46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip...

    43.java数组定义1.zip

    43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip...

    22.java数组的复制.zip

    22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组...

    20.java数组空间分配.zip

    20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间...

    45.java数组动态初始化.zip

    45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...

    44.java数组静态初始化.zip

    44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...

    java数组结构图

    对数组的总结和分析,通过这个结构记住它,在开发的过程中使用

    Java数组工具类

    Java数组工具类

    JAVA 数组中方法(笔记)

    有关JAVA数组中方法的讲解,此教程为文档教程,此文档为JAVA中数组的上半部分。

Global site tag (gtag.js) - Google Analytics