摘要: 集合类说明及区别 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection 接口 Collection 是最基本的集合接口,一个 C 阅读全文
posted @ 2016-03-19 12:57 _1900 阅读(350) 评论(0) 推荐(0) 编辑
摘要: (1)除了释放不再被引用的对象,垃圾收集器还要处理 堆碎块 。请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的空闲空间是足够的,但是堆中没有没有连续的空间放得下新对象。可能会导致虚拟机产生不必要的”内存不足“错误。 (2)使用垃圾收集堆,有一个潜在的缺陷就是加大程序的负担, 可能影响程序的 阅读全文
posted @ 2016-03-17 09:24 _1900 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 列出正在运行的虚拟机进程,用法如下: 监视虚拟机运行状态信息,使用方式: 比如: 每隔1秒输出一次JVM运行信息: 生成堆存储快照,使用方式: 生成虚拟机当前时刻的线程快照,帮助定位线程出现长时间停顿的原因,用法: Monitor Monitor是 Java中用以实现线程之间的互斥与协作的主要手段, 阅读全文
posted @ 2016-03-17 09:23 _1900 阅读(408) 评论(0) 推荐(0) 编辑
摘要: Go 语言数据类型 Go 语言按类别有以下几种数据类型: 序号类型和描述 1 布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型整型 int 和浮点型 float,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算 阅读全文
posted @ 2016-03-15 09:57 _1900 阅读(924) 评论(0) 推荐(0) 编辑
摘要: Go语言是谷歌自家的编译型语言,旨在不损失性能的前提下降低代码复杂率。其优势是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。 一、安装Golang的SDK 在官网http://golang.org/ 直接下载安装包安装即可。下载pkg格式的最新安装包,直接双击运行,一路按 阅读全文
posted @ 2016-03-15 09:18 _1900 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获 阅读全文
posted @ 2016-03-11 13:54 _1900 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:type代表一个value对象具体是何种数据类型,encodi 阅读全文
posted @ 2016-03-11 09:33 _1900 阅读(4488) 评论(0) 推荐(0) 编辑
摘要: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们 阅读全文
posted @ 2016-03-10 12:25 _1900 阅读(425) 评论(0) 推荐(0) 编辑
摘要: Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newS 阅读全文
posted @ 2016-03-10 11:38 _1900 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 前言:Java8之后新增挺多新东西,在网上找了些相关资料,关于HashMap在自己被血虐之后痛定思痛决定整理一下相关知识方便自己看。图和有些内容参考的这个文章:http://www.importnew.com/16599.html HashMap的存储结构如图:一个桶(bucket)上的节点多于8个 阅读全文
posted @ 2016-03-10 11:07 _1900 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。 阅读全文
posted @ 2016-03-10 11:06 _1900 阅读(824) 评论(0) 推荐(0) 编辑
摘要: 在多线程程序中,同步修饰符用来控制对临界区代码的访问。其中一种方式是用synchronized关键字来保证代码的线程安全性。在Java中,synchronized修饰的代码块或方法不会被多个线程并发访问。它强制要求线程在进入一个方法之前获得一个锁,在离开方法时释放该锁。它保证了在同一时刻只有一个线程 阅读全文
posted @ 2016-03-10 10:32 _1900 阅读(389) 评论(0) 推荐(0) 编辑
摘要: Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求。尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求。 Servlet必须部署在Java servlet容器才能使用。虽然很多开发者都使用Java Server Pag 阅读全文
posted @ 2016-03-10 10:29 _1900 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 熟悉java多线程的朋友一定十分了解java的线程池,jdk中的核心实现类为java.util.concurrent.ThreadPoolExecutor。大家可能了解到它的原理,甚至看过它的源码;但是就像我一样,大家可能对它的作用存在误解。现在问题来了,jdk为什么要提供java线程池?使用jav 阅读全文
posted @ 2016-03-10 10:26 _1900 阅读(3421) 评论(0) 推荐(1) 编辑
摘要: 前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时 阅读全文
posted @ 2016-03-10 10:24 _1900 阅读(797) 评论(1) 推荐(0) 编辑
摘要: 1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 find . -name "*.xml" 递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内 阅读全文
posted @ 2016-03-10 10:22 _1900 阅读(3061) 评论(0) 推荐(0) 编辑
摘要: 前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。 阅读全文
posted @ 2016-03-10 10:17 _1900 阅读(780) 评论(0) 推荐(1) 编辑
摘要: Redis - 数据类型 Redis支持5种类型的数据类型,它描述如下的: 字符串 Redis字符串是字节序列。Redis字符串是二进制安全的,这意味着他们有一个已知的长度没有任何特殊字符终止,所以你可以存储任何东西,512兆为上限。 例子 上面是Redis的set和get命令的例子,Redis名称 阅读全文
posted @ 2016-03-09 10:35 _1900 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1 Redis优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性 阅读全文
posted @ 2016-03-08 16:42 _1900 阅读(334) 评论(0) 推荐(0) 编辑
摘要: #运行用户 #user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志文件 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; # PID文件 #pid l... 阅读全文
posted @ 2016-02-25 17:35 _1900 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线 阅读全文
posted @ 2016-01-20 17:27 _1900 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 术语定义 线程不安全的HashMap 因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈 阅读全文
posted @ 2016-01-20 17:19 _1900 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 人生不如意之事十之八九,合并分支往往也不是一帆风顺的。 准备新的feature1分支,继续我们的新分支开发: 修改readme.txt最后一行,改为: 在feature1分支上提交: 切换到master分支: Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。 在ma 阅读全文
posted @ 2016-01-14 17:32 _1900 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。 一开始的时候,m 阅读全文
posted @ 2016-01-14 17:31 _1900 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 常用 Git 命令清单 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一、新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新 阅读全文
posted @ 2016-01-13 17:30 _1900 阅读(356) 评论(0) 推荐(0) 编辑
摘要: http://www.salttiger.com/archives/ (英文书籍) http://www.656463.com/ (编程开发 大数据) http://blog.codinglabs.org/ 数据结构 http://tech.meituan.com/ 美团技术分享 阅读全文
posted @ 2016-01-13 10:50 _1900 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 网页性能管理详解 你遇到过性能很差的网页吗? 这种网页响应非常缓慢,占用大量的CPU和内存,浏览起来常常有卡顿,页面的动画效果也不流畅。 你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站。作为一个开发者,肯定不愿意看到这种情况,那么怎样才能提高性能呢? 本文将详细介绍性能问题的出现 阅读全文
posted @ 2015-12-31 11:43 _1900 阅读(270) 评论(0) 推荐(0) 编辑
摘要: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些 阅读全文
posted @ 2015-12-09 15:31 _1900 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 1 Dubbo 配置 dubbo配置xml配置 属性配置 注解配置 api配置 注解配置 (+) (#) 服务提供方注解: import com.alibaba.dubbo.config.annotation.Service; @Service(version="1.0.0") public cla 阅读全文
posted @ 2015-11-13 10:14 _1900 阅读(810) 评论(1) 推荐(0) 编辑
摘要: 协议介绍 zookeeper协议分为两种模式 崩溃恢复模式和消息广播模式 崩溃恢复协议是在集群中所选举的leader 宕机或者关闭 等现象出现 follower重新进行选举出新的leader 同时集群中已经有过半的flollower与leader服务器完成了状态同步之后ZAB协议就会退出恢复模式 , 阅读全文
posted @ 2015-11-01 15:33 _1900 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文 件)中的属性值放在另一个单独的标准java Pro 阅读全文
posted @ 2015-10-14 15:53 _1900 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 最近在工作中,为了完善公司集群服务的架构,提高可用性,降低运维成本,因此开始学习ZooKeeper。 至于什么是ZooKeeper?它能做什么?如何安装ZooKeeper?我就不一一介绍了,类似这些资料网上到处都是。我主要是把在开发过程中,以及个人对ZooKeeper的一些了解记录下来,大家如果遇到 阅读全文
posted @ 2015-10-12 16:02 _1900 阅读(2602) 评论(0) 推荐(0) 编辑
摘要: Spring初始化完成后直接执行一个方法,初始化数据(解决方法并执行两次) 在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听、Servlet加载初始化等切入点为数据库准备数据,这些初始化数据 是系统开始运行前必须的数据,例如权限组、系统选项、默认管理员等等。但是项目若不是WEB工程,或者 阅读全文
posted @ 2015-10-10 18:11 _1900 阅读(1655) 评论(0) 推荐(0) 编辑
摘要: 1,zookeeper伪集群部署 部署在192.168.0.210服务器上 下载 去官网将3.4.6版本的zookeeper下载下来到/app目录下解压 首先我们使用wget命令来下载zookeeper压缩包 tar xzvf zookeeper-3.4.6.tar.gz 生成 zookeeper- 阅读全文
posted @ 2015-10-09 17:39 _1900 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 1. 环境准备 安装wget: yum install wget -y安装git: yum install git -y安装gcc: yum install gcc -y安装 2. 安装nginx nginx使用源码方式安装,同时安装nginx-rtmp-module, http_flv_modul 阅读全文
posted @ 2015-10-08 14:10 _1900 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 1 安装nginx 要增加nginx-rtmp-module的支持 下载好nginx-rtmp-module后解压,然后nginx安装时增加这个模块(--add-module) ./configure --prefix=/usr/local/nginx --add-module=(nginx-rtm 阅读全文
posted @ 2015-09-16 15:41 _1900 阅读(531) 评论(0) 推荐(0) 编辑
摘要: MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站 阅读全文
posted @ 2015-09-15 23:50 _1900 阅读(1281) 评论(1) 推荐(0) 编辑
摘要: 基本选项: -formats 输出所有可用格式 -f fmt 指定格式(音频或视频格式) -i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头 -y 覆盖已有文件 -t duration 记录时长为t -fs limit_size 设置文件大小上限 -ss 阅读全文
posted @ 2015-09-10 15:57 _1900 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 1.到nginx官网下载源码包。最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl-devsudo apt-get install libpcre3 libpcre3-dev 3.解压 阅读全文
posted @ 2015-09-09 17:50 _1900 阅读(2472) 评论(0) 推荐(0) 编辑
摘要: location /gm { root html; proxy_pass http://localhost:8080/gm; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header 阅读全文
posted @ 2015-08-10 10:37 _1900 阅读(353) 评论(0) 推荐(0) 编辑