自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 2021.02.04 第一阶段 22

1、JDK8的接口特性2、Lambda表达式3、函数式接口4、StreamingAPI一、JDK8的接口特性(一)概述1、JDK8接口中,不仅可以定义抽象方法,还能够定义非抽象方法2、抽象方法的定义和以前一样,没有变化3、非抽象方法有方法体,但是方法必需用default或者static修饰public class Demo01_JDK8Interface {} interface MyInter1 { void test1(); default void test2() { S

2021-02-04 20:51:00 191

原创 2021.02.03 第一阶段 21

1、多线程的线程安全问题2、多线程的其他内容3、单例设计模式4、线程的声明周期5、线程池6、单元测试一、多线程的线程安全问题(一)问题描述1、毛某段代码在执行的时候,操作数据还没有操作完毕,CPU就切换到其他的线程上,ITA线程对当前数据做了修改,当CPU再切换回这条线程时,这条线程会接着上一次没有做完的操作继续执行,此时数据就有可能产生问题2、产生原因:【没有保证操作数据代码执行的完整性、原子性】3、希望、在代码操作的时候,对数据的操作要么不做,要么做完,在操作数据的过程中,不要让其他

2021-02-03 21:36:33 76

原创 2021.02.02 第一阶段 20

多线程一、多线程相关的三组概念(一)程序和进程1、程序(program):一个固定的运行逻辑和数据的集合,是一个静态的状态,一般存储在硬盘中。2、进程(process):一个正在运行的程序,是一个程序的一次运行,是一个动态的概念,一般存储在内存中。例如:ctrl + shift + esc,打开任务管理器可以看到所有进程(二)进程和线程1、进程(process):一个正在执行的程序,有自己独立的资源分配,是一个独立的资源分配单位。资源指的是:例如Cpu、内存等2、线程(thread):一条独

2021-02-02 21:41:02 91

原创 2021.02.02 第一阶段 19

*1、对象操作流2、打印流3、【Properties】4、【IO中标准的关流格式】*一、对象操作流(一)概述1、用于将内存中的对象,直接写入到文件中,或者从文件中读取对象到内存2、对象输出流:ObjectOutputStream3、对象输入流:ObjectInputStream(二)对象输出流1、ObjectOutputStream:也是一个字节输出流,是OutputStream的子类,可以输出一个对象,用于将内存中的对象,输出到其他设备中,例如:文件、网络等2、ObjectOutp

2021-02-02 00:00:48 134

原创 2021.1.31 第一阶段 18

1、高效缓冲流效率的进一步提升2、close方法和flush方法的区别3、字符流4、转换流一、高效缓冲流效率的进一步提升高效缓冲流,还可以使用小数组进行进一步的效率提升import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutp

2021-01-31 19:32:17 132

原创 2021.01.31 第一阶段 17

*1、递归和File的练习2、IO概述3、字节流4、字符流*一、递归和File的练习(一)练习键盘录入一个文件夹路径,使用递归打印这个文件夹下的所有文件的绝对路径分析:一个方法:使用递归必须要有方法自己调用自己两个分支:需要递归:遇到文件夹,就重复上一次打开文件夹的动作,获取里面的内容不用递归:遇到文件,就不需要递归,而是直接获取打印文件的绝对路径即可import java.io.File;import com.offcn.homework.Homework04;/*** 键

2021-01-31 18:48:34 142

原创 2021.01.31 第一阶段 16

1.TreeSet2.递归3.File类型(io)一、TreeSet(一)基本用法1、TreeSet集合是Set接口的实现类,该集合支持排序,底层是红黑树,默认支持按照自然顺序排序。2、TreeSet集合因为是Set接口的实现类,所以也可以对元素进行去重,并且默认按照自然顺序排列数据3、注意事项:TreeSet中,只能添加一种类型的元素,不能添加来源于不同类型的元素。3、如果我们在TreeSer中添加了来自不同类型的元素,会出现ClassCastException类型转换异常。因为混合元类型

2021-01-31 14:17:13 114

原创 2021.01.29 第一阶段 15

1.HashMap的源码分析2.HashSet的源码分析一、HashMap的源码分析(一) 概述1、HashMap出现在JDK1.2版本,到JDK7版本为止,都没有产生过较大的变化2、HashMap在JDK8版本产生了较大的变化(1)HashMap在JDK7版本的时候,底层数据结构是【数组+链表】(2)HashMap在JDK8版本的时候,底层数据结构是【数组+链表 + 红黑树】3、JDK8HashMap设计的思想:因为链表过长会造成查询较慢,所以在JDK8中,链表长到一定程度,会转化为红黑

2021-01-29 22:31:41 150

原创 斗地主的制牌、洗牌和发牌

斗地主案例1、分析:(1)制牌:扑克牌有54张,四个花色,大王、小王,其中数字牌每种花色13张(2)洗牌:shuffle(List<?> list)(3)发牌:一个地主,两个农民,三张底牌2、问题:(1)发牌之后牌是乱的,需要排序,但是字符串目前为止无法排序(2)希望相同的数字牌在一起(3)排序要按照斗地主规则规定的牌面大小顺序排序import java.util.ArrayList;import java.util.Collections;import java.uti

2021-01-21 21:28:53 1357

原创 2021.01.21 第一阶段 14

一、Map(一)概述1、Map,地图,地图上的每一个坐标都和现实生活中一个实际的地方一一对应,有这种一对一的关系,这种对应关系是通过穷举的方式描述的。2、Map集合描述的是一个数据到另一个数据的映射关系(对应关系)。其中一个数据:key,叫做键,有规律的,容易记忆的,比较简单。另一个数据:value,叫做值,往往没有规律,不容易记忆,比较复杂。3、【绝大多数的双列集合的操作,都是根据key操作value】4、映射:对应关系(1)y = x * x(2)穷举罗列:{1= 1, 4 = 2, 9

2021-01-21 21:17:30 122

原创 2021.01.20 第一阶段 13

一、LinkedHashSet1、是set接口的一个实现类,并且是HashSet的子类,在集合中定义了迭代顺序2、效果:既能够对元素去重,还能够保证存取顺序一致3、去重原理和HashSet一致4、场景:既需要去重有需要保证顺序,就可以考虑使用该类二、异常(一)概述1、在java代码的运行过程中,出现了和正常情况不一样的情况,就是异常2、异常就是一个对象,描述了和正常情况不符合的异常情况,这个对象中,包含了:异常情况的原因、类型、出现异常的位置3、异常也是一种机制,可以通过异常实现代码的跳转

2021-01-20 18:29:44 129

原创 2021.01.19 第一阶段12

一、RandomAccess1、迭代器对集合遍历的效率远高于其他遍历方式2、ArrayList实现了RandomAccess接口,但是LinkedList没有实现RandomAccess接口3、RandomAccess接口实际上就是一个标记接口4、ArrayList使用for循环遍历比迭代器略快,但是其他的集合使用迭代器遍历的效率远高于for循环二、LinkedLIst的源码分析1、LinkedList内部没有容量限制,只要创建节点,链表就能扩容,因为链表可以无限长,并且链表间的每一个节点都是通

2021-01-19 18:01:59 68

原创 2021.01.18 第一阶段11

(一)Collection(一)概述1、Collection:收集、集合。2、单列集合的顶层接口,定义了所有单列集合共性的功能3、Collection是一个接口,无法直接创建对象,要依靠实现类来创建对象,不同底层的实现类,具有不同的特性。将来创建对象,可以使用Collection接口的引用指向具体的实现类的对象。(二)常用方法1、add(E e) 将参数元素添加到集合中2、remove(Object o) 从集合中删除指定元素3、size() 返回集合中的元素个数4、contains(Ob

2021-01-18 23:01:20 217

原创 2021.01.15 java第一阶段10

(一)Date1、Date 类型的对象用于表示一个特定的瞬间,精确到毫秒。根据构造方法不同,创建的Date对象表示的毫秒值也有差别2、构造方法:(1) Date() 创建Date对象,此对象中表示的时间就是1970年1月1日0时0分0秒到创建它刹那的毫秒值 (2)Date(long date) 创建Date对象,此对象表示的时间是参数指定的毫秒值3、成员方法:(1)getTime() 获取Date对象中的毫秒值 【Date -> 毫秒】(2)setTime(long time) 向调用

2021-01-15 19:30:24 114

原创 2021.01.14 第一阶段 09

一、Math类1、常量:(1)E:自然对数的底数(2)PI:圆周率2、方法:(1)abs(数字类型) 求绝对值(2)cbrt(double a) 开立方(3)sqrt(double a) 开平方,如果给负数开平方,返回NaN:not a number(4)ceil(double a) 向上取整(5)floor(double a) 向下取整(6)max(int a, int b) 获取两个参数中较大的那一个(7)min(int a, int b) 获取两个参数中较小的那一个(8)pow

2021-01-14 20:46:58 187

原创 2021.01.13 java第一阶段 08

一、System1、System类型用于描述系统资源的类型,该类不创建对象,直接使用类名来调用静态内容即可2、常用字段:(1)System.out:标准输出流,默认关联到显示器(控制台)(2)System.in:标注输入流,默认关联到键盘(3)System.err:标准错误输出流,默认关联显示器(控制台),用于打印错误信息3、常用方法:(1)gc():强制垃圾回收器回收系统垃圾(2)currentTimeMillis():获取当前时间的毫秒值表示形式。1秒等于1000毫秒。获取到的当前时间,

2021-01-13 17:23:24 71

原创 2021.01.12第一阶段 07

一、Object类型(一)API1、API:Application Programming Interface,应用程序编程接口2、接口:用于定义方法名称和参数列表等的规则的集合。定义了方法名称、参数列表、返回值类型及权限修饰符等,包括方法的功能3、实际上,应用程序编程接口,也包含了类、接口、枚举等一系列的内容4、我们在学习的时候,更多的是关注内容部分,而不是内容如何实现(二)类库1、Java代码在编译之后,会生成【.class】文件,包含了代码中的所有内容,我们在没有源代码的前提下,直接使

2021-01-12 17:14:00 119

原创 2021.01.11第一阶段06

一、接口(一)接口的概述1、广义:一切定义规则的都是接口2、狭义:Java中用于定义方法声明的就是接口在Java的接口中,定义的都是抽象方法,只有方法的声明,没有方法的实现3、好处:解耦合将方法的调用和方法的实现拆分开了(二)接口的特点1、定义格式:interface 接口名 {抽象方法}2、接口中,只能定义抽象方法,不能定义非抽象方法3、接口在编译过后,也会生成一个【.class】文件4、接口无法实例化,可以使用类来实现接口,类创建对象5、类实现接口:使用关键字impleme

2021-01-11 19:25:28 68

原创 2021.01.08 第一阶段05

一、多态(一)多态的概述1.多态:事物的多样性,事物的多种状态。2.对象的多态性:同一个对象,在不同类中,又不同的名称,又不同的指引指向它,本质:同一事物在不同的类型中又不同的名称和描述。3.类的多态性:同一个类型,可能具有不同的子类实现。同一个类型的引用,可能指向不同的实现对象。本质:同一个名字描述,在不同的场景下,可能会有不同的实现。4.多态的前提:(1) 要有继承(2)要有方法的重写(3)父引用指向子类对象(二)多态中成员变量访问 和 方法访问的特点1.成员变量: 编译看左边,运行

2021-01-08 20:28:18 157

原创 2021.01.07 第一阶段04

一、继承(一)继承的概述1、让类与类之间产生关系,父子关系2、关键字:extends,含义:继承、扩展、增加3、父类和子类:(1)父类:被继承的类,超类、基类(2)子类:继承其他类的类,派生类(二)继承的好处和弊端1、好处:(1)提高了代码的复用性(2)提高了代码的可维护性2、弊端:(1)代码的耦合度变高了(2)耦合度:代码与代码之间关联的紧密程度3、开发原则:高内聚、低耦合、代码复用性高(1)高内聚:一段代码或者一个模块具有独立且不依赖外界的业务逻辑(2)低耦合:模块与模块

2021-01-07 18:05:25 119

原创 2021.01.06 第一阶段03

一、死循环1、死循环:永不停止的循环,会一直执行下去2、应用场景:(1)服务器的设计当中可以使用死循环。因为我们不希望服务器停止,而是永远执行下去,如果是有限次的循环,就无法解决这个问题。(2)我们在操作一些业务逻辑的时候,每做一次都会向着最终的结果前进,但是不知道到底要执行多少次才能达成目标,可以使用死循环,当达成目标的时候,可以通过一些手段让循环发生跳转甚至结束(例如:跳转语句)3、定义格式:(1) for(;???? {循环语句体}(2)while(true) {循环语句体

2021-01-06 17:33:30 396

原创 2021.01.05 第一阶段02

1、成员变量和局部变量的区别有哪些?(1)代码层面:定义位置不同成员变量,定义在类中(类中方法外)局部变量,定义在方法中(2)内存层面:空间不同成员变量,随着对象的创建而创建,创建在堆内存中对象空间内局部变量,随着方法的加载而创建,创建在栈中方法内(3)内存层面:时间不同,生命周期不同成员变量,随着对象的创建而创建,随着对象的消亡而消亡局部变量,随着方法的加载而创建,随着方法出栈而消亡(4)初始化状态不同:局部变量:没有初始值,必须先赋值后使用成员变量:具有默认初始化值2、什么是匿

2021-01-05 21:15:38 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除