当前位置: 首页 > wzjs >正文

成都企业网站公司摄影公司网站开发

成都企业网站公司,摄影公司网站开发,wordpress手机号登陆不了,关于旅游的网站建设目的文章目录 数据结构类,接口,抽象类时间复杂度和空间复杂度包装类装箱和拆箱泛型泛型是如何编译的泛型的上界 数据结构 描述和组织数据的方式集合和数据结构,集合:把数据结构封装起来,不用我们自己实现,直接…

文章目录

  • 数据结构
    • 类,接口,抽象类
    • 时间复杂度和空间复杂度
    • 包装类
    • 装箱和拆箱
    • 泛型
    • 泛型是如何编译的
    • 泛型的上界

在这里插入图片描述

数据结构

  1. 描述和组织数据的方式
  2. 集合和数据结构,集合:把数据结构封装起来,不用我们自己实现,直接使用
  3. 集合类

类,接口,抽象类

  1. 接口扩展(继承)接口
  2. 类实现接口
  3. 类继承抽象类,实现抽象类中的方法

时间复杂度和空间复杂度

  1. 递归的时间复杂度
    在这里插入图片描述

包装类

  1. 为什么要有包装类?
    为了让基本数据类型也能像类一样使用,能够调用库方法,实现类的特性

装箱和拆箱

  1. 装箱:将基本数据类型给对应的包装类型
  2. 拆箱:将包装类型给对应的基本数据类型
public class test {public static void main(String[] args) {Integer a = 10;// 自动装箱,把基本数据类型给包装类型,隐式调用valueOfInteger b = Integer.valueOf(10);// 显示装箱System.out.println(a);System.out.println(b);// 自动拆箱,把包装类型给基本数据类型Integer c = 10;int d = c;System.out.println(d);// 显示拆箱int aa = a.intValue();System.out.println(aa);double bb = a.doubleValue();System.out.println(bb);}
}

在这里插入图片描述

泛型

  1. 泛型相当于是一个模版,里面可以放任何类型的数据,只要指定了T
  2. 泛型将类型进行了传递
// 泛型
class 类名<T,K,V...>
{}

在这里插入图片描述

// <>内部必须是包装类型或者是引用类型,不能是基本数据类型
// <>在前面指定了类型,后面的<>内部可以不写类型
MyArray<Integer> myArray = new MyArray<>;
  1. 实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值?

可以实现一个泛型类

在这里插入图片描述

泛型是如何编译的

  1. 擦除机制:擦成object类型,比如T类型会被擦成object类型
  2. java是不允许new一个具体的类型的泛型数组的
  3. Java 的泛型在 编译时 存在,但在 运行时 会被擦除(Erasure),替换成 Object 或边界类型
  4. 本身T类型在编译时被擦除成了object类型,在运行时不存在T,编译器无法确定T类型
    在这里插入图片描述
// java是不允许new一个具体的类型的泛型数组的
public T[] array = new T[]; 

在这里插入图片描述

// 写法一
// 建议这么写,安全写法
public Object[] objects = new Object[10];// 写法二
// 不能new一个泛型类型的数组,因为泛型只在编译时存在
public T[] objects = new T[10];
// 编译上虽然能够通过,但是存在问题
// 如果外部调用 Box<String>,但实际存储的是 Object[],取出时会尝试将 Object 强转为 String,可能失败。
public T[] objects = (T[]) new Object[10];

泛型的上界

  1. 在传入泛型的类型时,有时需要对传入的变量做一定的约束,可以通过类型的边界来约束
class 泛型类名称<类型形参 extends 类型边界>{}
class MyArray<E extends Number>{}

MyArray< Integer> l1, 正常,Integer是Number的子类
MyArray< String > l2,报错,String不是Number的子类
泛型的上界指的时它本身(Number)和它的子类

  1. 案例

在这里插入图片描述

import java.lang.Object;
import java.lang.reflect.Array;
// 泛型类
class MyArray<T>{// 使用Object类型的数组public Object[] objects = new Object[10];public void setValue(int pos,T val){objects[pos] = val;}public T getValue(int pos){return (T)objects[pos];}
}class Person implements Comparable<Person>{@Overridepublic int compareTo(Person o) {return 0;}
}// 泛型类
class Alg<T extends Comparable<T>>{public T findMax(T arr[]){T max = arr[0];for(int i = 0;i < arr.length;i++){if(max.compareTo(arr[i]) < 0){max = arr[i];}}return max;}
}// 泛型方法
class Alg2{public<T extends Comparable<T>> T findMax(T arr[]){T max = arr[0];for(int i = 0;i < arr.length;i++){if(max.compareTo(arr[i]) < 0){max = arr[i];}}return max;}
}Alg3.findMax(arr);
// 静态的泛型方法,直接用类型调用
class Alg3{public static <T extends Comparable<T>> T findMax(T arr[]){T max = arr[0];for(int i = 0;i < arr.length;i++){if(max.compareTo(arr[i]) < 0){max = arr[i];}}return max;}
}public static void main(String[] args) {// 显示实例化alg2.<Integer>findMax(arr2);        // 类型推导实例化Alg2 alg2 = new Alg2();Integer[] arr2 = {1,2,3};int ret1 = alg2.findMax(arr2);System.out.println(ret1);// 普通引用类型的Alg<Integer> b = new Alg<>();Integer[] arr = {1,2,3,5,6};Integer ret = b.findMax(arr);System.out.println(ret);// 自定义类型的Alg<Person> a = new Alg<>();}public static void main1(String[] args) {MyArray<Integer> myArray1 = new MyArray<>();MyArray<String> myArray2 = new MyArray<>();}
}

文章转载自:

http://IVkBIVWA.nyfyq.cn
http://KRlqkrN4.nyfyq.cn
http://LtuVopSi.nyfyq.cn
http://VMJkGq2b.nyfyq.cn
http://keyxYRqe.nyfyq.cn
http://zIyztNTe.nyfyq.cn
http://CrIHC6vE.nyfyq.cn
http://Xyt4XJTW.nyfyq.cn
http://h5fPWLn3.nyfyq.cn
http://ylkV9kZ3.nyfyq.cn
http://TUgDxPQM.nyfyq.cn
http://xZRcI8R7.nyfyq.cn
http://tgvStduj.nyfyq.cn
http://BC5kYioV.nyfyq.cn
http://713ScbKU.nyfyq.cn
http://isiM9TSL.nyfyq.cn
http://a4LL3vrk.nyfyq.cn
http://nynoGvQn.nyfyq.cn
http://gcT28u0w.nyfyq.cn
http://3WgG5hip.nyfyq.cn
http://MyJ8ko53.nyfyq.cn
http://7cIydRK9.nyfyq.cn
http://jcLjdvXO.nyfyq.cn
http://RrN2hkY5.nyfyq.cn
http://YRj8rqbL.nyfyq.cn
http://YdIabjy8.nyfyq.cn
http://0zqmzQEl.nyfyq.cn
http://Ejh6WW1y.nyfyq.cn
http://EZ9TZdpI.nyfyq.cn
http://eXPI22ke.nyfyq.cn
http://www.dtcms.com/wzjs/732860.html

相关文章:

  • 学生怎样建设网站7k7k电脑版网页游戏
  • 手机网站分页设计贵州一帆建设工程有限公司网站
  • 做贷款网站沈阳建立网站
  • 建立个公司网站php网站插件删除或添加
  • 网站设计制作的服务和质量大连旅顺
  • seo优化关键词分类做网站seo
  • 网站优化技术北京网站开发浩森宇特
  • 惠州市住房和城乡建设厅网站包装盒设计
  • 淘宝网站详情页怎么做网站建设杭州缘择低价
  • 凡科网免费建站门户网站建设中标结果
  • 番禺手机网站制作推广营销网站文章去那找
  • 一个虚拟主机如何建多个网站代码企业形象设计英文
  • 上海免费网站建设咨询百度网盘app手机版
  • 旅游网站建设经济评价网站备案号如何查找
  • 网站建设仟金手指专业12赣州九一人才网
  • 眼镜企业网站建设方案网站建设细节差异化
  • 唐山建设网站的网站十字绣网站开发
  • 网站开发项目文档做网站找那些公司
  • 德州做网站网站在线建设方案
  • 泰安网站建设如何中低端网站建设客户网
  • 网站上传模板后商业网站域名后缀
  • 学校网站建设的作用公司测名网
  • 汕头多语种网站制作怎么做查询数据输入的网站
  • 工业和信息化部网站备案查询广告设计app免费
  • 做网站的字体大小有没有类似wordpress
  • 河间做网站的公司电子硬件工程师培训机构
  • 最新免费网站源码资源网站人工智能网站应怎么做
  • phpcms 怎么做视频网站怎么选择郑州网站建设
  • 制作链接的小程序怎么看网站做没做seo
  • 内存做硬盘缓存软件网站建立充电站需要多少钱