【连载】corejava 第四天_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3226 | 回复: 0   主题: 【连载】corejava 第四天        下一篇 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-7-31 21:12:32 | [全部帖] [楼主帖] 楼主

Corejava连载 第四天

package corejava04;
import java.util.Arrays;
publicclass Corejava04 {
      publicstaticvoid main(String[] args) {
            //数组


            //声明


            int[] ary1;
            intary2[];//不建议这么写


            //动态初始化


            ary1=newint[4];
            //数组元素是自动初始化的,自动初始化为“零”值


            //什么事“零”值呢?


            // int : 0 float:0.0 char:\u0000 boolean:false Object:null
            //零值 不是说就是0 而是所对应类型的零值


      ary1=newint[]{1,2,3};//直接给元素初始化


            //ary1=new int[3]{1,2,3}; 这里报错了,动态初始化的时候,不能在[]里面写数值


            //静态初始化


      int[] ary3={1,2,3};//静态初始化只能在数组声明的时候同时初始化


            //ary3={2,3,4}; 编译错误,因为只能在声明时初始化


            //动态初始化

就没这个限制了,你可以先声明 然后再初始化也是可以的,上面的例子已经证明了


            //java关键字: if public class else while


            //特殊关键字: goto const


            //java中 true false null 不是关键字 是字面量


            //当你访问数组元素的时候要注意  不要越界了 


            //越界了要发送运行时异常ArrayOutofBoundException


            //这也是初学者很容易范的错误,但是解决起来也相对比较简单


            //你可以输出你取得下标是几,还有你的数组长度是几,对比下,很快能找到解决方法的


            //数组的复制和动态扩展


            //数组对象的大小是固定的,数组对象是不能扩展的


            //利用数组复制的方法实现数组扩展


      int[] ary4=newint[]{1,2,3,4};
            int[] ary5=newint[10];
            System.arraycopy(ary4, 0, ary5, 0,4 );
            //什么叫用数组复制的方法实现数组扩展呢


            //比如 原来的ary4是不是满啦,我现在想再加个元素,肯定加不进去了,那么我要扩展他


            //怎么扩展呢 先建个ary5 长度大一点 再把ary4的元素全部复制到ary5里面,这样就变相的实现了数组的扩展


      String[] ary6=new String[]{"1","2"};
            String[] ary7=new String[10];
            System.arraycopy(ary6, 0, ary7, 0,2 );
            System.out.println(ary6[0]==ary7[0]);//true
            //这块 我想说明的是��么问题呢, 就是 浅层复制


            //什么叫浅层复制呢 


            //就是说 在ary6里的 第一个元素 和ary7的第一个元素其实是同一个元素


            //因为对于对象来说 == 比较的是2个对象所在的地址,相等就代表是同一对象 


            //其实 还有一种叫做深层复制,在以后讲io的时候 应该会讲到


            //敬请期待哦 呵呵


            ary7=Arrays.copyOf(ary6, ary6.length*2);
            //Arrays.copyOf()这个方法其实和System.arraycopy()这个方法差不多的,不过用起来更方便点


            //所以建议大家都用这种方法


            //二维数组
            //int[][] ary8=new int[][1]; 编译出错
            //int[][] ary8=new int[1][];//正确
            //int[][] ary8=new int[1][1];//正确
            //int[][] ary8=new int[][]{};//正确
            //int[][] ary8=new int[][1]{};编译出错
            //int[][] ary8=new int[1][]{};编译出错
            //int[][] ary8=new int[1][1]{};编译出错


            //这种东西不用记 多用几次  叫我记 我也记不了  


      }
}




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论