- 博客(30)
- 收藏
- 关注
原创 Hadoop-剖析HDFS读写流程
HDFS客户端读流程打开HDFS文件:HDFS客户端首先调用DistributedFileSystem.open()方法打开HDFS文件,这个方法在底层会调用ClientProtocol.open()方法,该方法返回一个HdfsDataInputStream对象用于读取数据块。HdfsDataInputStream其实是一个DFSInputStream的装饰类,真正进行数据块读取操作的是D...
2019-01-15 08:30:23
265
翻译 Manacher算法
这个马拉车算法Manacher‘s Algorithm是用来查找一个字符串的最长回文子串的线性方法,由一个叫Manacher的人在1975年发明的,这个方法的最大贡献是在于将时间复杂度提升到了线性,这是非常了不起的。对于回文串想必大家都不陌生,就是正读反读都一样的字符串,比如 "bob", "level", "noon" 等等,那么如何在一个字符串中找出最长回文子串呢,可以以每一个字符为中心,向两...
2018-11-12 19:32:00
198
原创 java-se-网络编程
网络编程: java语言中,提供了一套统一的编程接口,其中很多细节都已经底层化,可以进行无痛的网络通信编程,提供了Socket套接字技术。常用的通信协议: (1)TCP/IP:在通信之前,需要建立连接,通信之后需要断开连接, 一般会有一个做为服务器端,有一个做为客户端 主要将通信模式分成四层: 应用层 ...
2018-09-24 17:36:21
185
原创 java-se-线程
进程:是一个运行中的程序,当CPU赋予程序生命时,就是进程。是操作系统的一个任务线程:是进程中的一个任务,是一个顺序执行流。有自己独立的堆栈,与其他线程共享进程的地址空间多进程:相比较于古老的操作系统,现在的操作系统都是多进程的,可以同时运行多个程序多线程:一个进程中的多个任务,可以同时进行多个顺序执行流。提高CPU的资源利用率,可以共享同一个资源(静态资源,同一个对象实例)并发原理: ...
2018-09-19 18:50:51
122
原创 java-se-迭代器、增强for循环与JavaBean规范
Iterator:迭代器接口 (1)用来遍历集合元素的,是一个接口。Collection接口继承了Iterator,提供了一个方法Iterator iterator() (2)Collection的实现类使用内部类定义了迭代器子类 (3)迭代器提供了统一的方法用于遍历集合元素 常用方法: ...
2018-09-11 19:02:28
397
原创 java-se-集合(Map)
Map接口: 集合框架中的另一个父接口 Map集合用于存储一一对应的元素数据。第一个对象可以作为索引,第二个对象作为值,称为key-value(键值对) 存储数据的特点: (1)以key-value形式存储 (2)key与value都必须是引用类型 (3)key与value是单向一对一映射 (4)key可以为n...
2018-09-11 18:58:49
204
原创 java-se-集合之Queue
Queue: 是Collection的子接口,是队列的数据结构(通常都是一端进(offer),另一端出(poll)) 因为队列需要经常进行增删操作,所以使用LinkedList实现了Queue接口 进出原则:FIFO 常用方法: boolean offer(E e) 元素e从队尾进入队列 ...
2018-09-11 18:52:06
229
原创 java-se-集合之Set
Set: 特点1:无序,存储的元素顺序与添加顺序无关 特点2:不可重复(使用元素的equals()方法判定是否重复), 特点3:能存储null元素,只能存储一次 Hash算法机制: Set集合在添加查看元素时,当集合中的元素过多时,就会进行多次比较,效率变低,为了提高效率,在设计元素类型时,提供hash算法,用于返回对象的一个int...
2018-09-11 18:45:06
220
原创 java-se-集合之List
List:列表 此接口对应的实现类的特点都是:有序的、可重复的(重复与否与元素的equals()方法有关) 常用方法: void add(int index, E element) 将元素element插入此集合的index处 E get(index) ...
2018-09-11 18:30:16
180
原创 java-se-集合(Collection)
集合: 概念: 用于存储多个对象的单一容器(对象)。存储的数据叫元素。 集合框架: 包含多种接口、抽象类、实现类等,用来满足我们所需要的存储数据的数据结构 元素: 必须是引用数据类型的数据,不能是基本数据类型的数据 集合与数组的区别: 数组可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型 ...
2018-09-11 18:22:35
229
原创 java-se-日期与时间类型
日期与时间: java中的时间: (1)采用标准类库的Date类型时间。使用距离一个固定时间点的毫秒数的时间点来表示时间 (2)固定时间点(纪元)(UTC),1970年1月1日00:00:00 (3)UTC与GMT都是世界通用的时间格式 Date类型: java.util.Date类型,封装了日期与时间的信息。很多功能...
2018-09-11 18:17:49
609
原创 java-se-包装类
包装类: java语言是面向对象的语言,基本数据类型的数据不是对象,有时候我们需要研究使用基本数据类型的数据,需要将之转换为对象来使用,此时可以将基本数据类型包装成引用类型 每个基本数据类型都对应一个包装类: byte-->Byte short-->Short int-->Integer long-->Long float--...
2018-09-11 18:16:01
134
原创 java-se-正则表达式
正则表达式: (1)对一些字符进行匹配、查找、替换等复杂的操作,需要通过正则表达式实现这些操作 (2)是一个有“特殊意义”的字符串,定义了一种“校验规则”常用字符集: []:表示匹配括号内的一个字符 [abc]:表示匹配abc中的任意一个 [a-z]:表示匹配a-z中的任意一个字符 [0-9]:表示匹配0-9中的任意一个字符 [a-zA-Z0...
2018-09-11 18:14:05
176
原创 java-se-字符串类型
StringBuilder:可变字符串类型 (字符串:底层是字符数组,及其对数组的操作) 特点: (1)final修饰的类型 (2)没有重写equals方法,重写了toString方法 (3)此类型提供的大多数方法都带有返回值,即 return this 返回同一个地址 构造器: StringBuilder(...
2018-08-13 18:29:05
159
原创 java-se-API
API: 应用程序编程接口,即jdk文档手册,以类的形式提供了许多常用的功能常用的包与类: jvav.long包:因为常用,所以不需要导包 包含 字符串、线程等 java.util包: 数组工具类、日期、集合等 java.net包: 网络相关的类型 java.io包...
2018-08-12 16:48:01
184
原创 java-oop-内部类
内部类: 定义在类内部的新类型称为内部类,另一个类称为外部类 根据位置不同分为: 成员内部类 方法内部类(局部内部类) 带static修饰词的类:静态内部类 无名称的类:匿名内部类 不常用的类:方法内部类和静态内部类 方法内...
2018-08-12 16:46:52
217
原创 java-oop-多态
多态: 向上造型: 父类型的变量指向子类型的对象 (1)父类型的变量指向不同的子类型对象,调用得功能有不同的实现 (2)不同的父类型变量指向同一个对象,有不同的功能 向下造型: 将父类型(或接口)的变量赋值给子类型的变量或其他父类型(或接口...
2018-08-06 18:29:23
370
原创 java-oop-接口
接口: 从多个不相关的类型中设计出一个子类,达到多继承的目的 接口的特点: (1)使用interface关键字修饰(可以理解为:接口是特殊的抽象类) (2)只能有抽象方法和常量 (3)不能实例化 (4)不能提供构造器 接口中...
2018-08-06 18:28:50
347
原创 java-oop-抽象类
抽象类: 由于继承的存在,子类的功能越来越具体,相对来说,父类更加一般化,通用化。有时在父类中无法完成子类的功能需求,此时可以不写方法体,代码简单化 但是此方法必须使用abstract修饰,此类型也必须使用abstract修饰,即抽象类 1、抽象方法与抽象类: (1)用abstract修饰的方法不需要写方法体,但是得用分号结尾 ...
2018-08-06 18:28:12
361
原创 java-oop-设计模式
设计模式之:单例模式 需求:在程序中的任何地方,我们想要获取某一个类的唯一对象,称之为类的单例 (1)提供一个私有的静态的本类型的成员变量 (2)构造器私有化 (3)提供公有的静态的方法获取本类中创建的实例 饿汉写法:加载期间就实例化 public class Singleton{ ...
2018-08-06 18:27:29
390
原创 java-oop-Object
Object:是所有引用类型的顶级父类,系统都会默认使用引用类型extends Object 此类中提供了常用的方法: 1:toString():在Object中返回的是类全名@HashCode值,即对象的内存堆中的位置信息 此方法会在输出变量时,或引用变量进行拼接时默认调用,而查看地址信息,通常没有必要,我们通常要查看的是对象的成员...
2018-08-06 18:26:12
160
原创 java-oop-继承
继承: java的继承是定义一种新的类型,从已有类中吸收成员变量和方法,新的类型可以添加新的方法和成员变量 这种方式可以提高代码的复用性,缩短开发周期,减少开发费用 extends关键字:用于继承语法 格式: public class subClass extends SuperClass{}...
2018-08-06 18:25:21
249
原创 java-oop-数组
数组: 基本数据类型数组:元素是基本类型的数据 引用数据类型数组:元素是对象的地址信息 初始化方法: 静态初始化: 元素类型[] 变量名 = {} 动态初始化: 元素类型[] 变量名 = new 元素类型[length]//规定长度 元素类型[] 变量名 = new 元素...
2018-08-06 18:23:57
222
原创 java-oop-构造方法
构造方法(构造器): 是特殊的方法,作用是用来给成员变量(Field,字段,属性)初始化。 特殊在(1)没有返回值这个位置 (2)方法名与类名相同 如:点 public class Point(){ int x; in...
2018-08-05 19:40:13
303
原创 java-oop-关键字
1、this关键字: 在普通方法和构造器中,操作的成员变量与局部变量名称相同时,为了避免出现歧义,应该在成员变量前使用this.进行区分 this指向的是将要创建的对象,即,变量.方法() 时的变量 在构造器中:还可以使用this关键字调用类中的其他构造方法 语法格式:this(有参传参) 这种写法必须放在首行首句2、su...
2018-08-05 19:39:45
457
原创 java-异常
异常: 概念:程序在开发过程中发生的不正常情况 异常两大类型: (1)Exception:程序员可以解决的程序异常:如 空指针异常、数组下标越界、除数是0等 (1)Error:程序员无法解决的程序异常:如 内存溢出等 Throwable是这两种类型的父类 Exception的分类: 1、按照编译器是否检查分类:...
2018-08-05 19:39:05
121
原创 java-oop-内存管理机制与垃圾回收机制
内存管理机制: jvm将内存分为三大主要区域 方法区:存储jvm加载的字节码文件信息(类的信息),包含类的方法,方法只有一份,堆中的对象共享这份方法,在使用非static修饰的方法时,需要对象来调用(即动态绑定到对象上) 堆(heap):存储new出来的对象,给成员变量分配空间 栈(stack):jvm在执行程序时,在栈中会为每个方法...
2018-08-05 19:38:36
173
原创 java-oop-方法
概念: 类的共同行为,封装了一段逻辑代码,在封装方法时,尽可能的只完成一项功能(避免将多个功能封装到一个方法内)方法的使用: 引用变量.方法 方法属于对象的行为,这些方法动态绑定到对象上方法签名: 方法名+形参列表=方法签名 形参列表指的是形参的类型顺序列表 如:public void sum(int...
2018-08-05 19:37:27
193
原创 java-oop
面向过程:C,Basic,Pascal 核心思想:自顶向下,逐步细分,模块化 程序的基本单元:函数 针对于函数来说:会接收一些数据,进行处理,然后再输出一些数据面向对象:C++,java,C#... 相对面向过程,简单,好学 核心思想:使用类、对象、继承、封装、消息、动态绑定、静态绑定 进行程序设计 程序的基本单...
2018-07-29 20:06:35
237
原创 java01-08
jdk:java development kit-java开发工具包 --java开发工具: 编译器,调试器,javadoc.exe java.exe javac.exe 程序员开发:需要jdk --jre(java runtime environment)--java运行环境 --jvm(java虚拟机): 使用程序模...
2018-07-23 20:36:43
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人