摘要: 一、定义 子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作. 二、要求 1. 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表 2. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型 3. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限 4.子类不... 阅读原文
2020-03-29 18:54:02 阅读(2452) 评论(0)
摘要: 一、继承性的好处 1.减少了代码的冗余,提高了代码的复用性 2.便于功能的扩展 3.为之后多态性的使用,提供了前提 二、继承性的格式 class A extends B{} A:子类、派生类、subClass B:父类、基类、超类、superClass 三、子类继承父类以后有哪些不同? 1.体现:一旦子类A继... 阅读原文
2020-03-29 18:35:02 阅读(2414) 评论(0)
摘要: 一、线程的生命周期 1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态 2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间片是执行权,当线程拿到CPU时间片之后就马上执行run方法,这个时候就代表进入了运行状态     二、线程的调度与控制 通常我们的计算机只有一个CPU,CPU在某一... 阅读原文
2020-03-29 18:18:03 阅读(2288) 评论(0)
摘要: 一、属性赋值顺序 1.属性可以赋值的位置 ①默认初始化; ②显示初始化; ③构造器中初始化; ④通过“对象.属性”或“对象.方法”的方式对属性进行赋值; 2.先后顺序 ① - ② - ③ - ④   二、JavaBean 所谓JavaBean,是指符合以下标准的类: 1.类是公共的; 2.有一个公共的无参的构... 阅读原文
2020-03-29 16:51:02 阅读(3656) 评论(0)
摘要: 一、构造器的作用 1.创建对象; 2.初始化对象的信息。 二、说明 1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器; 2.定义构造器的格式:权限修饰符  类名(形参列表){}; 3.一个类中定义的多个构造器,彼此构成重载; 4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构... 阅读原文
2020-03-29 16:17:02 阅读(2819) 评论(0)
摘要: class Ticket implements Runnable { private static int tick = 100; boolean flag = true; @Override public void run() { if (flag) { ... 阅读原文
2020-03-29 14:42:01 阅读(2460) 评论(0)
摘要: 一、为何要引入封装性? 程序设计的重点是追求高内聚、低耦合:   > 高内聚:类的内部数据操作细节自己完成,不允许外部干涉   > 低耦合:仅对外暴露少量的方法用于使用 隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。 二、问题的引入   当我们创建一个... 阅读原文
2020-03-29 13:58:02 阅读(2351) 评论(0)
摘要: 本文从限流背景开始,介绍了限流的常用方法、代码实现和限流组件源码分析。本文是该系列的第一篇,介绍限流背景,限流算法和RateLimiter限流实现。第二篇会介绍RateLimiter的源码实现。 一、限流背景 限流是保护系统的重要利器,通过对并发访问或请求数进行限制或者对一个时间窗口内的请求数进行限速,用... 阅读原文
2020-03-29 12:45:08 阅读(2431) 评论(0)
摘要: 目录 一、视频讲解 二、思路分析总结: 三、代码+详解+结果 四、彩蛋 能解决题目的代码并不是一次就可以写好的 我们需要根据我们的思路写出后通过debug模式找到不足再进行更改 多次测试后才可得到能解决题目的代码! 通过学习,练习【Java基础经典练习题】,让我们一起来培养这种解决问题思路。 ... 阅读原文
2020-03-29 12:03:03 阅读(2328) 评论(0)
摘要: 1. 作用 通过二分法在已经排好序的数组中查找指定的元素,并返回该元素的下标 2. 操作接口 方法原型为:public static int binarySearch(Object[] a, Object key),该函数需要接收两个参数:数组名称,以及我们所需要查找的元素 3. 返回值 该方法的返回值的类型... 阅读原文
2020-03-29 11:25:02 阅读(2643) 评论(0)