miluframe({ /*个人链接地址*/ Youself:'https://www.cnblogs.com/miluluyo/', /*导航栏信息*/ custom:[{ name:'留言板', link:'https://www.cnblogs.com/miluluyo/p/11578505.html', istarget:false },{ name:'技能树', link:'https://miluluyo.github.io/', istarget:true }], /*自己的友链页面后缀*/ Friends_of_the:'p/11633791.html', /*自己的友链信息*/ resume:{ "name":"麋鹿鲁哟", "link":"https://www.cnblogs.com/miluluyo", "headurl":"https://images.cnblogs.com/cnblogs_com/elkyo/1558759/o_o_my.jpg", "introduction":"大道至简,知易行难。" }, /*友链信息*/ unionbox:[{ "name":"麋鹿鲁哟", "introduction":"生活是没有标准答案的。", "url":"https://www.cnblogs.com/miluluyo", "headurl":"https://images.cnblogs.com/cnblogs_com/elkyo/1558759/o_o_my.jpg" },{ "name":"麋鹿鲁哟的技能树", "introduction":"大道至简,知易行难。", "url":"https://miluluyo.github.io/", "headurl":"https://images.cnblogs.com/cnblogs_com/elkyo/1558759/o_o_my.jpg" }], /*点击页面时候的弹出文本显示*/ clicktext:new Array("ヾ(◍°∇°◍)ノ゙加油哟~ ——麋鹿鲁哟","生活是没有标准答案的。 ——麋鹿鲁哟"), /*github链接*/ githuburl:'https://github.com/miluluyo' })

2022-08-01 第三小组 陈迪 学习笔记

JavaSE高级部分

  • 1.泛型

  • 2.枚举

  • 3.多线程

  • 4.集合(数据结构,数,二叉树,红黑树,B+树,B-树)

  • 5.IO流(文件)--

  • 6.反射和注解

  • 7.网络通信Socket(tomcat)

    泛型:(Generics)

  • 泛型是广泛的,普通的类型,E e Element T t Type型

  • 能够帮助我们把【类型明确】的工作推迟到创建对象或者调方法的时候

  • 定义类的时候,不需要考虑数组存什么类型,创建这个超级数组对象时把里面要存数据的类型确定下来。

  • 泛型的修饰:

  • 1.泛型类

  • 2.泛型方法

  • 3.泛型接口

  • 泛型类把泛型定义在类上,用户使用类的时候才能确定类型

  • 使用<>加一个未知数。通常用T/K/V等大写字母表示

  • 当在类后面加了泛型,T就是一个数据类型

  • 就可以拿来用
    如果一个泛型类,在创建对象时,没有指定泛型类型

  • 默认还是Object

  • 使用这个类时,去确定泛型

  • 只能存指定类型

泛型方法:(有泛型声明)

  • 如果是某个方法没确定下来,可以不定义泛型类
  • 只定义泛型方法
  • 泛型方法不一定在泛型类里
  • 泛型类也不一定有泛型方法
  • 在定义泛型方法时,首先定义泛型类型
  • 定义在方法之间,泛型的使用处前
  • 使用泛型方法,最好要结合返回值,和Object一样
  • 后面学习反射再说!!!
  • 到底什么样的方法叫做泛型方法

在确定子类泛型的时刻,父类的泛型和子类一样

通配符 ?

  • 可以接受任何类型
  • 如果使用Object类型,别写泛型
  • 泛型约束类的数据类型

类型擦除

  • 为了兼容性,使用原始类型(没有泛型)是可以的。

  • 泛型刚出现的时候,还存在大量的不适用泛型的代码。

  • 保证代码的兼容性,将参数化类型的实例传递给设计用于原始类型的方法

  • 为了保持兼容性,java泛型中,有一种类似伪泛型,

  • 所有泛型会被擦掉

  • java的泛型语法是在编译期实现的

  • 生成的字节码文件中,不包含泛型的类型信息

  • 在jvm中看到的只是SuperArray

  • 泛型的本质就是让程序员在编写代码时遵守的一个规则
    能在业务上解决的问题,就不在技术上解决

    如果在一个泛型类中。尽量不要使用泛型方法

  • 泛型方法多数出现在非泛型类

    静态方法

  • 1.静态方法如果是泛型方法,泛型的声明必须写

  • 2.因为静态结构是属于类,不属于某个对象。

    泛型不能是基本数据类型,用包装器(数组可以作为泛型)

  • 方法重载:a.同一个类 b、方法名相同 c、参数不同

  • 原理:类型擦除。

  • 多态上。

    泛型的应用场景:

  • 1.发生在父类或者接口,规范作用

  • 2.容器类(超级数组,链表,队列,栈)

  • 当类型无法确定时,使用泛型。

  • 开发中,更多的是会使用到一些泛型类或泛型接口。

    练习

  • 之前的数组,链表,队列,栈,有一个共同的泛型接口,List

  • 这四个实现接口,重写方法

  • 设计一个工具集

枚举类型

应用场景:

  • 在某些情况下,一个类的对象个数有限
  • 如:季节,春夏秋冬,24节气,星期
  • 规定这个类的对象的个数

单例模式

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

枚举的优势

  • 1.int不具备安全性,枚举类,天然的常量类
  • 2.使用int类型,语义不够明确,枚举里面都是常量,静态,推荐使用==比较

多线程入门

  • 学习多线程,不可避免学习计算机组成,CPU,内存。
  • 线程是由进程创建,是进程的一个实体,是具体干活的人
  • 一个进程有多个线程,线程不独立分配内存,共享进程的内存资源
  • 线程可以共享CPU资源。
  • 进程更强调内存资源分配,线程更强调计算的资源的分配
  • 因为有了线程的概念,一个进程的线程不能修改另一个线程的数据,线程安全性好,
  • 1.物理CPU内核,每个物理CPU有1个或多个物理内核
  • CPU内核通常固定,
  • 2.逻辑CPU内核,操作系统可以使用逻辑CPU模拟真实CPU
  • 没有多核心CPU,单核CPU只有一个核,把一个当做多个用
  • cpu使用,逻辑CPU个数就是作用的CPU物理内核数
  • 进程不能直接创建,调度线程。
  • QQ执行了一会,不执行,等其他线程执行完,继续执行
  • 在上一次执行间歇期,会记录位置。
  • 不同进程间的线程切换,耗费极大资源空间。

泛型类泛型接口的应用,何时确定泛型类型

枚举

什么是线程

心得体会

今天学习了泛型,觉得挺难的,但是可以接受,需要花时间去多练习,多理解。

posted @ 2022-08-01 22:06  jinjidecainiao  阅读(37)  评论(0)    收藏  举报
@media only screen and (max-width: 767px){ #sidebar_search_box input[type=text]{width:calc(100% - 24px)} } L2Dwidget.init({ "model": { jsonPath: "https://unpkg.com/live2d-widget-model-hijiki/assets/hijiki.model.json", "scale": 1 }, "display": { "position": "left", "width": 100, "height": 200, "hOffset": 70, "vOffset": 0 }, "mobile": { "show": true, "scale": 0.5 }, "react": { "opacityDefault": 0.7, "opacityOnHover": 0.2 } }); window.onload = function(){ $("#live2dcanvas").attr("style","position: fixed; opacity: 0.7; left: 70px; bottom: 0px; z-index: 1; pointer-events: none;") } 参数说明 名称 类型 默认值/实例 描述Youself 字符串 https://www.cnblogs.com/miluluyo/ 个人博客园首链接 custom 数组 [{ name:'相册', link:'https://www.cnblogs.com/elkyo/gallery.html', istarget:false },{ name:'技能树', link:'https://miluluyo.github.io/', istarget:true },{ name:'留言板', link:'https://miluluyo.github.io/p/11578505.html', istarget:false }] 导航信息 name 导航名 link 导航链接 istarget true跳转到新页面上,false当前页面打开 Friends_of_the 字符串 11633791 友链文章的后缀名,若字符串为空则不显示友链 resume 对象 { "name":"麋鹿鲁哟", "link":"https://www.cnblogs.com/miluluyo/", "headurl":"https://images.cnblogs.com/cnblogs_com/ elkyo/1558759/o_o_my.jpg", "introduction":"大道至简,知易行难。" } 自己的友链信息 name 导航名 link 导航链接 headurl 头像 introduction 语录 unionbox 数组 [{ "name":"麋鹿鲁哟", "introduction":"生活是没有标准答案的。", "url":"https://www.cnblogs.com/miluluyo", "headurl":"https://images.cnblogs.com/cnblogs_com/ elkyo/1558759/o_o_my.jpg" },{ "name":"麋鹿鲁哟的技能树", "introduction":"大道至简,知易行难。", "url":"https://miluluyo.github.io/", "headurl":"https://images.cnblogs.com/cnblogs_com/ elkyo/1558759/o_o_my.jpg" }] 友链数组 name 昵称 introduction 标语 url 链接地址 headurl 头像地址 clicktext 新数组 new Array("ヾ(◍°∇°◍)ノ゙加油哟~ ——麋鹿鲁哟", "生活是没有标准答案的。 ——麋鹿鲁哟"), 点击页面时候的弹出显示 githuburl 字符串 https://github.com/miluluyo github链接