- 博客(821)
- 资源 (68)
- 收藏
- 关注
原创 hexo更新记
文章标题起的有点随意,因为前后尝试了很多的(npm, node, hexo)更新,最后也不知道是哪个起的主导作用,所以就整体叫hexo 更新吧有个博客是用hexo弄的, 至少大概有好几个月 没更新了,今天想写点东西,发现用不了了。一开始的问题是报如下错误:(node:19344) [DEP0061] DeprecationWarning: fs.SyncWriteStream is...
2018-07-13 17:43:20 2770
原创 Java实现同一时间只允许一个账号登录
客户要求不允许同一账号多地登录,这里就需要用到JavaWeb的四大作用域1、page 指当前页面有效。在一个jsp页面里有效2、request 指在一次请求的全过程中有效3、Session 是用户全局变量,在整个会话期间都有效4、application 是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中登录时设置用户ID(也可以其他)至applic...
2018-07-13 15:03:28 9524 5
原创 Java 获取两个日期之间的所有日期
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;p...
2018-07-12 19:09:38 13502 1
原创 JXL返回正确的行数
如果Excel中在有数据的行下面有回车,getRows()也会返回该行数,判断方法为如果该行每一列都是空值就过滤掉/** * 过滤掉空行 * @param sheet * @return */ private static int getRightRows(Sheet sheet) { int rsCols = sheet.get...
2018-06-01 15:28:37 2275
原创 MyEclipse项目名有红叉,但文件中没有红叉的解决方法
环境:MyEclipse2017 JDK1.8 Tomcat8.5首先最能想到的就是jar missing 或java编译版本不一致之类的,检查一下不是此次问题的原因是.settings文件夹下的一个文件所引起项目根目录 -> .settings -> org.eclipse.wst.common.pr...
2018-05-11 14:20:08 2497
原创 Oracle中判断一个字符串是否为全数字
在一个字段上使用sum()聚合函数的时候报“ORA-01722:无效数字”错误,原因是该字段值有非数字其中一个解决方法是将只要包含非数字的都替换为0select sum(to_number(nvl2(translate(LA_J_B, '/1234567890.', '\'), '0', LA_J_B))) as LA_J_Bfrom BUS_BB_RLXHL这里使用到了两个关键函数,一个是tra
2018-05-08 11:59:04 13190
原创 Oracle中nvl(), nvl2()函数的区别
nvl(expr1, expr2)表示:如果expr1为NULL,则nvl返回expr2。如果expr1不是NULL,则nvl返回expr1。nvl2(expr1, expr2, expr3)表示:如果expr1不为空,则nvl2返回expr2。如果expr1为空,则nvl2返回expr3。参考:https://docs.oracle.com/cd/B19306_01/...
2018-05-08 11:46:14 1184
原创 将SQL语句合并为一行
有如下代码:select sum(b.qob_bornuptotal) / 10000 AS qob_bornuptotal, a.CX_TYPE_DETAIL FROM BUS_BB_CX a left join BUS_BB_QOB b on a.cx_name = b.qob_cx WHERE b.qob_company = '431682696' and b
2018-03-29 18:02:54 4901 1
原创 面经二
一面:没问什么技术相关的,就是随便聊聊,面试官很nice二面:部门leader,相关问题如下1、异常的分类和继承关系Java中提供两种错误的异常类,分别是Error和Exception,他们拥有相同的父类Throwable(当时没想起来),Error表示错误,不可恢复,发生在JVM层次,而Exception表示可恢复的异常 又分为运行时异常和检查异常。区别是运行时异常可以不...
2018-03-27 21:26:51 1066 1
原创 面经一
我只是在网上刷新了简历,便接到了外包公司的电话,某动力。是XX司的外派项目,既然是电话面试,那就答应面吧,长点面试经验也好,毕竟一年多没面过试了。一、自我介绍二、介绍做过的项目三、SpringMVC相关1、介绍框架搭建的流程2、介绍一些主要注解的作用3、接收参数及JSON的注解 @RequestParam(value = “”), @ResponseBody...
2018-03-22 22:24:26 812
原创 文章整理
Java集合HashMap实现原理及源码分析ArrayList和Vector的区别ArrayList和LinkedList的区别HashSet实现原理及源码分析TreeMap实现原理及源码分析 TreeSet实现原理及源码分析Hashtable实现原理及源码分析HashMap和Hashtable的区别WeakHashMap实现原理及源码分析Iterator迭代器Java虚拟机
2018-03-18 23:00:58 843
原创 JDK1.7 switch支持String类型的原理
我们知道在JDK1.6之前 switch语句只支持byte、char、short、int以及Enum,是不支持String类型的JDK1.7之后加入了对String类型的支持,如下代码(需1.7以上版本):public class Test { public static void main(String[] args) { String str =
2018-03-10 23:00:28 1817
原创 Servlet单实例多线程模式
问题:Servlet是线程安全的吗?Servlet类本质上也是一个普通的类,并且Servlet容器默认只允许单个实例存在。当请求到达服务器时,Servlet实例如果已经存在的话则直接加载该实例,如果该Servlet类还未实例化则会先初始化这个Servlet。当请求到达Web服务器时,Web服务器中有一个线程池,它会从线程池中取一个工作线程,通过该线程调用请求的Servlet。因此,对Serv
2018-03-04 22:31:11 918
原创 Java使用阻塞队列BlockingQueue实现生产者消费者
什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。1、支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2、支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。...
2018-02-22 22:58:45 6692
原创 Java之浅克隆和深克隆
克隆就是复制一个对象的副本,但一个对象中有可能有基本数据类型,如 int,long,float等,也可能含有对象引用数据类型,如 数组,集合等浅克隆:被复制对象的所有变量都含有与原来的对象相同的值,而所有的其他对象的引用仍然指向原来的对象。换言之,浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象。深克隆:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象
2018-02-11 22:06:32 422
原创 Java中split使用时遇到的问题
项目中是这样使用split()的// onestr 为 PRO:=:2018-01// 按 “:” 分隔为3部分String[] valueT = onestr.split(":"); 之前一直没事,直到日期值变为了 2018-01-31 11:14:55 就出现了问题,被分隔成了PRO=2018-01-31 111455这不是我要的结果,想要的是个完整的日期值...
2018-02-11 22:05:17 1283
原创 遇到一个MySQL小问题 Data truncation: Out of range value for column 'huid' at row 1
在数据库某表中字段 “huid” 为 int 类型程序代码中设置的”huid”值为1518753768709 ,超出了该字段所承载的范围,故报错。解决方法为 int 类型修改为bigint类型附表:显示了每个整数类型所需的存储空间和范围 类型 最小值 最大值 TINYINT -128 127 SMALLINT -32768 3276
2018-02-10 23:23:33 34581
原创 Hibernate通过SQL查询常量时只返回第一个字符解决方法
在做统计查询的时候需要使用到一个常量,如session.createSQLQuery("select '张三' as name from tab").list() 查询,结果只返回了一个 ‘张’。常量在数据库中被认为是CHAR类型的,Hibernate取值时将其保存为Character类型,而Character只能保存一个字符,所以造成返回值只存在一个字符。解决方法:1...
2018-02-10 23:19:43 1970
原创 Java并发编程之final
final域的重排序规则对于final域,编译器和处理器要遵守两个重排序规则。在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面通过一些示例性的代码来分别说明这两个规则。public class FinalExample {
2018-01-03 23:15:25 1248 1
原创 Java并发编程之volatile
volatile可以说是Java虚拟机提供的最轻量级的同步机制,Java内存模型对volatile专门定义了一些特殊的访问规则。当一个变量定义为volatile之后,它将具备两种特性,第一是保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。 而普通变量不能做到这一点,普通变量的值在线程间传递均需要通过主内存来完成,例如,线程A修改一
2017-12-30 22:25:35 708
原创 Java并发编程之内存模型
硬件的效率与一致性让计算机并发执行若干运算任务不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果的哪个,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲;将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存
2017-12-26 21:09:24 892
原创 深入理解Java虚拟机 - 泛型与类型擦除
泛型是JDK 1.5的一项新增特性,它的本质是参数化类型(Parametersized Type)的应用,也就是说所操作的数据类型被指定为一个参数。 这种参数类型可以用在类、 接口和方法的创建中,分别称为泛型类、 泛型接口和泛型方法。Java语言中的泛型只在程序源码中存在,在编译后的字节码文件中,就已经替换为原来的原生类型了,并且在相应的地方插入了强制转换代码,因此,对于运行期的Java语言来
2017-12-22 13:39:37 1774 2
原创 深入理解Java虚拟机 - 字节码指令集
Java虚拟机的指令由一个字节长度的、 代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。字节码与数据类型在Java虚拟机的指令集中,大多数的指令都包含了其操作所对应的数据类型信息。 例如,iload指令用于从局部变量表中加载int型的数据到操作数栈中,而fload指令加载的则是float类型的数据。
2017-12-22 13:38:05 2112
原创 深入理解Java虚拟机 - 类文件结构
无关性的基石各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。实现语言无关性的基础仍然是虚拟机和字节码存储格式。 Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。Class类文件的结构任何一个Clas
2017-12-19 21:04:04 1064
原创 深入理解Java虚拟机 - OutOfMemoryError异常
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都 有发生OutOfMemoryError(下文称OOM)异常的可能下文代码的开头都注释了执行时所需要设置的虚拟机启动参数(注释中“VM Args”后面跟着的参数),这些 参数对实验的结果有直接影响,可在Eclipse IDE中设置如下:-verbose:gc -Xms20M -Xmx20M -Xmn10
2017-12-12 22:01:07 1193
原创 深入理解Java虚拟机 - Java内存区域
运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。 这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。 根据《Java虚拟机规范(Java SE 7版)》 的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示。程序计数器程序计数器:
2017-12-10 23:07:51 990
原创 MYSQL实现Oracle的Start with…Connect By递归树查询
因项目迁移,使用的数据库也需要从Oracle迁移到MySQL 其中有个功能使用到了Oracle的Start with…Connect By递归树查询,而MySQL中没有此函数,但可以通过自定义函数的方式来解决这个问题创建表create table treeList( id varchar(10), -- 节点ID name varchar(10), -- 节点名称 p
2017-12-08 17:58:43 7080 1
原创 EasyUI tree 实现点击展开/折叠
$('#tt').tree( { url : 'getTree.do', animate: true, onClick: function(node){ $('#tt').tree(node.state === 'closed' ? 'expand' : 'collapse', node.target); }});作者:itmyhome
2017-12-01 19:17:32 9808 1
原创 Oracle中的translate函数用法
语法:translate(expr, from_strimg, to_string)简介:translate返回expr,其中from_string中的每个字符的所有出现都被to_string中的相应字符替换。expr中不在from_string中的字符不会被替换。如果expr是一个字符串,那么你必须把它放在单引号中。 from_string的参数可以包含比to_string更多的字符。在这种情况下
2017-11-17 19:48:14 10058
原创 为什么String是不可变对象
不可变对象是指在创建后后其外部可见状态无法更改的对象。Java 类库中的 String 、 Integer 和 BigDecimal 类就是不变对象的示例 ― 它们表示在对象的生命期内无法更改的单个值。看下面代码:String s = "ABC";s.toLowerCase();s.toLowerCase()并没有改变”ABC”的值,而是创建了一个新的String类”abc”,然后将指向变量s我们
2017-11-07 20:49:35 1369
原创 了解Java线程的start方法如何回调run方法
Java 创建线程的方法实际上,创建线程最重要的是提供线程函数(回调函数),该函数作为新创建线程的入口函数,实现自己想要的功能。Java 提供了两种方法来创建一个线程:继承 Thread 类class MyThread extends Thread{ public void run() { System.out.println("My thread is start
2017-11-07 19:53:45 6919 20
原创 Java之transient关键字详解
1、transient的作用及使用方法Java对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将Java对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Java 对象原有的状态。实际上,序列化的思想是 “冻结” 对象状态,传输对象状态(写到磁盘、通过网络传输等等),然后 “解冻” 状态,重新获得可用的 Java 对象。我们都知道一个对象只要实现了S
2017-10-25 21:37:35 1339 1
原创 EL表达式使用fmt:formatNumber标签保留两位小数
在页面上使用EL表达式进行统计计算${energyBO.min + energyBO.max}, 结果显示的是科学计数法,现在要改为原始数据并保留两位小数可使用<fmt:formatNumber>标签进行格式化<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <fmt:formatNumber type="num
2017-10-19 22:16:50 9976
原创 Java线程池实现原理
前言在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其他更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。第二:提高响应速度。第三:提高线程的可管理性。
2017-10-17 14:23:33 2315
原创 ThreadLocal使用
ThreadLocal含义ThreadLocal叫做线程本地变量,也有叫线程局部变量。ThreadLocal提供了一种访问某个变量的特殊方式:访问到的变量属于当前线程,即保证每个线程的变量不一样,而同一个线程在任何地方拿到的变量都是一致的,这就是所谓的线程隔离应用场景ThreadLocal通常用来共享数据,当需要在多个方法中使用某个变量,这个变量是当前线程的状态,其他线程不依赖这个变量
2017-10-11 15:53:56 940
原创 深入理解Java虚拟机 - 类加载机制
概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的时机类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使
2017-09-29 22:37:44 1016
原创 深入理解Java虚拟机 - 类加载器
类加载器基本概念顾名思义,类加载器(class loader)用来加载Java类到Java虚拟机中。一般来说,Java虚拟机使用Java类的方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节代码(.class文件)。类加载器负责读取Java字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个Java类。通过此实例的n
2017-09-28 14:30:33 911
原创 Java动态代理
代理模式:代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理的实现分为静态代理:代理类是在编译时就实现好的,也就是说Java编译完成后代理类是一个实际的class文件动态代理:代理类是在运行时生成的,也就是说Java编译完之后并没有实际的class文件,而
2017-09-26 10:43:00 1862
原创 会话cookie中缺少HttpOnly属性
项目经第三方机构进行安全扫描漏洞出现“会话cookie中缺少HttpOnly属性”问题安全风险可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务可能原因Web 应用程序设置了缺少 HttpOnly 属性的会话 cookie 技术描述在应用程序测试过程中,检测到所测试的 Web 应用程序设置了不含“
2017-09-14 15:09:23 11798 3
jQuery全屏插件Textarea Fullscreen
2014-08-07
jQuery幻灯片插件Skippr
2014-08-06
jQuery跳房子插件hopscotch
2014-08-05
jQuery回到顶部插件jQueryGoUp
2014-08-04
Bootstrap网站模板
2014-07-31
Flexigrid的使用(整合Struts2 )
2014-07-09
EasyUI DataGrid及Pagination(源码)
2014-07-08
EasyUI项目
2014-07-07
jfreechart.zip(含项目代码)
2014-07-05
jfreechart
2014-07-05
ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
2014-07-03
ajaxFileUpload+struts2实现多文件上传(源码)
2014-07-02
Struts2框架搭建(源码)
2014-07-02
Struts2框架搭建(项目源码)
2014-07-01
jquery.cycle.all.js
2014-06-15
ibatis实战之一对多关联(源代码)
2014-06-13
ibatis实战之基础环境搭建(源码).zip
2014-06-09
ibatis-2.3.4.726.zip
2014-06-09
springMVC3学习(十二)--文件上传优化CommonsMultipartResolver(源码)
2014-06-05
Struts2 自定义下拉框标签Tag(源码)
2016-02-25
Java实现POI导出Excel
2015-11-19
JavaScript编码规范
2015-11-17
uploadifive struts2实现图片上传
2015-03-06
jQuery表单插件jquery.form.js(示例源码)
2015-01-18
windows安装jekyll所需软件 ruby DevKit python pip
2014-12-19
Struts2 ajax json使用介绍
2014-12-17
kindeditor图片上传 struts2实现
2014-11-17
EasyUI Editable Tree源码
2014-09-02
EasyUI实现异步加载tree(整合Struts2)源码
2014-09-01
CKEditor实现图片上传(使用Struts2)
2014-09-01
SyntaxHighlighter代码高亮插件
2014-08-14
xheditor搭建
2014-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人