7.19Java笔记

容器,集合

之前学过的容器  数组

弊端:只能存指定数据类型  数组长度不可改变

List  接口

实现类:ArrayList  Linkedlist  Vestor

List list = new ArrayList();

List中常用的方法:

添加元素

list.add("A");

获取元素

Object obj=list.get(2);

在指定位置插入元素

list.add(1,44);//插入后面元素往后移

将元素替换指定位置的元素

list.set(2,22);

是否包含某一对象

boolean bool=list.contains(22);

判断是否包含另外一个集合中的所有元素

list.addAll(lista);

依次添加lista中元素

list.add(lista);

将lista加入list中[A, 44, 22, null, 33.33, 343, [33.33, null, sdfw]]

删除元素

list.remove("A");

删除掉找到的第一个元素

参数传对象  删除这个对象 返回boolean

参数传下标  删除这个下标位置对象,返回这个对象

打印出每个元素

for(int i=0;i<list.size();i++){

    System.out.println(list.get(i));

}//打印出每个元素

for(Object item:list){}

ArrayList 扩容方式

初始容量 10

扩容 1.5倍

LinkedList 链表

LinkedList 和ArrayList 性能比较

ArrayList 是通过数组存储数据的,查找数据提别快 插入和删除慢

LinkedList 查找速度慢一些,插入删除快一些,因为查找慢一些,通过双向检索加快

1、父类静态代码块

2、子类静态代码块

3、父类成员代码块

4、父类构造方法

5、子类的成员代码块

6、子类的构造方法

public class EasyBlock {

    static {

        //静态代码块  一个类的静态代码块只会执行一次

        //加载类对象时执行

        System.out.println("这是静态代码块");

    }

    {

        //成员代码块  每一次new对象时执行

        //成员代码块在构造方法之前运行

        System.out.println("成员代码块");

    }

    EasyBlock(){

        System.out.println("无参构造方法");

    }

    EasyBlock(int  num){

        System.out.println("带参构造方法");

    }

    public static void main(String[] args) {

        //new EasyBlock();

       // new EasyBlock(1);

        new EasySon();

    }

}

 class EasySon extends EasyBlock {

    static {

        //静态代码块  一个类的静态代码块只会执行一次

        //加载类对象时执行

        System.out.println("子类----这是静态代码块");

    }

    {

        //成员代码块  每一次new对象时执行

        //成员代码块在构造方法之前运行

        System.out.println("子类-----成员代码块");

    }

    EasySon(){

        System.out.println("子类------无参构造方法");

    }

    EasySon(int  num){

        System.out.println("子类------带参构造方法");

    }

}

 1. 静态内部类

静态内部类是用 static 修饰的类,属于外部类的一部分,但不可以访问外部类的实例变量和实例方法,只能访问外部类的静态变量和静态方法。静态内部类可以直接通过外部类的名称进行访问。

2. 成员内部类)

成员内部类是定义在外部类的成员位置的类,不用 `static` 修饰。成员内部类可以访问外部类的所有成员(包括私有成员),也可以访问外部类的实例变量和方法。

class OuterClass {

    private int outerInstanceVariable = 20;

    class MemberInnerClass {

        void display() {

            System.out.println("Member Inner Class, outerInstanceVariable: " + outerInstanceVariable);

        }

    }

}

3. 局部内部类

局部内部类是在方法或代码块内定义的类。它只能在这个方法或代码块内使用,并且可以访问外部类的成员、方法以及方法中的局部变量(如果这些变量是 `final` 或者是有效的最终变量)。

class OuterClass {

    void outerMethod() {

        final int localVariable = 30;

        class LocalInnerClass {

            void display() {

                System.out.println("Local Inner Class, localVariable: " + localVariable);

            }

        }

        LocalInnerClass localInner = new LocalInnerClass();

        localInner.display();

    }

}

 4. 匿名内部类

匿名内部类是一种没有名字的内部类,通常用于实例化接口或抽象类。它在创建对象的同时定义了类,因此没有类名。匿名内部类通常用于处理事件或实现回调。

class OuterClass {

    void outerMethod() {

        Runnable runnable = new Runnable() {

            @Override

            public void run() {

                System.out.println("Anonymous Inner Class");

            }

        };

        new Thread(runnable).start();

    }

}

- 静态内部类:使用 static关键字,可以访问外部类的静态成员。

- 成员内部类:没有 static关键字,可以访问外部类的所有成员。

- 局部内部类:在方法中定义,只能在其所在的方法中使用。

- 匿名内部类:没有类名,通常用于单次使用的类实例化,常用于事件处理和回调接口。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值