01 2017 档案
摘要:举例来说,有一个字符串"DSFFKFJD KFJLKFDLJFJ IWWJKJFJIA",我想知道,里面是否包含另一个字符串"JFJI",有的话就返回在原字符串中的下标 先看看Java编码的实现 时间复杂度最坏情况下为 O((n−m)∗m). 具体说说KMP实现的过程,Knuth-Morris-Pr
阅读全文
摘要:什么是OAuth授权? 一、什么是OAuth协议 OAuth(开放授权)是一个开放标准。 允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。 而这种授权无需将用户提供用户名和密码提供给该第三方网站。 OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同
阅读全文
摘要:本文仅介绍摘要算法、对称加密算法、非对称加密算法的使用场景和使用方法。 1.数字摘要 说明:数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是Hash函数。数字摘要就是采用单向Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字
阅读全文
摘要:Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: 具体为什么会出现上面的结论,以下为收集到的资料: 1、数据类型支持不同 与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多。最为常用的数据类型
阅读全文
摘要:附加:Java 4种线程池介绍请查看 谈谈new Thread的弊端及Java四种线程池的使用 当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直到每
阅读全文
摘要:1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗? 说说弊端: a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比ne
阅读全文
摘要:内容参考: 构建高性能WEB站点.pdf 一、吞吐率 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力。称之为吞吐率(Throughput),单位是 “req/s”。吞吐率特指Web服务器单位时间内处理的请求数。 比如Apache 的 mod_status 模块提供的如下统计 另一种描述
阅读全文
摘要:1.echo $JAVA_HOME 使用$JAVA_HOME的话能定位JDK的安装路径的前提是配置了环境变量$JAVA_HOME,否则如下所示,根本定位不到JDK的安装路径 [root@localhost ~]# java -version java version "1.7.0_65" OpenJ
阅读全文
摘要:参考:http://www.linuxidc.com/Linux/2015-10/124115.htm 一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database proxy (Amoeba for MySQL) database集群 (M-S) 在本次实战中,应用程
阅读全文
摘要:1.为什么需要索引(Why is it needed)? 当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段
阅读全文
摘要:注:文章示例由上而下,安全级别越高。 示例1. 问题是:HashMap 不是线程安全的,因此采用的是将compute方法进行同步。但是这样只能保证每次只有一个线程执行compute方法,有明显的可伸缩性问题。 示例2. 示例2问题在于:如果某个线程启动了一个开销很大的计算,而其他线程并不知道这个计算
阅读全文
摘要:前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况: 1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定
阅读全文
摘要:先谈谈闭锁和栅栏的区别: 1.关键区别在于,所有线程必须同时到达栅栏位置,才能继续执行。 2.闭锁用于等待某一个事件的发生,举例:CountDownLatch中await方法等待计数器为零时,所有事件才可继续执行。而栅栏是等待其他线程到位,所有事件才可继续下一步。例如:几个家庭决定在某个地方集合:“
阅读全文
摘要:将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问。 方法一:(最简单直接的方法) 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹
阅读全文
摘要:1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。
阅读全文
摘要:关于FastDFS集群部署请见博文 FastDFS集群部署 FastDFS是由淘宝的余庆先生所开发,是一个轻量级、高性能的开源分布式文件系统,用纯C语言开发,包括文件存储、文件同步、文件访问(上传、下载)、存取负载均衡、在线扩容、相同内容只存储一份等功能,适合有大容量存储需求的应用或系统。做分布式系
阅读全文
摘要:Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volati
阅读全文

浙公网安备 33010602011771号