- 博客(35)
- 资源 (4)
- 收藏
- 关注
原创 java多线程(8):Callable、FutureTask的应用
简介CallableCallable是类似Runnable的类,主要区别在于Callable是可以返回结果,而Runnable不会。FutureTask简单说FutureTask的作用是可以启用、取消、并且判断线程是否完成,可以搭配Callable和Runnable使用。和Callable一起使用时,可以实现在线程完成任务后获取返回结果。应用众所周知,为什么要使用多线程,无非是为了...
2019-10-11 21:38:38
301
原创 【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
7284
原创 【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
22327
原创 zookeeper在linux环境安装
由于1月份需要处理各类年终事情,未能写一篇博客,深(cai)表(guai)惭愧,从现在开始好好写作,争取完成今年50篇的目标。 zookeeper是apache hadoop的子项目,是一个开源的分布式应用协调服务,可以用来完成统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等工作。下载可以在zookeeper官网找一个最快的镜像下载,http://zookeeper.a...
2018-02-05 22:22:03
293
原创 Oracle分页后数据出错的问题
有客户反映,某个功能的前3页数据是一样的,后来检查发现确实如此。看看sql的查询结果,确实是前三页一样的,感觉sql也没什么问题,上网查询资料发现,是因为排序字段的问题。SELECT *FROM ( SELECT bb.*, ROWNUM rownum_bb FROM (
2017-12-25 20:21:47
489
原创 java多线程(6)线程池
池的概念在java中也是常见,还有连接池、常量池等,池的作用也是类似的,对于对象、资源的重复利用,减小系统开销,提升运行效率。线程池的主要功能: 1.减少创建和销毁线程的次数,提升运行性能,尤其是在大量异步任务时 2.可以更合理地管理线程,如:线程的运行数量,防止同一时间大量任务运行,导致系统崩溃demo先举个demo,看看使用线程池的区别,线程池:AtomicLong al
2017-12-03 22:25:58
266
原创 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
473
原创 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
673
原创 java多线程(4)synchronized的作用
在多线程并发的情况下,有时就涉及到对于同一资源的读写,如果不进行一些处理,容易出现数据混乱,结果和实际不一致等问题。而在java里一个方法就是使用synchronized关键字对资源锁定。synchronized的用法synchronized有2种用法: 1.修饰代码块,以某个对象为锁,锁的范围是指定的代码块。 2.修饰方法,其实也可以等价于修饰代码块,比如修饰普通方法:synchronized
2017-11-23 22:35:39
341
原创 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
489
原创 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
471
原创 【java集合】LinkedList源码分析
LinkedList是一种基于链表实现的集合类,也是经常使用到的集合。其特性归纳如下: 特性 值 是否顺序存储 顺序 是否可重复存储 可以 是否可存储null 可以 是否线程安全 非线程安全LinkedList的属性首先列举一下ArrayList主要属性,方便大家理解和本文的说明: 属性 说明 first 链表的头部 last 链表的尾部
2017-11-12 21:39:20
310
原创 【java集合】ArrayList源码分析
ArrayList是一种基于数组实现的集合类,也是平常经常使用到的集合。其特性归纳如下: 特性 值 是否顺序存储 顺序 是否可重复存储 可以 是否可存储null 可以 是否线程安全 非线程安全ArrayList的属性首先列举一下ArrayList主要属性,方便大家理解和本文的说明: 属性 说明 elementData ArrayList是基于数组
2017-11-12 20:37:47
280
原创 【java集合】HashMap源码解析
HashMap是一种哈希表的数据结构的实现,也是java中常用的集合。HashMap的特性归纳如下: 特性 值 是否顺序存储 非顺序 是否可重复存储 key值不可以,value值可以 是否可存储null 可以 是否线程安全 非线程安全HashMap的属性首先列举一下HashMap主要属性,方便大家理解和本文的说明:
2017-11-12 15:25:47
220
原创 【spring源码分析】加载bean过程(2)
在上文【spring源码分析】加载bean过程(1),分析了单例bean的初始化过程,对于整个过程进行跟踪分析,本文我们对于一些细节进行分析。还是先回到AbstractAutowireCapableBeanFactory的doCreateBean方法protected Object doCreateBean(final String beanName, final RootBeanDefinitio
2017-11-05 21:23:40
522
原创 2017年面试感悟
工作也要好几年了,其实作为面试者的次数并不多,作为面试官一共只有近百次。最近公司一直在招人,也面试了不少人,想谈谈最近面试的一些感悟。面试背景:本人面试主要是2-3年经验的初中级java开发人员,主要是非核心业务以及作为人员储备,对于人员要求不算高。技术水平可能是要求确认不高和筛选简历的问题,大部分的人的水平确认一般,2、3年经验大部分人只是会用框架开发。1).实事求是,简历上是要实事求是:会就是会
2017-10-30 23:26:11
2096
1
原创 【spring源码分析】加载bean过程(1)
上文中说明spring的加载大致过程,本文会对spring的加载过程进行细致的分析。上次说过refresh()是spring加载的核心方法,再次列一下refresh()的源码:public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMo
2017-10-25 21:12:23
462
原创 【spring源码分析】之启动
spring应该是java中最常用的开源框架,引入spring可以降到应用开发的复杂性。平常大家更关注于spring的应用,本文就和各位一起来分析一下spring的源码。spring发展到今天,已然是个十分庞大的框架,往往不知从何处下手,本文就从spring的加载过程入手。ApplicationContext applicationContext = new ClassPathXmlApp
2017-10-16 23:19:55
2982
原创 spring boot入门demo
1.简介spring boot是针对spring框架的一种解决方案,我们都知道spring发展到现在已经是个十分庞大的框架,旗下有数十种产品。在整合spring时需要用到许多配置文件,而且经常遇到少引入包,或者版本不对应等问题,提升整合的难度和复杂度。spring boot就是一种解决方案,可以大大地简化spring的配置过程,方便使用和学习。spring boot的特性:内嵌Tomcat,Jett
2017-09-10 17:49:14
1438
原创 大话java之JDK动态代理和CGLIB动态代理
上一篇讲到了java的动态代理和JDK动态代理的使用和原理。这一篇要讲讲cglib代理,和jdk代理使用上的一个重要区别是jdk代理必须是以接口为委托类。那么在委托类不是接口的情况下,就可以使用gclib动态代理了。 gclib的实现代码如下: 1)委托类public class TestImplement { @Override public void business() {
2017-09-03 16:49:56
747
原创 大话java之JDK动态代理
上一篇讲到到java的代理模式以及java的静态代理的实现方式。静态代理的问题在于需要为每个委托类建立一个代理类,这样不仅耗费大量的精力,也不利于项目的解耦和维护。本篇就要讲讲java的动态代理,动态代理在spring等框架中十分重要,它不仅保留代理模式的优点,也更好地解耦项目,对于代码的复用和维护都是更有优势。 1.先举个动态代理的简单例子:1)委托类接口//委托类接口public inter
2017-08-29 22:57:07
1825
原创 大话java的代理模式
1.代理模式的介绍 代理模式是java中常见,也是重要的一种模式,比如spring中的aop就是代理模式的一种应用。 那么代理模式究竟有什么作用?代理模式就是“控制和管理对象的访问”。相对于简单粗暴地直接访问对象、调用对象的方法,使用代理模式可以在对象的使用时,进行预处理和事后处理等。比如权限控制、日志记录。当然你可以直接在对象里,做这些操作,但是这样耦合性太高,不利于代码的维护。 2.如何使
2017-08-29 00:59:55
627
原创 spring配置出现前缀 "tx" 未绑定、前缀 "mvc" 未绑定等情况
在进行spring整合配置时,启动项目报错,控制台提示“元素 “tx:annotation-driven” 的前缀 “tx” 未绑定或者元素 “context:component-scan” 的前缀 “context” 未绑定等情况. 是因为没有在该配置文件中定义tx开头或者其他的命名空间。 以tx为例,可在spring的配置文件中,添加以下配置(红色箭头部分) :<beans xmlns="
2017-08-17 00:34:04
6968
原创 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
501
原创 java多线程(1)Thread和Runnable
在java开发中不可避免用到多线程情况,比如web中常见的Servlet、Struts2都是运用到多线程,多线程的根本目的是为了更快的执行。其他常用到的多线程比如设计到大量I/O操作,用多线程可明显提升效率。java中最基础的并发类就是Runnable.class,Runnable是一个接口,只要实现实现Runnables,重写方法run() 就可以实现多线程操作。举个实现Runnable的例子
2017-04-17 22:38:23
546
原创 为什么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
17186
9
原创 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
553
原创 java poi 在excel中插入图片
java web中导出excel数据是常见的功能,最近遇到一个需求是在excel中插入图片。处理excel及其他微软办公系列软件常用的就是apache poi,它也是支持图片插入的。插入图片最主要的用到HSSFClientAnchorpublic HSSFClientAnchor(int dx1, int dy1, int
2016-12-25 19:49:02
11350
原创 搭建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
1887
原创 搭建https服务--获取https证书(1)
HTTP是明文的,很容易通过抓包等方式,获取到请求信息。导致信息被泄露,串改。HTTPS相对于HTTP,多了安全加密。客户端采用公匙加密,服务端采用私匙解密。采用HTTPS能够很大程度地提升服务安全性,而且升级到HTTPS并不复杂。HTTPS证书的获取方式有许多:1.可以jd的keytool工具自己制作命令如下: keytool -genkey -keyalg RS
2016-12-07 21:21:36
1507
原创 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
519
原创 nginx的使用之反向代理(1)
Nginx是一款轻量级的网页服务器、反向代理器以及电子邮件代理服务器。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。nginx是目前服务端常用的工具,本文系列总结nginx的使用及配置。一种需求,服务器有多个服务,需要根据域名跳转到不同的服务。比如wx.ixx.com跳转到微信相关的web服务,dev.ixx.com跳转到开发者相关
2016-10-18 18:05:17
2408
原创 Quartz原理分析
quartz简介quartz是常用的作业调度框架,常用于定时任务等场景。如定时获取api数据,每周生成数据报表等等。说明很多项目中使用到quartz,但一直没有研究过quartz的原理,最近看了源码,分享一下心得体会。本版为当前最新的2.2.1简单的demo QuartzTest.java``package demo.q
2015-08-12 13:04:33
726
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
643
原创 抓取淘宝天猫的商品的促销价格
通过商品的url获取促销价,天猫淘宝的促销价并不是直接生成的,而是通过js间接生成的。所以通过jsoup等工具无法抓取。首先是尝试使用htmlUnit,因为其可以,模拟浏览器运行js、css。经试验,htmlunit确实可以运行js,尝试抓取我自己的网站,可成功获取ajax、js生成的内容。但在抓取淘宝网站时出现异常,htmlunit对网站内容的格式有一定的要求,于是只能想其他办法(以后再尝试
2015-04-15 13:32:41
7085
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人