栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础

泛型是什么?举个例子

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

//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
//在实例化泛型类时,必须指定T的具体类型
public class Generic{ 
    //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 genericInteger = new Generic(123456);

//传入的实参类型需与泛型的类型参数类型相同,即为String.
Generic genericString = new Generic("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
简单类型和类类型有什么区别?如int和Integer

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

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

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

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true
原理是什么?

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

创建对象时,以下两种情况有什么区别?
Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false
原理是?

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

使用包装类的意义是?

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

List list = new ArrayList(); //不可以
List list = new ArrayList(); //可以
下面两个的区别?

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长度。
存储空间占用空间较少,每个节点是实际的数据占用空间较多,每个节点存储的是实际的数据和前后节点的位置
什么情况下用访问数据多更多的插入和删除元素
  • 集合当中只能放置对象的引用,无法放置原生数据类型,
变量只声明不初始化会怎么样?

成员变量不初始化,会赋值默认值;局部变量不初始化会报错,如下:
(基本数据类型和引用类型都是)

Solution s;		//仅声明变量,不new的话后面使用会报错“not initialized”
Solution s = new Solution();	//声明变量,同时实例化对象并调用初始化函数
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号