ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2022-08-01 第六组 李俊琦 JavaSE高级部分

2022-08-05 17:01:17  阅读:111  来源: 互联网

标签:01 子类 08 类型 枚举 线程 2022 泛型 方法


今日重点

泛型
枚举
多线程
集合(数据结构:树,二叉树,红黑树,B+树,B-树,图)
IO流(文件)
反射和注解
网络通信Socket(tomcat)

学习内容

泛型

什么是泛型(Generics)?

泛型能够帮助我们把[类型明确]的工作推迟到创建对象或调用方法的时候,
意思就是:我定义类的时候,不需要考虑这个数组到底要存什么类型。
创建这个超级数组对象的时候把里面要存的数据类型确定下来
在创建对象的时候没有指定泛型,默认T时Object类型

泛型的修饰:

泛型类
泛型方法
泛型接口:
泛型类把泛型定义在类上,用户在使用类的时候才能把类型给确定
具体语法: “<未知数>”,通常用T K V等大写字母表示

泛型类

public class Test<T> {
	public static void main(String[] argfs){

	}
}

继承关系中的泛型

泛型类在继承时:

父类是一个泛型类,子类要不要是泛型类? 随便
泛型在声明时只能在当前类名后或方法返回值类型之前声明
在子类继承父类时,子类泛型和父类泛型都写出来的情况下,父跟子
如果在继承时,没有写出任何泛型,当前子类就不是泛型类
在继承关系中,如果需要,父类和子类都需要指定泛型

泛型方法

如果我们只关系某个方法,可以不定义泛型类,只定义泛型方法
泛型方法是不是一定要在泛型类里: 不是
泛型类中是不是一定要有泛型方法:不是
在定义泛型方法时,要首先定义泛型的类型
使用泛型方法,最好要结合返回值,否则和Object一样
定义在方法中间,修饰符列表之后,返回值类型之前

public class Test {
	//声明泛型方法	
	public <T> T method(T t) {
		return t;
	}
	public static void main(String[] args){
		// 调用泛型方法,在传参的时候确定数据类型
		String str = new Test().method("123");
	}
}

泛型方法和泛型类

如果一个泛型类中,尽量不要在使用泛型方法
泛型方法多数都是出现在非泛型类中

静态泛型方法

静态方法如果时泛型方法,泛型的声明必须写
因为静态结构是属于类的,不属于某个对象那个
注意;在Java7开始,可以省略等号右边的泛型的声明,<>必须得写(规范)

通配符

泛型中的通配符用"?"表示,

类型擦除

为了兼容性,使用原始类型(没有泛型)是可以的。
泛型刚刚出现的时候,还存在大量的不适用泛型的代码,
保证代码的兼容性,将参数化类型的实例传递给设计用于原始类型的方法必须
为例保持兼容性,Java泛型中,其实有一种类似伪泛型,因为Java在编译期间所有的泛型都会被擦掉
Java的泛型语法是在编译期这个维度上实现
正常来书在生成第字节码文件中,不包含泛型的类型信息的
在JVM中,由泛型附加的类型信息对JVM是看不到的
可以理解为,泛型的本质是让程序员在编写代码时遵守的一个规则
比如SuperArray: 在确定了泛型之后,这个超级数组就统一只放同一类型的数据,如果放入其他类型,编译不通过

泛型的应用场景

父类(接口),起到的是一个规范的作用,对里面的数据类型是没有明确要求的
容器类(超级数组,链表、队列、栈
当类型无法确定时,使用泛型

枚举类型:

应用场景:
在某些情况下,一个类的对象的个数是有限的
规定这个类的对象的个数。

枚举类中:

把需要用到的对象声明出来
写对应的构造器
可以有set,get方法

单例模式:

使用枚举类实现单例模式

单元素的枚举类型已经称为实现单例模式最佳方案

枚举的优势:

int 类型不具备安全性,假如某个程序员在定义int时少写了个final,会存在被他人修改的风险
枚举类,它天然就是一个常量类
使用int类型,语义不够明确
枚举里面都是静态常量
推荐枚举的比较使用 ==

多线程入门

我们要学习多线程,需要学习一些计算机组成的一些知识

为了完成特定的任务,用某种编程语言写一个软件(程序)

程序要想运行就必须加载到内存中执行

在执行程序的时候,实时的指令加载到cpu内存的指令寄存器中执行

执行过程中产生的数据要加载到数据寄存器中,ALU负责进行算术逻辑运算的

系统总线(System Bus):连接计算机系统的主要组件,用来降低成本和促进,可以通过软件来控制硬件

进程:

一个正在执行中的程序就是一个进程,系统就会为这个进程发配独立的运行

进程就是程序的一次执行过程,他有自己的生命周期

他会在启动程序时产生,运行程序时存在,关闭程序时消亡

引入了线程:

线程是由进程创建,是进程的一个实体,是具体干活的人

一个进程有多个线程。线程不独立分配内存,而是共享进程的内存资源,线程可以共享cpu资源

标签:01,子类,08,类型,枚举,线程,2022,泛型,方法
来源: https://www.cnblogs.com/xianrenle/p/16554996.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有