自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (4)
  • 收藏
  • 关注

原创 java多线程(8):Callable、FutureTask的应用

简介CallableCallable是类似Runnable的类,主要区别在于Callable是可以返回结果,而Runnable不会。FutureTask简单说FutureTask的作用是可以启用、取消、并且判断线程是否完成,可以搭配Callable和Runnable使用。和Callable一起使用时,可以实现在线程完成任务后获取返回结果。应用众所周知,为什么要使用多线程,无非是为了...

2019-10-11 21:38:38 243 1

原创 【linux】如何开放防火墙端口

linux默认大部分端口的是关闭的。而我们在开发、部署环境时,需要用到大量的服务,如mysql、tomcat、redis、zk等,需要开放指定的端口号。以mysql端口3306为例首先编辑服务器的端口开放配置vi /etc/sysconfig/iptables在编辑器加入以下代码,其中3306可以根据需要开放的端口进行替换-A INPUT -m state --state NE...

2018-05-01 18:01:52 7054

原创 【mysql】2003-Can't connect to MySQL server (10060)

使用navicat或者其他数据库管理工具连接mysql时出现2003-Can’t connect to MySQL server (10060)错误 可能造成出现的原因: 1.网络不通畅 2.mysql 服务未启动 3.防火墙未开放端口 解决方法: 1.首先确定网络和服务问题,用ssh工具登陆数据库服务器,mysql -u -p,是否可以登陆。 2.确保服务和网络正常后,检查端...

2018-05-01 17:51:17 21667

原创 zookeeper在linux环境安装

由于1月份需要处理各类年终事情,未能写一篇博客,深(cai)表(guai)惭愧,从现在开始好好写作,争取完成今年50篇的目标。 zookeeper是apache hadoop的子项目,是一个开源的分布式应用协调服务,可以用来完成统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等工作。下载可以在zookeeper官网找一个最快的镜像下载,http://zookeeper.a...

2018-02-05 22:22:03 256

原创 Oracle分页后数据出错的问题

有客户反映,某个功能的前3页数据是一样的,后来检查发现确实如此。看看sql的查询结果,确实是前三页一样的,感觉sql也没什么问题,上网查询资料发现,是因为排序字段的问题。SELECT *FROM ( SELECT bb.*, ROWNUM rownum_bb FROM (

2017-12-25 20:21:47 450

原创 java多线程(6)线程池

池的概念在java中也是常见,还有连接池、常量池等,池的作用也是类似的,对于对象、资源的重复利用,减小系统开销,提升运行效率。线程池的主要功能: 1.减少创建和销毁线程的次数,提升运行性能,尤其是在大量异步任务时 2.可以更合理地管理线程,如:线程的运行数量,防止同一时间大量任务运行,导致系统崩溃demo先举个demo,看看使用线程池的区别,线程池:AtomicLong al

2017-12-03 22:25:58 228

原创 java多线程(7)wait()、notify()和notityALL()

waitwait方法是Object中的方法,这个方法的功能特性: 1).执行wait方法的前提是当前线程已经获取到对象的锁,也就是wait方法必须在synchronized修饰的代码块或者方法中使用。 2).执行wait之后,会失去锁的所有权 3).wait方法执行后会一直等待,直到被调用notify()、notifyAll()或者所在线程被中断。 4).被调用notify()或者no...

2017-11-30 23:11:12 425

原创 java多线程(5)死锁

上文讲到synchronized关键字在多线程中的使用,既然用到了锁,就会有出现死锁的情况。一个线程获得锁,如果其他线程也想获得同样的锁就会阻塞住,等待锁的释放。如果线程A已经获得锁1,还要获得锁2,同时线程B已经获得锁2,还要获得锁1,那么线程A和B就会一直阻塞住。例子依照惯例先举个例子:public class Test { public static void main(String[

2017-11-26 22:47:51 596

原创 java多线程(4)synchronized的作用

在多线程并发的情况下,有时就涉及到对于同一资源的读写,如果不进行一些处理,容易出现数据混乱,结果和实际不一致等问题。而在java里一个方法就是使用synchronized关键字对资源锁定。synchronized的用法synchronized有2种用法: 1.修饰代码块,以某个对象为锁,锁的范围是指定的代码块。 2.修饰方法,其实也可以等价于修饰代码块,比如修饰普通方法:synchronized

2017-11-23 22:35:39 300

原创 java多线程(3)Thread的静态方法

上文介绍了Tread的实例方法,本文再介绍下 的静态方法。currentThread()currentThread方法返回当前线程的Objectpublic class Thread1 extends Thread{ static{ System.out.println(Thread.currentThread().getName()+" --> static")

2017-11-19 21:34:00 447

原创 java多线程(2)Thread的实例方法

之前有简单介绍过java多线程的使用,已经Thread类和Runnable类,为了更好地理解多线程,本文就Thread进行详细的分析。startstart方法是开启线程的方法,使用后java会创建一个新的线程执行run里的方法。这是一个小demo: for(int i=0;i3;i++){ Thread t= new Thread(new Ru

2017-11-19 20:31:49 408

原创 【java集合】LinkedList源码分析

LinkedList是一种基于链表实现的集合类,也是经常使用到的集合。其特性归纳如下: 特性 值 是否顺序存储 顺序 是否可重复存储 可以 是否可存储null 可以 是否线程安全 非线程安全LinkedList的属性首先列举一下ArrayList主要属性,方便大家理解和本文的说明: 属性 说明 first 链表的头部 last 链表的尾部

2017-11-12 21:39:20 273

原创 【java集合】ArrayList源码分析

ArrayList是一种基于数组实现的集合类,也是平常经常使用到的集合。其特性归纳如下: 特性 值 是否顺序存储 顺序 是否可重复存储 可以 是否可存储null 可以 是否线程安全 非线程安全ArrayList的属性首先列举一下ArrayList主要属性,方便大家理解和本文的说明: 属性 说明 elementData ArrayList是基于数组

2017-11-12 20:37:47 247

原创 【java集合】HashMap源码解析

HashMap是一种哈希表的数据结构的实现,也是java中常用的集合。HashMap的特性归纳如下: 特性 值 是否顺序存储 非顺序 是否可重复存储 key值不可以,value值可以 是否可存储null 可以 是否线程安全 非线程安全HashMap的属性首先列举一下HashMap主要属性,方便大家理解和本文的说明:

2017-11-12 15:25:47 182

原创 【spring源码分析】加载bean过程(2)

在上文【spring源码分析】加载bean过程(1),分析了单例bean的初始化过程,对于整个过程进行跟踪分析,本文我们对于一些细节进行分析。还是先回到AbstractAutowireCapableBeanFactory的doCreateBean方法protected Object doCreateBean(final String beanName, final RootBeanDefinitio

2017-11-05 21:23:40 489

原创 2017年面试感悟

工作也要好几年了,其实作为面试者的次数并不多,作为面试官一共只有近百次。最近公司一直在招人,也面试了不少人,想谈谈最近面试的一些感悟。面试背景:本人面试主要是2-3年经验的初中级java开发人员,主要是非核心业务以及作为人员储备,对于人员要求不算高。技术水平可能是要求确认不高和筛选简历的问题,大部分的人的水平确认一般,2、3年经验大部分人只是会用框架开发。1).实事求是,简历上是要实事求是:会就是会

2017-10-30 23:26:11 2004 1

原创 【spring源码分析】加载bean过程(1)

上文中说明spring的加载大致过程,本文会对spring的加载过程进行细致的分析。上次说过refresh()是spring加载的核心方法,再次列一下refresh()的源码:public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMo

2017-10-25 21:12:23 404

原创 【spring源码分析】之启动

spring应该是java中最常用的开源框架,引入spring可以降到应用开发的复杂性。平常大家更关注于spring的应用,本文就和各位一起来分析一下spring的源码。spring发展到今天,已然是个十分庞大的框架,往往不知从何处下手,本文就从spring的加载过程入手。ApplicationContext applicationContext = new ClassPathXmlApp

2017-10-16 23:19:55 2938

原创 spring boot入门demo

1.简介spring boot是针对spring框架的一种解决方案,我们都知道spring发展到现在已经是个十分庞大的框架,旗下有数十种产品。在整合spring时需要用到许多配置文件,而且经常遇到少引入包,或者版本不对应等问题,提升整合的难度和复杂度。spring boot就是一种解决方案,可以大大地简化spring的配置过程,方便使用和学习。spring boot的特性:内嵌Tomcat,Jett

2017-09-10 17:49:14 1408

原创 大话java之JDK动态代理和CGLIB动态代理

上一篇讲到了java的动态代理和JDK动态代理的使用和原理。这一篇要讲讲cglib代理,和jdk代理使用上的一个重要区别是jdk代理必须是以接口为委托类。那么在委托类不是接口的情况下,就可以使用gclib动态代理了。 gclib的实现代码如下: 1)委托类public class TestImplement { @Override public void business() {

2017-09-03 16:49:56 708

原创 大话java之JDK动态代理

上一篇讲到到java的代理模式以及java的静态代理的实现方式。静态代理的问题在于需要为每个委托类建立一个代理类,这样不仅耗费大量的精力,也不利于项目的解耦和维护。本篇就要讲讲java的动态代理,动态代理在spring等框架中十分重要,它不仅保留代理模式的优点,也更好地解耦项目,对于代码的复用和维护都是更有优势。 1.先举个动态代理的简单例子:1)委托类接口//委托类接口public inter

2017-08-29 22:57:07 1788

原创 大话java的代理模式

1.代理模式的介绍 代理模式是java中常见,也是重要的一种模式,比如spring中的aop就是代理模式的一种应用。 那么代理模式究竟有什么作用?代理模式就是“控制和管理对象的访问”。相对于简单粗暴地直接访问对象、调用对象的方法,使用代理模式可以在对象的使用时,进行预处理和事后处理等。比如权限控制、日志记录。当然你可以直接在对象里,做这些操作,但是这样耦合性太高,不利于代码的维护。 2.如何使

2017-08-29 00:59:55 585

原创 spring配置出现前缀 "tx" 未绑定、前缀 "mvc" 未绑定等情况

在进行spring整合配置时,启动项目报错,控制台提示“元素 “tx:annotation-driven” 的前缀 “tx” 未绑定或者元素 “context:component-scan” 的前缀 “context” 未绑定等情况. 是因为没有在该配置文件中定义tx开头或者其他的命名空间。 以tx为例,可在spring的配置文件中,添加以下配置(红色箭头部分) :<beans xmlns="

2017-08-17 00:34:04 6823

原创 java基础之谈谈==和equals

判断对象是否相等是我们在项目中经常用到的,也是入门java必学的知识。今天就来谈谈==和equals的作用和区别。1.==如何判断相等先看一下一段代码: int i1 = 1; int i2 = 1; String s1 = new String("abc"); String s2 = new String("abc");

2017-08-14 23:31:46 473

原创 java多线程(1)Thread和Runnable

在java开发中不可避免用到多线程情况,比如web中常见的Servlet、Struts2都是运用到多线程,多线程的根本目的是为了更快的执行。其他常用到的多线程比如设计到大量I/O操作,用多线程可明显提升效率。java中最基础的并发类就是Runnable.class,Runnable是一个接口,只要实现实现Runnables,重写方法run() 就可以实现多线程操作。举个实现Runnable的例子

2017-04-17 22:38:23 504

原创 为什么Hashtable ConcurrentHashmap不支持key或者value为null

在很多java资料中,都有提到 ConcurrentHashmap HashMap和Hashtable都是key-value存储结构,但他们有一个不同点是 ConcurrentHashmap、Hashtable不支持key或者value为null,而HashMap是支持的。为什么会有这个区别?在设计上的目的是什么?在网上找到了这样的解答:The main reason that nulls ar

2017-02-10 21:57:51 17025 12

原创 oracle常用命令整理

oracle常用命令整理 建表 CREATE TABLE table_name( EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14), LOC VARCHAR2(13)) ; CREATE TABLE region( ID number(2) NOT NULL PRIMARY KEY, postcode

2016-12-26 23:08:15 525

原创 java poi 在excel中插入图片

java web中导出excel数据是常见的功能,最近遇到一个需求是在excel中插入图片。处理excel及其他微软办公系列软件常用的就是apache poi,它也是支持图片插入的。插入图片最主要的用到HSSFClientAnchorpublic HSSFClientAnchor(int dx1, int dy1, int

2016-12-25 19:49:02 11224 2

原创 搭建https服务--部署服务(2)

、 上一节介绍了HTPPS协议,以及获取HTPP证书的方法。这一节将介绍如何部署HTPPS服务。这边以常用的linux+nginx为例。1.首先将在startssl获取的证书,上传至服务器。2.修改nginx的配置,并且重启nginx,重启时需要输入证书密码。nginx配置如下: server {#http默认的是80端口,https默认的443端口。注意防火墙也要开启443

2016-12-07 21:57:42 1852

原创 搭建https服务--获取https证书(1)

HTTP是明文的,很容易通过抓包等方式,获取到请求信息。导致信息被泄露,串改。HTTPS相对于HTTP,多了安全加密。客户端采用公匙加密,服务端采用私匙解密。采用HTTPS能够很大程度地提升服务安全性,而且升级到HTTPS并不复杂。HTTPS证书的获取方式有许多:1.可以jd的keytool工具自己制作命令如下:     keytool -genkey -keyalg RS

2016-12-07 21:21:36 1456

原创 nginx的使用-负载均衡(2)

nginx的一个重要功能就是负载均衡,当单个服务不足以支撑时就可以使用负载均衡,多个服务共同支持请求。以下是负载均衡的简单配置,将www.xxoo.com分流至139.224.29.240:8280和127.0.0.1:8080。#user nobody;worker_processes 1;events { worker_connections 1024;}ht

2016-10-26 21:30:34 487

原创 nginx的使用之反向代理(1)

Nginx是一款轻量级的网页服务器、反向代理器以及电子邮件代理服务器。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。nginx是目前服务端常用的工具,本文系列总结nginx的使用及配置。一种需求,服务器有多个服务,需要根据域名跳转到不同的服务。比如wx.ixx.com跳转到微信相关的web服务,dev.ixx.com跳转到开发者相关

2016-10-18 18:05:17 2381

原创 Quartz原理分析

quartz简介quartz是常用的作业调度框架,常用于定时任务等场景。如定时获取api数据,每周生成数据报表等等。说明很多项目中使用到quartz,但一直没有研究过quartz的原理,最近看了源码,分享一下心得体会。本版为当前最新的2.2.1简单的demo QuartzTest.java``package demo.q

2015-08-12 13:04:33 665 1

原创 java生成xml

java操作xml有许多的框架,jdom,dom4j等等,生成xml也方便。最近项目中有许多地方都需要生成xml,于是想进行二次封装,以便更简单地生成xml。因为项目中原来使用的是dom4j,就对dom4j进行二次封装。 import java.io.IOException;import java.io.StringReader;import java.io.Unsup

2015-05-05 08:59:07 609

原创 抓取淘宝天猫的商品的促销价格

通过商品的url获取促销价,天猫淘宝的促销价并不是直接生成的,而是通过js间接生成的。所以通过jsoup等工具无法抓取。首先是尝试使用htmlUnit,因为其可以,模拟浏览器运行js、css。经试验,htmlunit确实可以运行js,尝试抓取我自己的网站,可成功获取ajax、js生成的内容。但在抓取淘宝网站时出现异常,htmlunit对网站内容的格式有一定的要求,于是只能想其他办法(以后再尝试

2015-04-15 13:32:41 6899 4

sun.misc.Unsafe源码

sun.misc.Unsafe源码文件,需要学习的带走。希望能够帮助到大家。

2017-12-04

java 动态代理

java 动态代理deno

2017-08-29

j2ee实现的仿Goole、百度搜索下拉提示

j2ee实现的仿Goole、百度搜索下拉提示,支持中文。mysql数据库,有sql文件。编码为utf-8

2013-01-15

struts2上传下载文件

简单的struts2上传下载文件功能,希望可以帮助到大家

2012-11-01

空空如也

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

TA关注的人

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