自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 要找新工作了,暂停更新

最近要换新工作了,暂停更新博客。等工作后再把这段时间看的东西记录下来。坚持就是胜利!

2018-04-25 11:20:55 194

转载 ThreadPoolExecutor源码解析(转载)

转载地址转载地址线程池能够对线程进行有效的管理, 复用和数量上限的限制, 如果你需要创建多个线程来执行多个异步任务, 那么使用线程池显然要比频繁地 new Thread().start() 这种方式要好.Java 中的线程池是用 ThreadPoolExecutor 类来表示的. 我们今天就结合该类的源码来分析一下这个类内部对于线程的创建, 管理以及后台任务的调度等方面的执

2018-04-19 17:53:42 372

转载 redis

本文章根据菜鸟教程整理而来,详细内容可见:点击打开链接一、redis简介redis是一个内存性数据库,特征有:1、可以持久化到硬盘上2、数据结构支持字符串、哈希、list、set、有序set3、支持master-slave模式的备份4、支持事务,与oracle数据库的事务不一样的是,在执行事物时,即使中间有一条指令执行失败,也不会回滚之前的指令或者停止执行后

2018-03-30 09:21:37 427

原创 自定义线程池阻塞式提交任务

public class ContentIndexBuilder { /** * 自定义执行器,该执行器具有有界的阻塞式队列,同时具有自定义的阻塞式拒绝执行执行器(也可以使用 * {@link ThreadPoolExecutor.CallerRunsPolicy},这种拒绝执行策略在任务队列满后会使任务在调用线程中执行) * * 这种方式可以避免任务无限制的迅速提交,同时避

2018-03-29 14:43:02 1119 1

原创 信号量Semaphore(计数器)

计数信号量用来控制同时访问某个特定资源的操作数量或者同时执行某个指定操作的数量。可以用来实现资源池或者给容器加边界。Semaphore用来实现有边界的容器public class SemaphoreTest { public static void main(String[] args) { BoundedHashSet bhs = new BoundedHashSet(1

2018-03-28 21:13:54 718

原创 闭锁CountDownLatch

闭锁的作用相当于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭的,任何线程都不能够通过,当闭锁到达结束状态时,才会允许线程通过。闭锁可以确保一些活动在另一些活动结束后才执行。举个例子:运动会时百米赛跑,每位运动员都是一个线程,在起跑线出准备冲刺。但是信号枪不响,所有的运动员都要呆在起跑线上不动。直到信号枪打响的一瞬间,运动员才能开始赛跑。这个信号枪就是闭锁。不同的是,闭锁可以设置一个数量。比

2018-03-28 17:38:38 127

原创 ConcurrentHashMap与synchronizedMap比较分析

synchronizedMap类采用装饰器模式,通过synchronized关键字将原有的Map类(如HashMap)方法进行同步,保证了多线程情况在访问该同步类时的串行化,从而保证了线程安全。这种方式实现较为简单,但是可伸缩性较低,当多个线程同时请求访问该同步容器类的对象时,效率较低。ConcurrentHashMap类是为实现高并发而设计的类,它采用了分段锁的设计,从而使得多个线程在访问该

2018-03-28 14:10:33 641

转载 java锁

转载:转载地址转载:转载地址转载:转载地址以下为备份:Java并发编程:Lock  在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。  也许有朋友会问,既然都可以

2018-03-27 17:45:54 118

原创 AtomicInteger源码分析

在java的并发包中提供了大量的原子变量类,这些类提供的方法都保证了原子性。下面我们看一下AtomicInteger类的实现方式:首先看一下compareAndSet()方法:public final boolean compareAndSet(int expect, int update) { return unsafe.compareAndSwapInt(t

2018-03-27 10:15:09 112

原创 java-Map类源码分析

一、接口API1、Mapint size();    boolean isEmpty();    boolean containsKey(Objectkey);    boolean containsValue(Objectvalue);    V get(Object key);    V put(K key, V value);    V remov

2018-03-20 09:15:03 239

原创 java-Collection类源码

一、接口的API1、Collectionint size();boolean isEmpty();boolean contains(Objecto);Iterator iterator();Object[] toArray(); T[] toArray(T[]a);//?boolean add(Ee);boolean remove(Objecto

2018-03-20 09:06:15 334

原创 一些感想

接触博客的时间也有一年了,这段时间是一个尝试开始写博客的时间,但却不是一段真正开始有产出的时间。这一年里,要么因为种种原因停止了博客的写作,要么即使写出来的博客也都是零零碎碎,不成系统,没有深入。知识的学习不应该是碎片化的,而应该成为一个系统,知其然,知其所以然。同时知识还要深入,不能浅尝辄止。这样,才会形成自己的知识体系。一个成熟的知识体系的形成总要经历“先把书读厚,再把书读薄”的这么一

2018-03-17 13:39:10 103

转载 linux下配置jdk的环境变量

转载:linux配置java环境变量(详细)内容备份:一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个jdk1.6.0_14目录,你可以将它复制到

2018-01-31 14:30:22 167

原创 hadoop安装

一、设置系统的主机名为master.设置完毕,可以通过  hostname  命令查看,若为master表示修改成功。二、配置hosts文件,添加:当前机器的IP   master。三、关闭防火墙四、安装hadoop1、上传hadoop-2.5.2.tar.gz至/home/hadoop下2、解压:tar -zxvf  hadoop-2.5.2.tar.gz3、修改ha

2018-01-31 12:49:05 314

原创 hadoop迁移数据应用实例

项目开发中hadoop一直装在虚拟机上,最近要迁移到服务器上。记录下迁移过程。一、为虚拟机添加一块新的硬盘虚拟机的初始硬盘只有30G,容不开要导出的数据。两种方式,一是给虚拟机扩容;二是为虚拟机添加一块新的硬盘。这里采取第二种方式。1、添加虚拟硬盘至此,添加硬盘成功。2、将硬盘分区要使用一块新的硬盘,需要先将硬盘分区,然后挂在文件系统上才能使用。

2018-01-04 21:33:48 1456

转载 提高数据库查询速度的方法

处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:     select id from t wh

2017-12-25 13:03:42 14209

原创 tomcat启动不了?

平常启动tomcat时会出现闪退的现象,定位不到错误,不知道怎么解决,here教给大家一个小技巧。一、定位错误双击startup.bat时,若发生错误,cmd窗口会闪退。如下可以避免闪退,轻松定位错误:1、修改startup.bat文件将

2017-11-30 22:32:27 298

原创 servlet基础

一、servlet结构体系servlet是web项目的服务器端接受客户端请求以及给予响应的载体(入口)。同时,jsp也是由servlet演化而来,是servlet与HTML的结合体。servlet需要重写doGet方法和doPost方法。这两个方法能够分别响应客户端的get请求和post请求。以get请求为例,如下:public void doGet(HttpServletRe

2017-11-22 15:11:18 389 1

原创 java程序发送邮件

一、import java.io.File;import java.security.GeneralSecurityException;import java.util.Calendar;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSo

2017-11-22 15:05:29 175

原创 Spring MVC初探

一、Spring MVCSpring MVC包含很多部分,如图:其中M指的是Model层,V指的是View层,C指的是Controller层。但是C并不仅仅对应着我们常见的Controller.java文件。SpringMVC中的C应该这样理解:DispatcherServlet是spring的servlet,也就是负责接收前端请求的地方,它里边有个内部类handlerAd

2017-11-06 20:28:43 168

原创 maven小结

一、maven是什么?maven是一个开源的项目管理工具。二、maven管的是什么?maven管的是项目对jar文件的依赖关系。我们在开发java项目时,会用到很多的第三方类库,也就是一些jar文件,这叫做项目依赖于这些jar文件。同时,项目依赖的这些jar包也会依赖另一些jar包。这就要求我们在开发项目时,不仅要引入直接依赖的jar,还要引入间接依赖的ja

2017-11-02 20:45:14 146

原创 java克隆之浅层克隆与深层克隆

一、浅层克隆public class Shallow implements Cloneable{ int age = 0; // 存在类属性 Inner in = new Inner(); public static void main(String[] args) { Shallow s = new Shallow();

2017-10-31 17:15:41 273

原创 maven深入

一、maven的常用命令mvn -v 查看maven版本mvn compile 编译mvn test 测试mvn package 打包 mvn clean 删除targetmvn install 安装jar到本地仓库中

2017-10-29 22:19:59 276

原创 maven的Hello World

一、maven概述maven是一款开源的项目管理工具。二、maven安装1、下载并解压http://maven.apache.org/download.cgi2、配置环境变量path中新增%maven安装目录%/bin3、cmd中输入mvn -v,若出现如下图信息,表示安装成功。三、maven的目录结构四、

2017-10-29 21:11:25 319 1

原创 nginx负载均衡

一、原理:nginx可以实现负载均衡。客户端请求nginx服务器,nginx服务器请求后端web服务器。后端web服务器可以是多台服务器,每台服务器是相互独立的,都部署了相应的web服务。nginx请求服务器组时,会根据某种规则(如ip轮询)请求某台服务器,从而实现服务器组的负载均衡。二、nginx.conf配置notes:1、upstream属性:upstream 后

2017-10-29 15:11:22 224

原创 初探nginx(搭建)

一、准备安装包百度网盘链接:http://pan.baidu.com/s/1kV7TXSb二、安装c++编译环境yum install gcc-c++注:已安装可跳过三、安装nginx1、安装openssl[root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz[root@localhost src]#

2017-10-27 20:02:55 268

原创 tomcat部署服务的几种方式

一、直接将要部署的项目复制到tomcat下webapps目录下。以MyEclipse为例,要部署的项目可以到myeclipseworkspace\.metadata\.me_tcat7\webapps路径下找。将整个simpleTestWeb文件夹复制即可。二、修改tomcat中的配置文件,不需要拷贝整个项目,而是让tomcat直接访问原工作空间中的项目即可。以tomcat7为例,

2017-10-27 17:14:17 1025

原创 Linux关闭防火墙

一、CentOS 71、查看防火墙状态:firewall-cmd --state2、关闭防火墙:systemctl stop firewalld.service3、开启防火墙: systemctl start firewalld.service

2017-10-26 10:26:17 340

转载 Java类实例化时的执行顺序

public class StaticTest{    public static int k = 0;    public static StaticTest t1 = new StaticTest("t1");    public static StaticTest t2 = new StaticTest("t2");    // public StaticTest t3

2017-07-07 14:18:52 246

原创 java中对象的序列化与反序列化

1、什么是序列化?

2017-02-09 15:30:11 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除