ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022.08.01 第七小组 王茜 学习笔记

2022-08-01 19:04:30  阅读:117  来源: 互联网

标签:01 类型 枚举 线程 2022.08 泛型 进程 方法 王茜


一:

  JavaSE高级部分  
  1.泛型
  2.枚举
  3.多线程  前3年(难)
  4.集合(数据结构,树,二叉树,红黑树,B+树,B-树)
  5.IO流(文件)
  6.反射和注解
  7.网络通信Socket(tomcat)

 二:

什么是泛型?
  泛型广泛的、普通的类型。
  泛型能够帮助我们把【类型明确】的工作推迟到创建对象或者调方法的时候。
 
  意思就是:我定义类的时候,不需要考虑这个数组到底要存什么类型。
   创建这个超级数组对象的时候把里面要存的数据的类型确定下来。
 
  泛型的修饰:
  1、泛型类
  2、泛型方法
  3、泛型接口
 
  泛型类把泛型定义在类上,用户在使用类的时候才能把类型给确定。
  具体的使用方法使用<>加上一个未知数。通常用T K V E等大写字母表示。
  实际上用啥都行,只要是个单词就可以。

三:

什么是泛型?
  泛型方法:
  我们如果只关心某个方法,可以不定义泛型类。
  只定义泛型方法。
 
  泛型方法是不是一定要在泛型类里?不是
  泛型类里是不是一定要有泛型方法?不是
 
   在定义泛型方法时,要首先定义泛型类型。
   定义在方法中间,泛型的使用处之前
 
   使用泛型方法,最好要结合返回值,和Object一样。


 四:

继承关系
  泛型类在继承时:
  1.父类是一个泛型类,子类要不要是泛型类?
  2.永远记住,泛型的声明只能在当前类名后或者方法中间,而且声明的泛型是自己的。
  3.在子类继承父类时,子类泛型和父类泛型都写出来的情况下,父跟子
  4.如果在继承时,没有写出任何泛型,当前子类就不是泛型类。

五:

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

 静态泛型方法:
 1.静态方法如果是泛型方法,泛型的声明必须写。
 2.因为静态结构是属于类的,不属于某个对象。

?通配符
   可以接受任何类型。
   如果使用Object类型,别写泛型。
   泛型约束类的数据类型。

六:

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

七:

1.泛型不能是基本数据类型。(原则上来说,数组可以作为泛型,语法角度,不可以)
     <>里面放的就应该是类名。数组是在编译后才会生成一个类($xxxx)
2.方法重载:a.同一个类里  b.方法名相同  c.参数不同
      原理:类型擦除。
3.多态上。

八:

泛型的应用场景:
  1.父类(接口),起到的是一个规范的作用,对里面的数据类型没有明确要求。
  2.容器类。(超级数组,链表,队列,栈)
  当类型无法确定时,使用泛型。
   开发中,我们更多的是会使用到一些泛型类或泛型接口。

九:

枚举类型
   应用场景:
   在某些情况下,一个类的对象的个数是有限的,
   如季节,春夏秋冬,比如24节气,星期。。。
    规定这个类的对象的个数。

枚举在switch中使用
  枚举类的命名规则:所有的枚举类要以Enum结尾。


 枚举的静态导入
  *号代表导入枚举类的所有对象

十:

单例模式:
  使用枚举类实现单例模式。
  高效Java
  单元素的枚举类型已经成为实现单例模式的最佳方案。

枚举的优势
   1.int类型不具备安全性。假如某个程序员在定义int时少写了个final,
       会存在被他人修改的风险。枚举类,它天然就是一个常量类
   2.使用int类型,语义不够明确。如果说在控制台打印输入1。

 

十一:

多线程前置
  我们要学习多线程,需要学习一些计算机组成的一些知识。
  cpu8核以上和内存16G。
 
  开一个虚拟机,开一个数据库,开git,开xshell,开idea,
  开Nginx,开redis,启动N多个微服务。
 
  为了完成特定的任务,用某种编程语言写一个软件(程序)。
  程序要想运行就必须加载到内存中执行。
 
  在执行程序的时候,实时的指令加载到cpu内存的指令寄存器中执行。
  执行过程中产生的数据要加载到数据寄存器中。ALU负责进行算术逻辑运算的操作。
 
  系统总线(System Bus):连接计算机系统的主要组件,用来降低成本和促进模块化。
       可以通过软件来控制硬件。
 
  进程:
   一个正在执行中的程序就是一个进程,系统就会为这个进程发配独立的【运行资源】
   进程是程序的一次执行过程,它有自己的生命周期
   它会在启动程序时产生
       运行程序时存在
       关闭程序时消亡

  早期的计算机,单进程,同一时间只能执行一个进程。
   计算器。同一时间只能执行一段代码。
 
   随着计算机的发展,CPU的计算能力大幅提升,
       按照时间线交替执行不同继承的方式。
       每个执行一点点时间,感官上觉得这么多的进程是同时在运行。
 
   引入了线程。
   线程是由进程创建,是进程的一个实体,是具体干活的人
    一个进程有多个线程。线程不独立分配内存,而是共享进程的内存资源,
   线程可以共享cpu资源。
 
    进程更强调的是【内存资源分配】,线程更强调的是【计算的资源的分配】
    因为有了线程的概念,一个进程的线程不能修改另一个线程的数据,线程之间是相互隔离的,
    安全性更好。

标签:01,类型,枚举,线程,2022.08,泛型,进程,方法,王茜
来源: https://www.cnblogs.com/wx1019/p/16541449.html

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

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

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

ICode9版权所有