自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 《并发编程》--22.死锁产生的条件和动静态避免死锁

产生死锁的必要条件: 1. 互斥条件:就是一个资源同时只能有一个进程占有,不能有两个或是两个以上的占有。 2. 不可抢占条件:在一个进程所获取的资源在未使用完毕之前,资源申请者不能强行的从资源占有者手中抢夺资源。 3. 占有申请条件:进程已经占有了一个资源,但是有申请新的资源;但是新申请的资源...

2017-09-27 15:29:04

阅读数 320

评论数 0

原创 《并发编程》--20.无锁的并发策略(比较交换 CAS)

与锁相比,使用比较交换(CAS)会使程序看起来更加复杂一些,但由于其非阻塞性,他对死锁天生免疫,并且,线程间的相互影响也远远比基于锁的方式要小。更为重要的是,使用无锁的方式完全没有锁竞争带来的系统开销,也没有线程间频繁调度带来的开销,因此,他要比基于锁的方式拥有更优越的性能。 CAS算法的过程是这...

2017-09-27 10:56:51

阅读数 507

评论数 0

原创 struct2批量上传文件至指定目录

jsp:定义上传文件的name,可配置多个用于多文件上传 js文件3: 仅限上传JavaScript文件 /td> 服务端, 1.申明变量及set get方法 // 上传多个文件的集合文本 private List upload; // /多个上传...

2018-01-03 13:56:16

阅读数 174

评论数 0

原创 遍历map的方式汇总

1,平时开发中对map的使用很多,然后发现了很多map可能存在的各种问题;如HashMap 需要放置 1024 个元素,由于没有设置容量初始大小,随着元素不断增加,容量 7 次被迫扩大,resize 需要重建 hash 表,严重影响性能,因此最好在初始化时设置map的大小; 2,用 entryS...

2017-12-26 17:43:59

阅读数 129

评论数 0

原创 Linux系统下tomcat加入系统服务以及开机自动启动

1.首先将tomcat/bin 下的catalina.sh复制到目录/etc/init.d中,并修改名称为tomcat [root@iZ2318 ~]# sudo cp /usr/local/tomcat7.0.67/bin/catalina.sh /etc/init.d/tomcat2.修改t...

2017-12-26 17:31:46

阅读数 3117

评论数 0

原创 Java Word转PDF

所需jar包 avalon-framework-4.1.5  commons-io-2.4  docx4j-2.7.1 (核心jar包) log4j-1.2.15  serializer-2.7.1  xmlgraphics-commons-1.3  batik-util-1.6-1...

2017-12-26 17:08:38

阅读数 1500

评论数 0

原创 面试小故事

1、主语言本身以及它的高级特性 对于Java来说,它的语言本身以及它的高级特性,都有哪些比较容易在面试中问到呢? 一般情况下,主要有以下知识点很容易被问到。(PS:以下所列举的,都是一些Java相对而言比较高级一点的知识点,因为这里谈的是社招 ,而不是校招) 1)Java的数据结构...

2017-12-22 17:55:50

阅读数 452

评论数 0

原创 Java-ftp支持中文目录、文件名的 上传、删除文件

一、问题 描述:Java中FTPClient上传中文目录、中文文件名乱码问题解决方法 原因:FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码。 解决方案:name=new String(name.getBytes("GBK"),"...

2017-12-22 17:51:16

阅读数 695

评论数 0

原创 Java根据UA判断手机,平板,PC登录

/** * 校验是否手机端 * @param request * @return */ public boolean isFromMobile(HttpServletRequest request) { //1. 获得请求UA String userAgent = req...

2017-12-18 14:20:27

阅读数 1884

评论数 1

原创 无敌全的application.xml配置详解

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop...

2017-12-18 11:54:02

阅读数 2715

评论数 1

原创 无敌全web.xml配置文件元素详解

一、web.xml配置文件常用元素及其意义预览 <!--servlet API的版本2.3增加了对事件监听程序的...

2017-12-18 11:46:34

阅读数 172

评论数 0

原创 5种Spring配置事务的方式

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。     DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比...

2017-12-18 11:06:43

阅读数 1886

评论数 0

原创 js定位当前城市,获得当前城市的天气

/** * 定位当前城市 */ function locationInit(){ $.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(_res...

2017-12-01 11:14:51

阅读数 10175

评论数 3

原创 js setCookie和getCookie

function setCookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*30); document.cookie = name + ...

2017-12-01 11:12:09

阅读数 10514

评论数 0

原创 js动态添加HTML标签

function addElement_imageText(img,title,source,view_count,publish_time,url,article_type,newsid,category_chn){ /*var reconmendDiv = document.getEle...

2017-12-01 11:09:40

阅读数 7417

评论数 0

原创 js根据时间戳换算过去间隔

function formatMsgTime (dateTimeStamp) { var minute = 60; var hour = minute * 60; var day = hour * 24; var halfamonth = day * 15; var mont...

2017-12-01 11:08:10

阅读数 556

评论数 0

原创 js定时器倒计时

function CountDown() { if (maxtime >= 1) { minutes = Math.floor(maxtime / 60); seconds = Math.floor(ma...

2017-12-01 11:05:26

阅读数 810

评论数 0

原创 js页面滑到底部触发事件

function getScrollTop(){   var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;   if(document.body){     bodyScrollTop = document.body.scr...

2017-12-01 11:02:47

阅读数 1479

评论数 0

原创 js拓展词搜索智能提示

类似如下的功能: js关键代码 $(function(){ //当键盘键被松开时发送Ajax获取数据 $('#spinput').keyup(function(){ var keywords = $(this).val(); $.ajax({ //...

2017-12-01 10:16:03

阅读数 213

评论数 0

原创 js动态添加子节点

function addElement_pic(i,imgsrc,website,landingPage){ //获得ul var ul = document.getElementById("hot_web_pic"); //创建li var li = ...

2017-10-31 17:57:23

阅读数 2711

评论数 0

原创 js实现全国三级城市联动select选择

/* * 全国三级城市联动 js版 */ function Dsy(){ this.Items = {}; } Dsy.prototype.add = function(id,iArray){ this.Items[id] = iArray; } Dsy.prototype.Exists = ...

2017-10-31 17:45:52

阅读数 2342

评论数 0

原创 js获取当前城市,并根据当前城市获得当地天气

/**  * 定位当前城市  */  function locationInit(){   $.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(_result)...

2017-10-31 17:38:04

阅读数 1362

评论数 0

原创 《并发编程》--21.无锁的线程安全整数 AtomicInteger

JDK并发包下有一个atomic包,里面实现了一些直接中CAS操作的线程安全的类型。 其中,最常用的一个类就是AtomicInteger。可以把它看做一个整数,但是与Integer不同的是,他是可变的,并且是线程安全的(类似i++是线程不安全的)。对其进行任何的操作,都是用CAS指令进行的。 ...

2017-09-27 11:25:54

阅读数 139

评论数 0

原创 《并发编程》--19.虚拟机内的锁优化

首先要介绍下对象头,在JVM中,每个对象都有一个对象头。 Mark Word,对象头的标记,32位(32位系统)。 描述对象的hash、锁信息,垃圾回收标记,年龄 还会保存指向锁记录的指针,指向monitor的指针,偏向锁线程ID等。 简单来说,对象头就是要保存一些系统性的信息。 1 偏...

2017-09-26 16:18:53

阅读数 132

评论数 0

原创 《并发编程》--18.Java层锁的优化

1 减少锁持有时间 public synchronized void syncMethod(){ othercode1(); mutextMethod(); othercode2(); }像上述代码这样,在进入方法前就要得到锁,其他线程就要在外面等待。 这里优化的一点在于,要...

2017-09-26 16:01:10

阅读数 115

评论数 0

原创 《并发编程》--17.BlockingQueue解析

1.BlockingQueue定义的常用方法   抛出异常 特殊值 阻塞 超时 插入 add(e) offer(e) put(e) offer(e,time,unit) 移除 remove() poll() take() poll(time,unit) 检查 element()...

2017-09-26 11:57:38

阅读数 102

评论数 0

原创 《并发编程》--16.并发队列ConcurrentLinkedQueue

1.介绍 在并发编程中需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式。 a.使用阻塞算法,   使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现。(不多赘述) b.使用非阻塞算法。   使用非阻塞的实现方式则可以使用循环CA...

2017-09-26 11:21:04

阅读数 116

评论数 0

原创 HTTPS协议原理

HTTPS是基于SSL的HTTP协议,简单的说就是HTTP的安全版。HTTPS协议由当时注明厂商网景公司首创,虽然和微软的竞争中败北,但是HTTPS技术却得到了传承,当前几乎所有的浏览器和服务器都能够很好的支持HTTPS协议 依托SSL协议,Https协议能够确保整个通信过程都是经过加密的,秘钥...

2017-09-22 17:11:30

阅读数 201

评论数 0

原创 json和xml的系统比较

1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type def...

2017-09-22 17:05:37

阅读数 101

评论数 0

原创 AES加密算法

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NI...

2017-09-22 15:45:44

阅读数 241

评论数 0

原创 3DES加密算法

3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简...

2017-09-22 14:50:43

阅读数 686

评论数 0

原创 彩虹表破解Hash算法

彩虹表是一种破解哈希算法的技术,从原理来说能够对任何一种Hash算法进行攻击。简单的说,彩虹表就是一张采用各种Hash算法生成的明文和密文的对照表。在彩虹表中,表内的每一条记录都是一串明文对应一种hash算法生成的一串密文。我们得到一串加密字符,以及它采用的加密算法后,通过使用相关软件工具在彩虹表...

2017-09-22 11:39:51

阅读数 1418

评论数 0

原创 SHA安全算法

在1993年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS PUB 180)公布;1995年又发布了一个修订版FIPS PUB 180-1,通常称之为SHA-1。SHA-1是基于MD4算法的,并且它的设计在很大程度上是模仿MD4的。现在已成为公认...

2017-09-22 11:21:13

阅读数 173

评论数 0

原创 MD5安全算法

百度百科这样解释的MD5: MD5信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。是目前主流的编程语言都有MD5...

2017-09-22 11:06:58

阅读数 167

评论数 0

原创 文件上传漏洞

文件上传攻击漏洞原理 在上网中,我们经常会将一些图片,压缩包之类的文件上传到远程服务器。文件上传攻击指的就是利用一些站点没有对文件的类型进行很好的校验,用户上传了一些可执行的文件或者脚本,并且通过脚本获得服务器的相应的权限,或者是通过诱导外部用户访问,下载上传病毒或木马文件,达到攻击的目的。 ...

2017-09-22 10:20:12

阅读数 958

评论数 0

原创 简单的图片滑动,按钮不动事例

.introduce{width:100%;height:88%; display: inline;white-space: nowrap; overflow-x:hidden;float:left;overflow-y:scroll;} .iknowbtn...

2017-09-21 18:33:37

阅读数 348

评论数 0

原创 sql注入攻击和防范

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如 ...

2017-09-21 18:24:43

阅读数 179

评论数 0

原创 CSRF的攻击和防范

xss攻击原理 用户 使用浏览器访问可信的站点A进行业务,此时浏览器会保存站点A相关的cookie 用户 使用浏览器访问一个恶意的站点B,如果站点B中的网页具有指向站点A的链接,攻击就有可能发生。有如下几种情况: a、站点B返回给用户的页面包含站点A的链接,点击这个链接就会跳转到...

2017-09-21 18:11:59

阅读数 687

评论数 0

原创 XSS攻击原理和防范

XSS攻击全程是跨站脚本攻击。他是WEB应用程序最常见的攻击手段之一。跨站脚本攻击指的是攻击者在网页中嵌入恶意脚本程序,当用户打开网页时,脚本程序便会开始爱客户端的浏览器上执行,已盗取客户端的cookie,用户名密码等。下载执行木马程序,甚至能获取客户端admin权限。 xss攻击原理  ...

2017-09-21 17:45:55

阅读数 284

评论数 0

原创 《并发编程》--15.线程安全的HashMap

众所周知,HashMap是线程不安全的。但是如果需要一个线程按钮的HashMap我们需要怎么做的。 其中一个可行的办法就是Collections.synchronizedMap。如下代码就是线程安全的HashMap public static Map m = Collections.synch...

2017-09-18 11:05:05

阅读数 280

评论数 0

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