骏马金龙

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!

摘要: sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中的疑难杂症 说明: 第一篇是入门篇,但却是最重要的一篇。虽然内容不算多,但在里面讲了绝大多数sed的阅读全文
posted @ 2017-09-09 21:54 骏马金龙 阅读(254) 评论(0) 编辑
摘要: 我将尽量写出整个体系的内容,初学的朋友可以视之为学习资料,如同看书一样。虽然网上培训视频比较好入门,大方向上的知识点也还算完整,我个人也是这么入门的(基本上看完了某哥和某孩共两整期的视频课程),但看完后入门了,在回炉深造的时候,却发现这些视频课程真的缺少很多内容,甚至说,看完视频会遗漏很多非常重要的阅读全文
posted @ 2017-06-19 13:52 骏马金龙 阅读(7800) 评论(16) 编辑
摘要: openssl系列篇(翻译整理man文档以及用法示例) 证书请求、证书颁发、CA相关 回到系列文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/609阅读全文
posted @ 2016-11-22 21:09 骏马金龙 阅读(165) 评论(0) 编辑
摘要: 1.会话技术简介 http协议是无状态的,因此对于服务端来说,当它接收到客户端的http请求时,无法识别这个请求来源于哪个客户端。无状态的协议有优点也有缺点,但对于需要识别客户端甚至是需要记住客户端的业务来说,应当要让http协议"有状态"。 需要记住客户端的业务种类非常多。例如登陆系统,在一个页面阅读全文
posted @ 2018-01-21 00:18 骏马金龙 阅读(20) 评论(0) 编辑
摘要: webapp项目的结构如下图: download.html文件的内容如下: 负责处理下载的Servlet——download.java文件的内容如下: 在浏览器地址栏中输入http://localhost:8080/DownloadServlet/download.html。 注:若您觉得这篇文章还阅读全文
posted @ 2018-01-17 23:30 骏马金龙 阅读(33) 评论(0) 编辑
摘要: URL类将URL地址封装成对象,提供了解析URL地址的方法,如获取uri部分、host部分、端口等。 URLConnection则是URL对象和Socket连接给结合起来了,使得可以更轻松地获取发起URL请求的连接套接字。 1.URL 2.URLConnection 通过URL的openConnec阅读全文
posted @ 2018-01-09 15:22 骏马金龙 阅读(53) 评论(0) 编辑
摘要: TCP通信需要明确的几点: 服务端需要使用accept()方法将监听套接字转变为已连接套接字。这个监听套接字可以生成多个已连接套接字,这样连接后还能监听其他客户端的请求。因此,这里应该使用多线程实现并发访问。获得了已连接套接字,就可以获取很多客户端的信息,例如客户端的ip地址,发送请求的端口等。 服阅读全文
posted @ 2018-01-09 13:16 骏马金龙 阅读(75) 评论(0) 编辑
摘要: UDP通信需要明确的几点: (1).只不过对于发送端来说,创建发送报文对象需要指定目标套接字信息(ip+port),还需明确数据发送缓冲区。 (2).而对于接收端来说,则只需明确一个数据接收缓冲区即可。 UDPSender端: UDPRecver端: UDP实现群聊: 思路: 注:若您觉得这篇文章还阅读全文
posted @ 2018-01-08 23:08 骏马金龙 阅读(38) 评论(0) 编辑
摘要: 网络相关对象在java.net包中。 1.获取主机对象InetAddress 2.获取主机对象的ip地址和主机名(需要dns解析主机名) 3.获取本机所有接口NetworkInterface并遍历 由于一个接口上可能有多个子接口(辅助ip,如eth0:1),因此根据某个接口,可以得到该接口的所有ip阅读全文
posted @ 2018-01-08 16:46 骏马金龙 阅读(80) 评论(0) 编辑
摘要: 本文目录:1.等待、唤醒机制的原理2.Lock和Condition3.单生产者单消费者模式4.使用Lock和Condition实现单生产单消费模式5.多生产多消费模式(单面包)6.多生产多消费模式 生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同阅读全文
posted @ 2018-01-06 00:22 骏马金龙 阅读(52) 评论(0) 编辑
摘要: 本文目录:1.几个基本的概念2.创建线程的两种方法3.线程相关的常用方法4.多线程安全问题和线程同步 4.1 多线程安全问题 4.2 线程同步 4.3 同步代码块和同步函数的区别以及锁是什么 4.4 单例懒汉模式的多线程安全问题5.死锁(DeadLock) 1.几个基本的概念 本文涉及到的一些概念,阅读全文
posted @ 2018-01-05 00:45 骏马金龙 阅读(78) 评论(0) 编辑
摘要: 额外功能处理流的意思是在基础流(InputStream/OutputStream/Reader/Writer)的基础上提供额外的功能。常见的额外功能可归纳为以下几种。 Bufferedxxx类和Array相关的功能此处不做介绍。本文将介绍除此之外的其余功能以及对象序列化时涉及到的序列化接口Seria阅读全文
posted @ 2018-01-03 01:48 骏马金龙 阅读(46) 评论(0) 编辑
摘要: Properties类继承自HashTable,通常和io流结合使用。它最突出的特点是将key/value作为配置属性写入到配置文件中以实现配置持久化,或从配置文件中读取这些属性。它的这些配置文件的规范后缀名为".properties"。表示了一个持久的属性集。 需要注意几点: 如果想将Proper阅读全文
posted @ 2018-01-02 16:22 骏马金龙 阅读(49) 评论(0) 编辑
摘要: 字节流、字符流涉及的类比较多,比较容易混淆。因此,有必要针对何时使用字节流、何时使用字符流、何时使用Buffer类的流做一个归纳。要归纳它们,无需过多的语言,只需抓住它们的重点和特性即可。 在决定何时使用何种类时,以下几个问题需要考虑清楚。 数据源:表示输入,或称为读。可提供使用的两个父类为Inpu阅读全文
posted @ 2017-12-31 22:47 骏马金龙 阅读(41) 评论(0) 编辑
摘要: 要读取键盘输入的数据,需要使用输入流,可以是字节输入流,也可以是字节输入流转换后的字符输入流。 关于键盘输入,有几点注意的是:(1).键盘输入流为System.in,其返回的是InputStream类型,即字节流。(2).字节流读取键盘的输入时,需要考虑回车符(\r:13)、换行符(\n:10)。(阅读全文
posted @ 2017-12-31 21:22 骏马金龙 阅读(32) 评论(0) 编辑
摘要: 字符流按字符个数输入、输出数据。 1.Reader类和FileReader类 Reader类是字符输入流的超类,FileReader类是读取字符的便捷类,此处的便捷是相对于其父类(另一个字符输入流)InputStreamReader而言的。 read()每单字符读取: read(char[] c)读阅读全文
posted @ 2017-12-30 21:29 骏马金龙 阅读(40) 评论(1) 编辑
摘要: 数据流分为输入、输出流,无论是输入流还是输出流,都可看作是在源和目标之间架设一根"管道",这些管道都是单向流动的,要么流入到内存(输入流),要么从内存流出(输出流)。 应用于java上,输入流和输出流分别为InputStream和OutputStream。输入流用于读取(read)数据,将数据加载到阅读全文
posted @ 2017-12-29 21:31 骏马金龙 阅读(68) 评论(0) 编辑
摘要: 1.File类简介 File类位于java.io包中。它面向文件层次级别操作、查看文件,而字节流、字符流操作数据时显然比之更底层。 学习File类包括以下几个重点:文件路径、文件分隔符、创建文件(目录)、删除文件(目录)、查看文件内容(输出目录内文件)、判断文件(是文件/目录?存在否?可读写执行?)阅读全文
posted @ 2017-12-29 11:41 骏马金龙 阅读(63) 评论(0) 编辑
摘要: 以d:\a目录为例,假设D:\a目录内的结构如下: 4.1 示例1:列出整个目录中的文件(递归) 思路:1.遍历目录d:\a。2.每遍历到d:\a中的一个目录就遍历这个子目录。因此需要判断每个遍历到的元素是否是目录。 以下是从普通代码到递归代码前的部分代码: 对重复的代码部分进行封装,于是使用递归方阅读全文
posted @ 2017-12-29 01:45 骏马金龙 阅读(98) 评论(0) 编辑
摘要: java中的数组是引用数据类型。 根据数据类型可分为两种类型: (1).基础数据类型的数组。只是数组内的数据类型是基础的,数组本身仍然是引用类型,毕竟数组有两段内存空间(栈中引用变量,堆中数组对象)。例如:int[] a = new int[3];表示数组中有三个成员:a[0]、a[1]和a[2]。阅读全文
posted @ 2017-12-28 01:56 骏马金龙 阅读(17) 评论(0) 编辑
摘要: JAVA中的异常类都继承自Throwable类,也就是说,这是异常类的根。Throwable类扩展了两个类Error类和Exception类,Exception类又扩展了一个RuntimeException类。如下图: Error:称为错误,由Java虚拟机生成并抛出,这类错误一般是运行时系统内部的阅读全文
posted @ 2017-12-28 01:50 骏马金龙 阅读(116) 评论(1) 编辑
摘要: 抽象类(abstract) 以下面多态的示例来说明: 父类Animal中的sing()方法迟早要被子类Cat、Dog重写,而且在多态实现下,Animal的sing()完全是多余的。因此,可以将Animal的sing()方法的方法体删掉。 更彻底一点,将sing()方法加上abstract关键字,这个阅读全文
posted @ 2017-12-27 22:38 骏马金龙 阅读(91) 评论(0) 编辑
摘要: 权限修饰符 权限修饰符包括public、private、protected和不加任何修饰符的default,它们都可以修饰方法和变量。其中public和默认的default(不加任何修饰符)这两个还可以修饰class。private和protected修饰类的情况只能在使用内部类时修饰,正常情况下不阅读全文
posted @ 2017-12-27 20:32 骏马金龙 阅读(63) 评论(0) 编辑
摘要: 类路径(classpath) java编译器编译.java文件和java虚拟机执行.class文件时的路径和写法不一样。 在没有设置任何classpath环境变量的情况下,javac可以编译全路径的.java文件。例如: 编译后,在.java同路径目录下生成class文件。 默认java虚拟机要从c阅读全文
posted @ 2017-12-27 20:28 骏马金龙 阅读(91) 评论(0) 编辑
摘要: 基础 类有属性和方法,它们对本类有效(作用范围)。类的属性就是成员变量,它默认会赋值初始化。类的方法是类具有的一些行为。 类是抽象的,将它们实例化后就是对象(通过new进行实例化),各实例化后的对象都具有这些成员变量的属性,且赋有具体的值,如果某对象没有为成员变量赋值,则采用默认初始化时的值。每个n阅读全文
posted @ 2017-12-27 20:26 骏马金龙 阅读(49) 评论(0) 编辑
摘要: 本文目录:1. 入门示例:虚拟主机提供web服务2. tomcat体系结构基本说明3. tomcat的appBase和docBase详细说明4. webapp体系结构5. tomcat进阶:tomcat配置文件server.xml详解 5.1 顶级元素server 5.2 顶级元素service 5阅读全文
posted @ 2017-12-26 21:01 骏马金龙 阅读(402) 评论(0) 编辑
摘要: 简介 集合和数组的区别: 数组存储基础数据类型,且每一个数组都只能存储一种数据类型的数据,空间不可变。 集合存储对象,一个集合中可以存储多种类型的对象。空间可变。 严格地说,集合是存储对象的引用,每个对象都称为集合的元素。根据存储时数据结构的不同,分为几类集合。但对象不管存储到什么类型的集合中,既然阅读全文
posted @ 2017-11-06 01:58 骏马金龙 阅读(148) 评论(0) 编辑
摘要: 基础数据类型包装类 当一个程序要求交互式输入一个int类型的年龄时,从文本框中输入的结果肯定是String类型的。要在程序中进行相关操作,它必须先转换为int类型。因此可以使用数据类型的转换或强制转换,但这种转换方式太过简单,功能太少,因此java中提供了数据类型包装类的概念。 数据类型包装类是指可阅读全文
posted @ 2017-11-04 13:31 骏马金龙 阅读(69) 评论(0) 编辑
摘要: 简介 String/StringBuilder/StringBuffer这3个类都能创建字符串对象,它们都继承自Object类。 其中String对象一经创建,空间固定不变,无法再向其中增、删数据。即使提供了replace()方法,但也是一个字符对应一个字符的替换。总之它的空间大小不变。 而后两者都阅读全文
posted @ 2017-11-04 06:42 骏马金龙 阅读(91) 评论(0) 编辑
摘要: 对象类型转换 分为向上转型和向下转型(强制对象转型)。向上转型是子对象向父对象转型的过程,例如猫类转换为动物类;向下转型是强制转型实现的,是父对象强制转换为子对象。这和基础数据类型的转换是类似的,byte在需要时会自动转换为int(向上转型),int可以强制转型为byte(向下转型)。 对于对象转型阅读全文
posted @ 2017-10-29 18:20 骏马金龙 阅读(74) 评论(1) 编辑
摘要: show processlist和show full processlist processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别出有问题的查询语句等。 如果是root帐号,能看到所有用户的当前连接。如果是其他普通帐号,则只能看到阅读全文
posted @ 2017-10-27 11:02 骏马金龙 阅读(75) 评论(0) 编辑
摘要: 本文目录:1. 字符串函数 1.1 字符串连接函数 1.2 lower()、upper()、left()、right() 1.3 填充函数lpad()和rpad() 1.4 trim()、ltrim()、rtrim()及trim() 1.5 字符串重复函数repeat() 1.6 字符串替换函数re阅读全文
posted @ 2017-10-26 23:52 骏马金龙 阅读(579) 评论(1) 编辑
摘要: 本文目录:1.1 数据类型概览1.2 存储机制和操作方式 1.2.1 整型的存储方式 1.2.2 字符类型的存储方式 1.2.3 日期时间型的存储方式 1.2.4 ENUM数据类型 1.2.5 SET数据类型1.3. 数据类型属性:unsigned1.3. 数据类型属性:zerofill 1.1 数阅读全文
posted @ 2017-10-25 15:47 骏马金龙 阅读(379) 评论(0) 编辑
摘要: 本文目录:1. 入门示例:虚拟主机提供web服务2. tomcat体系结构基本说明3. tomcat的appBase和docBase详细说明 4. tomcat进阶:tomcat配置文件server.xml详解 4.1 顶级元素server 4.2 顶级元素service 4.3 执行器execut阅读全文
posted @ 2017-10-25 09:42 骏马金龙 阅读(527) 评论(0) 编辑
摘要: 本文目录:1. 背景知识 1.1 java和jdk概念 1.2 jsp、servlet是什么 1.3 web服务器、web容器、应用程序服务器 1.4 tomcat体系结构2. 安装tomcat 2.1 安装jdk 2.2 安装tomcat 1. 基础背景知识 1.1 java和jdk概念 无论是何阅读全文
posted @ 2017-10-23 16:27 骏马金龙 阅读(503) 评论(0) 编辑
摘要: 本文目录: 1.1 URL重写简介1.2 if指令1.3 rewrite指令1.4 URL重写和反向代理的区别 1.1 简介 url重写由ngx_http_rewrite_module模块提供,默认会安装,但该模块功能的实现需要pcre。URL重写技术不仅要求掌握几个指令的语法、熟悉简单的正则表达式阅读全文
posted @ 2017-10-18 10:42 骏马金龙 阅读(414) 评论(0) 编辑
摘要: 1.正则中所有的匹配模式,都应该理解为"匹配了某字符或字符串后,紧跟着再匹配"。这个概念很重要。 2.中括号首部使用脱字符时,表示的是紧跟着匹配不含给定字符的字符,而不是允许不匹配给定的字符。 它们大多数时候是等价的,但在匹配行尾时,意义不同,例如:Aa[^bcd]$ 所匹配的行允许是Aaa$或Aa阅读全文
posted @ 2017-10-18 00:13 骏马金龙 阅读(102) 评论(2) 编辑
摘要: 本文目录:1. nginx的反向代理功能 1.1 正向代理和反向代理 1.2 配置简单的反代实验 1.3 使用upstream模块实现分组反向代理 1.4 ngx_http_proxy_module模块 1.4.1 指令及其意义 1.4.2 proxy_pass 1.4.3 proxy_set_he阅读全文
posted @ 2017-10-17 23:56 骏马金龙 阅读(819) 评论(4) 编辑
摘要: 本文目录:1. nginx简介2. nginx处理请求的过程简单说明3. nginx命令4. nginx模块及http功能速览5. nginx配置文件简单说明 5.1 main和events段 5.2 http段 5.2.1 配置文件概览 5.2.2 root指令和alias指令 5.2.3 loc阅读全文
posted @ 2017-10-17 17:45 骏马金龙 阅读(695) 评论(0) 编辑
摘要: 在说明如何稳定安全地升级、降级已经在运行中的nginx之前,需要先了解nginx支持的几种信号。以下几种是主进程可以接收的信号,注意worker进程也可以接收一些信号,但和主进程的信号处理机制有些不一样,且主进程支持的信号worker进程不一定支持。具体可见man nginx。 graceful s阅读全文
posted @ 2017-10-12 21:06 骏马金龙 阅读(386) 评论(1) 编辑
摘要: 本文目录:1 编译nginx2 编译php3 配置nginx和php-fpm交互 1. 编译nginx rpm包格式的nginx地址:http://nginx.org/packages/源码包下载地址:http://nginx.org/en/download.html 。本文下载的是最新稳定版ngi阅读全文
posted @ 2017-10-12 18:17 骏马金龙 阅读(144) 评论(0) 编辑
摘要: 本文目录:1 正向代理2 反向代理 2.1 简单的反向代理配置 2.2 负载均衡:后端成员 2.3 故障转移failover 2.4 提供负载状态显示页面 2.5 proxy相关指令 2.5.1 ProxyPass指令 2.5.2 ProxyPassMatch指令 2.5.3 ProxySet指令 阅读全文
posted @ 2017-10-11 16:21 骏马金龙 阅读(447) 评论(6) 编辑
摘要: 本文目录1. 编译apache httpd2. 编译php 2.1 php编译选项说明 2.2 php编译过程 2.3 配置httpd使其转发动态请求给php-fpm3. 为php安装xcache 3.1 基本安装 3.2 设置管理员后台4 安装MySQL(MariaDB) 4.1 初始化实例 4.阅读全文
posted @ 2017-10-09 21:04 骏马金龙 阅读(374) 评论(0) 编辑