面向对象02和数组

在定义成员变量时可以对其初始化
如果不对其初始化,Java使用默认的值对其初始化。
成员变量有默认值;局部变量没有默认值
在这里插入图片描述
使用访问控制符,实现封装
在这里插入图片描述
Java 语言中除基本类型之外的变量类型都称之为引用类型
在这里插入图片描述
引用就是一个变量或对象的别名(引用的本质是一个对象);指针是一个段内存空间的地址(指向存储一个变量值的空间或一个对象的空间),记住C++里面的引用。

  • 栈(一个线程创建一个栈)

    • 存放:局部变量,方法
    • 先进后出,自下而上存储
    • 方法执行完毕,自动释放空间
  • 堆(所有线程共享一个堆)

    • 存放new出来的对象
    • 类里面的所有内容
  • 方法区(也在堆,特性跟堆一样):

    • 存放:类的信息(单纯的代码)、 static变量、字符串常量等.
      在这里插入图片描述

数组:

数组的复制:
System.arraycopy()
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)(可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置)

数组内存演示图:
1.开辟空间
在这里插入图片描述
2.数组处于默认值(数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个
元素也被按照实例变量同样的方式被隐式初始化)
在这里插入图片描述
3.栈指向堆
在这里插入图片描述
二位数组的初始化,以及在内存中位置
在这里插入图片描述
第二种方式:
在这里插入图片描述
多维数组内存分析:
在这里插入图片描述

命令行参数:
https://blog.csdn.net/liudongdong19/article/details/79519485

Java.uitl.Arrays
• 打印数组----toString方法。
• 比较两个数组是否相同----equals方法。
• 数组排序----sort方法。
• 数组查找----binarySearch 方法

int[] a = { 1, 2 };
System.out.println(a); // 打印数组引用的值;
//此处的Arrays.toString()方法是Arrays类的静态方法,不是前面讲的Object的toString()方法。
System.out.println(Arrays.toString(a)); // 打印数组元素的值;
-----------------------------------------------------------------
int[] a = {1,2,323,23,543,12,59};
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
-----------------------------------------------------------------
int[] a = {1,2,323,23,543,12,59};
System.out.println(Arrays.toString(a));
Arrays.sort(a);   //使用二分法查找,必须先对数组进行排序;
System.out.println(Arrays.toString(a));
//返回排序后新的索引位置,若未找到返回负数。
System.out.println("该元素的索引:"+Arrays.binarySearch(a, 12)); 

String(不可变字符序列)

String g1 = "我是你爸爸";
String g2 = "我是你爸爸";	//g1和g2存储在常量池中,而g3new了一个新对象,所以不相等
String g3 = new String("我是你爸爸");
System.out.println(g1 == g2); // true  指向同样的字符串常量对象
System.out.println(g1 == g3); // false  g3是新创建的对象
System.out.println(g1.equals(g3)); // true  g1和g3里面的字符串内容是一样的

数组的删除

1.基础版
static void removeElement(){
        //删除cc
        String[] s1 = {"aa","bb","cc","dd","ee"};
        System.arraycopy(s1,3,s1,3-1,s1.length-3);
        s1[s1.length-1]=null;
        for (int i = 0; i <s1.length ; i++) {
            System.out.println(i+"--"+s1[i]);
        }
    }

2.封装版
static String[] removeElement(String[] s1,int index){
        //删除指定元素
        System.arraycopy(s1,index,s1,index,s1.length-index-1);
        s1[s1.length-1]=null;
        for (int i = 0; i <s1.length ; i++) {
            System.out.println(i+"--"+s1[i]);
        }
        return s1;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值