Java学习笔记18天---(2)

局部变量:不是声明在类体括号里面的变量
    (1)必须要先赋值,后使用,否则通不过编译,局部变量没有默认初始化值
    (2)作用范围:定义开始到定义它的代码块结束
    (3)同一范围内,不允许2个局部变量命名冲突

    参数传递时,简单类型进行值转递    (参数进行传递时都会先去栈中生成一个副本的,使用结束后释放)
    
自动类型提升:
    byte a = 1;
    byte b = 2;
    a = a+b;          //编译出错自动类型提升成int
    a += b;       //自加没有自动类型提升问题
    类型自动提升规则:
        a和b作某种运算
        a和b中有double,结果就是double
        a和b中有float,结果就是float
        a和b中有long,结果就是long
        除此之外,结果都是int
    把高字节转成低字节,需要作强制类型转换. byte c=(byte)a+b;
    
移位运算符:效率最高
    >>   有符号右移,补符号位
        移负数位,则将该数值加32后再进行移位
        数值的2进制是按照补码保存的
    >>>  右移后高位都补0
    
逻辑运算符:
    &/|也可以作为逻辑运算符
    &&    先判断前面一个条件,如果为假,则不用计算后一个条件
    ||    先判断前面一个条件,如果为真,则不用计算后一个条件
    
" + "运算符:
    两个操作的对象是数值时,是加法
    如果有一个是字符串时,则是字符串的连接
    
流程控制语句:
    同Core C++
    switch中的变量类型只能是byte、 short、int、char四种类型
    
数组:
    声明数组:   
        数组能以下列形式声明:
            类型[] array;
            类型 array[];  
        注:
            JAVA中推荐用:类型[] array;
            一个数组是一个对象
            声明一个数组没有创建一个对象
            声明时不用指定长度
            
    创建数组:
        创建基本数据类型数组:int[] i = new int[2];
        创建引用数据类型数组:Student[] s = new Student[100];
        数组创建后其中的元素有初始值
            类型                     黙认值
            byte                         0
            short                        0
            int                          0
            long                         0l
            float                        0.0f
            double                   0.0d
            char                         /u0000
            boolean                    false
            reference types        null
        注:
            创建时一定要指定长度
            int[] i2=new int[];               //error
            
    初始化数组:
        声明、创建、初始化分开:
            int[] i;   //定义数组
            i = new int[2];     //分配空间
            i[0] = 0;       //初始化
            i[1] = 1;
            
        声明、创建、初始化在同一时间 :
            int[] i = {0,1};      //显示初始化  {}中有几个值,则数组长度为几
            Student[] s = {new Student(),new Student()};
            
        注:    int[] i=new int[]{1,2,3};         //后面[]中不可以写数值
            int[] i1=new int[3]{1,2,3};       //error
            
    二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组)
        int[][] i1 = new int[2][3];
        int[][] i4 = {{1,1,1},{2,2,2},{3,3,3}};
        int[][] i3 = new int[][3];        //不允许高维没分配空间而先给低维分配空间
        int[][] i2 = new int[2][];
        i2[0] = new int[2];
        i2[1] = new int[3];     
        
    数组长度:
        数组的属性length
        数组长度一旦确定,不可改变     
        int[] i = new int[5]; 则i.length= 5
        
    数组拷贝:
        系统类System提供的
        static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
            src: 源数组        
            srcPos: 从源数组哪个位置开始拷贝(位置指的是元素的下标)
            dest: 目标数组
            destPos: 拷贝的元素放到目标数组的起始位置
            length: 拷贝多少个
            
    数组排序:
        自己实现一个排序方法来进行排序
        或者调用java.util.Arrays.sort(Object o)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值