03 2020 档案
摘要:chapter18 【线程、同步】 笔记 【线程、同步】 主要内容 线程 同步 线程状态 教学目标 能够描述Java中多线程运行原理 能够使用继承类的方式创建多线程 能够使用实现接口的方式创建多线程 能够说出实现接口方式的好处 能够解释安全问题的出现的原因 能够使用同步代码块解决线程安全问题 能够使
阅读全文
摘要:线程安全 2.1 线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 我们通过一个案例,演示线程的安全问题: 电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大
阅读全文
摘要:线程 1.1 多线程原理 先画个多线程执行时序图 来体现一下多线程程序的执行流程。 代码如下: 自定义线程类: java public static void main(String[] args) { // 线程的父类是Thread // new MyThread().start(); new T
阅读全文
摘要:异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生
阅读全文
摘要:硬科普 驱动程序是硬件厂商根据操作系统编写的配置文件,驱动程序即添加到操作系统中包含有关硬件设备的信息的一小块代码。由它把硬件本身的功能告诉给系统,同时也将操作系统指令转化成特殊的外设专用命令,传达给硬件从而保证硬件设备的正常工作。 简单来说,驱动就是一座连接硬件与系统的桥梁;理论上,所有的硬件设备
阅读全文
摘要:要说super就先要说this。 "this",作为一个特殊的关键字,它的规则如下: 1。可以表示构造函数传递。this(a,b)表示调用另外一个构造函数。这里面的this就是一个特殊语法,不是变量,没有什么类型。 2。可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一
阅读全文
摘要:Java 11是Java8后的首个长期支持版本。按照 Oracle 公布的支持路线图,Java 11 将会获得 Oracle 提供的长期支持服务,直至2026年9月。 按照官方的说法,新的发布周期会严格遵循时间点,将于每年的3月份和9月份发布。所以 Java 11 的版本号是 18.9(LTS)。不
阅读全文
摘要:OpenJDK和JDK区别 OpenJDK与JDK的区别分析 Sun的JDK7、OpenJDK及IcedTea释疑 简介(ps): 简单来说jdk从7开始,弄出一个可以自由使用的公共版本(openjdk)。 原来继续分为个人版(研究使用)和企业(商用)是有版权的。 关于开源: 原始的jdk并没有完全
阅读全文
摘要:异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生
阅读全文
摘要:Map集合 1.1 概述 接口下的集合与 接口下的集合,它们存储数据的形式不同 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 中的集合称为单列集合, 中的集合称为
阅读全文
摘要:模拟斗地主洗牌发牌 3.1 案例介绍 按照斗地主的规则,完成洗牌发牌的动作。 具体规则: 1. 组装54张扑克牌将 2. 54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。 4. 查看三人各自手中的牌(按照牌的大小排序)、底牌 规则:手中扑克牌从大到小的摆放顺序
阅读全文
摘要:Debug追踪 使用IDEA的断点调试功能,查看程序的运行过程 Debug调试程序: 可以让代码逐行执行,查看代码执行过程,调试程序中出现的bug 使用方式: 在行号的右边,鼠标单击,添加断点(每个方法的第一行,哪里有bug添加到哪里) 右键,选择Debug执行程序 程序就会停留在添
阅读全文
摘要:2.1 JDK9对集合添加的优化 JDK9的新特性: List接口,set接口,map接口:增加了一个静态方法of,可以给集合一次性添加多个元素 static list of (E... elements) 使用前提 当前集合 存储的元素个数已经确定 ,不可改变 注意 1. of方法只适
阅读全文
摘要:Map集合 1.1 概述 接口下的集合与 接口下的集合,它们存储数据的形式不同 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 中的集合称为单列集合, 中的集合称为
阅读全文
摘要:Chapter15 【List、Set、数据结构、Collections】 主要内容 数据结构 List集合 Set集合 Collections 教学目标 [ ] 能够说出List集合特点 [ ] 能够说出常见的数据结构 [ ] 能够说出数组结构特点 [ ] 能够说出栈结构特点 [ ] 能够说出队列
阅读全文
摘要:Collections 2.1 常用功能 是集合工具类,用来对集合进行操作。部分方法如下: :往集合中添加一些元素。 :打乱集合顺序。 :将集合中元素按照默认规则排序。 :将集合中元素按照指定规则排序。 2.2 Comparator比较器 :将集合中元素按照默认规则排序。 不过这次存储的是字符串类型
阅读全文
摘要:Set接口 接口和 接口一样,同样继承自 接口,它与 接口中的方法基本一致,并没有对 接口进行功能上的扩充,只是比 接口更加严格了。与 接口不同的是, 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。 集合有多个子类,这里我们介绍其中的 、`java.util.LinkedHashSet
阅读全文
摘要:全栈工程师 全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。 [1] 中文名全栈工程师外文名Full Stack engineer特 征掌握多种技能 目录 1 价值 ▪ 全局性思维 ▪ 沟通成本 ▪ 创业公司 2 困境 价值编辑 全局性思维 现代项目的开发,需要掌握多种技
阅读全文
摘要:List的三个子类的特点 ArrayList: 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高。 LinkedList: 底层数据结构是链表,查询慢,增删快。 线程不安全,效率高。 (现在你明白 LinkedList 为什么有头和尾的区别了吧~) Vector: 底层数据结构是数组,查询快
阅读全文
摘要:List集合 我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢? 接下来,我们一起学习Collection中的常用几个子类( 集合、 集合)。 1.1 List接口介绍 接口继承自 接口,是单列集合的一个重要分支,习惯性地会将实现了 接口的对
阅读全文
摘要:数据结构 2.1 数据结构有什么用? 当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。 现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果
阅读全文
摘要:Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 以上这些
阅读全文
摘要:Chapter14【Collection、泛型】 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 [ ] 能够说出集合与数组的区别 [ ] 说出Collection集合的常用功能 [ ] 能够使用迭代器对集合进行取元素 [ ] 能够说出集合的使用细节 [ ] 能够使用集合存储
阅读全文
摘要:泛型 在JDK5之后,新增了 泛型 ( Generic )语法,让你在设计API时可以指定类或方法支持泛型,这样我们使用API的时候也变得更为简洁,并得到了编译时期的语法检查。 泛型: 可以看做是一种未知的数据类型,不知道使用什么数据类型的时候,可以使用泛型 泛型也可以看成是一个变量,用来接收数据类
阅读全文
摘要:集合遍历的方式 Iterator迭代器 2.1 Iterator接口 Iterator接口对数组进行遍历 在程序开发中,经常需要遍历集合中的所有元素。针对需求,JDK专门提供了一个接口 .Iterator接口也是java结合中的一员。 Collection接口与Map接口主要用于储存元素,而Iter
阅读全文
摘要:Collection集合 1.1 集合概述 集合 :集合是Java中提供的一种容器,可以用来存储多个数据。 集合和数组都是容器,区别 数组的长度固定。 数组存储的是同一类型的元素,可以存储基本数据类型的值。 集合的长度是可变的。 集合存储的都是对象。而且对象可以不一致。在开发中一般对象多的是后续,使
阅读全文
摘要:集合 1.集合框架的学习方式 1. 学习顶层:学习顶层的接口/抽象类中共性的方法,所有子类都可以使用。 2. 使用底层:底层不是接口就是抽象类,无法直接创建对象使用。需要使用底层的子类创建对象使用 2.学习集合的目标 1. 会使用集合储存数据 2. 会遍历集合,把数据取出来 3. 掌握每种集合的特性
阅读全文
摘要:数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 1 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变
阅读全文
摘要:Chapter13_Object类、常用API 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 [ ] 能够说出Object类的特点 [ ] 能够重写Object类的toString方法 [ ] 能够重
阅读全文
摘要:包装类 5.1 概述 java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下: | 基本类型 | 对应的包装类(位于java.lang包中) | | |
阅读全文
摘要:基本类型与字符串之间的转换 1.基本类型 字符串(String) 1. 基本类型的值+" " 最简单的方法(工作中常用) 2. 包装类的静态方法toString(参数),不是Object类的toString方法()重载 static String toString(int i)返回一个表示指定整数的
阅读全文
摘要:StringBuilder类 4.1 字符串拼接问题 String类 字符串是常量,他们的值再创建后不能更改。 字符串底层是一个被final修饰的数组,不可改变,是一个常量 private final byte[] value; 进行字符串的相加,内存中就会有很多个字符串,占用空间多
阅读全文
摘要:System类 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有: public static long currentTimeMillis()`:返回以毫秒为单位的当前时间。 :将数组中指定的数据拷贝到另一个数组中。 3.1 curren
阅读全文
摘要:Calendar类 日历类 java.util.Calender,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。 获取方式 Calendar为抽象类,无法直接创建对象使用,里面有一个静态方法叫getInsta
阅读全文
摘要:format方法 使用DateFormat类中的方法format,把日期格式转化为文本 使用步骤: 1.创建SimpleDateFormat对象,构造方法中传递指定的模式 2.调用SimpleDateFormat对象中的方法format,按照构造方法中的指定模式,吧Fate日期转化为符合模式的字符串
阅读全文
摘要:日期时间类 2.1 Date类 概述 类 表示特定的瞬间,精确到毫秒。 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。 :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 :分配Date对象并初始化此对
阅读全文
摘要:Object类 1.1 概述 java.lang.object类是java语言中的根类,即所有类的父类。它中描述所有子类都可以使用。在实例化对象的时候,最终父类就是object。 如果一个类没有特别指定的父类,那么默认集成的就是object类。 代码如下: 根据JDK源代码及Object类的API文
阅读全文
摘要:域名(英文名字叫做domain name),也叫做网域,实际上就是一串在因特网计算机上的名字字符,而且是具有唯一性的,当传输数据时用做定位标识。 域名是以英文符号“."来隔开,顶级域名是固定的,如.com/.cn/.net等等。在购买域名的时候选择自己想要的顶级域名,然后再从顶级域名左边输入自己想要
阅读全文
摘要:Chapter11【final、权限、内部类】 第一章 final关键字 1.1 概述 final关键字代表最终、不可改变的内容。 final:不可改变。用于修饰类、方法和变量 类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值 1.2 使用方法 1.
阅读全文
摘要:匿名对象 创建对象的标准格式: 类名称 对象名 = new 类名称(); 1.概念 匿名对象:没有变量名的对象。 匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。 2.格式 new 类名称(参数列表); 举例: new Scanner(System.in); 注意事项:匿名对象只能使用唯一的
阅读全文
摘要:权限修饰符 2.1 概述 在java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限 public:公共的 protected:受保护的 default:默认的(什么都不写) private:私有的 2.2 不同权限的访问能力 | | public | protected
阅读全文
摘要:final关键字 1.1 概述 final关键字代表最终、不可改变的内容。 final:不可改变。用于修饰类、方法和变量 类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值 1.2 使用方法 1.修饰类 含义:当前这个类不能有任何的子类。(太监类) 格
阅读全文
摘要:Chapter10【接口、多态】 第一章 接口 1.1 概述 接口是Java中的 引用类型 ,是方法的集合 类的内部封装了成员变量、构造方法和成员方法 接口的内部主要的就是 封装了方法 ,包含 1. 抽象方法 abstract(JDK 7及以前) 2. 默认方法和静态方法 default(JDK8)
阅读全文
摘要:多态 2.1 概述 引入 面向对象的三大特征:封装、继承、多态。 extends继承或者implements实现,是多态的前提条件。 生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也 是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的
阅读全文
摘要:引用类型转换 多态的转换分为向上转型与向下转型两种: 向上转型 其实就是多态的写法: 格式:父类名称 对象名 = new 子类名称(); 含义:右侧创建一个子类对象,把他当做父类来看待使用 Animal animal = new Cat(); 注意事项:向上转型一定是安全的,从小范围转向了大范围,比
阅读全文
摘要:接口 1.1 概述 接口是Java中的 引用类型 ,是方法的集合 类的内部封装了成员变量、构造方法和成员方法 接口的内部主要的就是 封装了方法 ,包含 1. 抽象方法(JDK 7及以前) 2. 默认方法和静态方法(JDK8) 3. 私有方法(JDK9) 重点 :静态私有方法,解决多个静态方法之间重复
阅读全文
摘要:在java 9+版本中,接口的内容可以有: [ ] :中括号的内容写的可以省略 1. 成员变量其实就是常量,格式: [public] [static] [final] 数据类型 常量名称 = 数据值; 注意: 常量必须进行赋值,而且一反赋值不能改变 常量名称必须完全大,用下划线进行分隔。 2
阅读全文
摘要:GUI 本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 [1] 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕
阅读全文
摘要:抽象类: 抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式由派生类来实现。同时抽象类提供了继承的概念,它的出发点就是为了继承,否则它没有存在的任何意义。所以说定义的抽象类一定是用来继承的,同时在一个以抽象类为节点的继承关系等级链中,叶子节点一定
阅读全文
摘要:Chapter09【继承、super、this、抽象类】 第一章 继承 1.1概述 集成主要解决的问题是: 共性抽取 。 父类也可以叫基类、超类 子类也可以叫做 派生类。 定义: 继承:就是子类继承父类的 属性 和 行为 ,使得子类对象具有和父类相同的属性、行为。子类可以直接访问父类中的非私有的属性
阅读全文