• java基础


    泛型是什么?举个例子

    java中一种允许多种数据类型的特性。

    //此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
    //在实例化泛型类时,必须指定T的具体类型
    public class Generic<T>{ 
        //key这个成员变量的类型为T,T的类型由外部指定  
        private T key;
    
        public Generic(T key) { //泛型构造方法形参key的类型也为T,T的类型由外部指定
            this.key = key;
        }
    
        public T getKey(){ //泛型方法getKey的返回值类型为T,T的类型由外部指定
            return key;
        }
    }
    //泛型的类型参数只能是类类型(包括自定义类),不能是简单类型
    //传入的实参类型需与泛型的类型参数类型相同,即为Integer.
    Generic<Integer> genericInteger = new Generic<Integer>(123456);
    
    //传入的实参类型需与泛型的类型参数类型相同,即为String.
    Generic<String> genericString = new Generic<String>("key_vlaue");
    Log.d("泛型测试","key is " + genericInteger.getKey());
    Log.d("泛型测试","key is " + genericString.getKey());
    
    12-27 09:20:04.432 13063-13063/? D/泛型测试: key is 123456
    12-27 09:20:04.432 13063-13063/? D/泛型测试: key is key_vlaue
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    简单类型和类类型有什么区别?如int和Integer

    int是简单数据类型,Integer是一种“class”

    Integer和int比较的话会怎么样?

    只要两个变量的值是向等的,则结果为true

    Integer i = new Integer(100);
    int j = 100System.out.print(i == j); //true
    
    • 1
    • 2
    • 3

    原理是什么?

    因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较

    创建对象时,以下两种情况有什么区别?

    Integer i = new Integer(100);
    Integer j = 100;
    System.out.print(i == j); //false
    
    • 1
    • 2
    • 3

    原理是?

    非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同

    使用包装类的意义是?

    我个人理解是,为了满足一些特定开发需求,因为基本数据类型不能满足面向对象编程所有的开发需求。
    并且使用泛型定义时也不能用int,要用Integer:

    List<int> list = new ArrayList<int>(); //不可以
    List<Integer> list = new ArrayList<Integer>(); //可以
    
    • 1
    • 2

    下面两个的区别?

    List arrayList = new ArrayList();
    List arrayList = new ArrayList();

    数组(Array)和列表(List)的区别?

    Array的容量固定且无法动态改变。可以将ArrayList想象成一种“会自动扩增容量的Array”。
    Array基于index,List继承Collection,是集合的一种

    ArrayList和LinkedList比较

    List有两个重要的实现类:ArrayList和LinkedList

    ArrayListLinkedList
    基于什么数组双链表
    get/set有index,复杂度是O(1)代价较大
    插入数据数组装满的时候要将所有的数据重新装入一个新的数组,最坏情况为O(n)复杂度O(1)
    删除数据代价较大复杂度O(1)
    长度不定义长度时,默认生成长度为10的ArrayList,如果数据大于这个值,则会增大list长度。
    存储空间占用空间较少,每个节点是实际的数据占用空间较多,每个节点存储的是实际的数据和前后节点的位置
    什么情况下用访问数据多更多的插入和删除元素
    • 集合当中只能放置对象的引用,无法放置原生数据类型,
  • 相关阅读:
    198.打家劫舍,213.打家劫舍II,337.打家劫舍III
    Java真的不难(四十九)Redis的入门及使用(2)
    GPT-4创造者:第二次改变AI浪潮的方向
    antd的Table组件使用rowSelection属性实现多选时遇到的bug
    华为云 异构数据迁移
    如何解决Blender装配中常见问题,修复角色的绑定问题?
    【Python】13.模块
    理解 R-CNN:目标检测的一场革命
    【Spark 实战系列】sparkstreaming 任务出现堆积如何优化?(流量突然大增资源不够怎么办?)
    http2分片流内容整合呈现方法
  • 原文地址:https://blog.csdn.net/virusos/article/details/125596336