本文核心:线程池ThreadPoolExecutor基础梳理 一.实现多线程的方式 1.继承Thread类,重写其run方法 2.实现Runnable接口,实现run方法 3.实现Callable接口,实现call方法 由于Java的设计,只支持单继承,但是支持多实现形式,所以一般面向接口开发,Ru ...
分类:
编程语言 时间:
2019-03-21 13:09:00
阅读次数:
171
出去面试了一下,感觉很多知识都忘记了,然后,进行一次大规模的复习。 如果不够,将会在后面章节再做补充。 一:基本概念 1.面向对象的三个特征 封装,继承,多态 2.多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。主要有以 ...
分类:
编程语言 时间:
2019-03-17 12:18:40
阅读次数:
179
1.在字符搜索时,如果遇到了使用全局Map存放字符串的,比如:c.put(Integer.valueOf(61),jd+"/client/get_rising.pb");搜索时定位不到,可以用c.get(Integer。。的方法,找到该字符的使用位置。2.如果找到打印相关函数,首先hook全部打印。3.在遇到有函数调用效果,但代码中该函数为空时,首先考虑是否是该函数所属类的子类
分类:
移动开发 时间:
2019-03-05 12:44:30
阅读次数:
196
final关键字 final关键字作为java语法中出现次数较多的一个关键字,其含义有如下几种解释: 1. 修饰类,表示该类无法被子类继承。注意:被final修饰的类中,成员方法默认为final方法。 2. 修饰函数,表示该函数无法被子类重写。注意:类中的private方法会默认为final方法。 ...
分类:
编程语言 时间:
2019-03-04 20:46:09
阅读次数:
167
3.函数重写(override)前提:必须有继承性原因:父类中的功能(函数),子类需要用,但是父类中函数的函数体内容和我现在要执行的逻辑还不相符那么可以将函数名保留(功能还是此功能),但是将函数体重构;注意:子类重写父类的函数,除了函数体以外的部分,直接复制父类的即可演示函数重写的使用以及格式: c ...
分类:
编程语言 时间:
2019-03-04 00:05:44
阅读次数:
220
虚方法(virtual ) 简单的说,虚方法就是可以被子类重写的方法,如果子类重写了虚方法,那么运行时将使用重写后的逻辑,如果没有重写,则使用父类中虚方法的逻辑。 1,非虚方法的实现是一成不变的,无论在基类和派生类上调用,实现均相同。 2,虚方法能够在派生类中进行重写 3,虚方法重写时,不可改变访问 ...
1、final修饰的类:不能被其他类继承;2、final修饰的方法:不能被子类重写3、final修饰的变量 先理解两个概念:基本类型变量、引用变量。 基本数据类型变量:存的是数值本身,存放在栈内存中; 引用类型变量:存的是数据的地址,数据存放于堆内存中,引用变量是以间接的方式获取数据的; final ...
分类:
编程语言 时间:
2019-03-02 10:57:33
阅读次数:
237
多态的概述 多态是继封装、继承之后,面向对象的第三大特性。 最终多态体现为父类引用变量可以指向子类对象。 多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。 在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。 多态的定义与使用格式 多态的定义格式:就是父类的引用变量指向子 ...
分类:
编程语言 时间:
2019-02-25 13:45:22
阅读次数:
133
面向对象语言三个基本特征 封装 : 把客观物封装成类,并将类内部的实现隐藏,以保证数据完整性; 继承 : 通过继承可以复用父类(基类)代码 多态 : 允许将子类对象赋值给父类对象的能力 封装 封装是指把类内部的数据隐藏起来,不让对象实例直接操作,C 中提供了属性机制来对类内部的状态进行操作. 继承 ...
修改了key之后不能remove 问题的原因是对key进行了修改(因为key类重写了hashcode和equals方法,所以key对象的hash也会随之改变),由于对象在map中的位置是由修改前的key的hash计算而来的,而删除过程中的查找使用的是修改后的对象的hash,两次hash不一致,因此找 ...
分类:
其他好文 时间:
2019-02-08 21:39:50
阅读次数:
211