随笔分类 - Java
摘要:背景 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法 1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。 2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。 多线程环境中,通过队
阅读全文
摘要:已找不到原文了,还望原文博主看到能告诉小白一下,一定标注原文地址 一 condition 介绍及demo Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Cond
阅读全文
摘要:package com.founder.mrp.util; import com.founder.mrp.util.storage.StorageFile; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.
阅读全文
摘要:背景 HashMap 的相关问题在校招面试中十分常见, 作为新人, HashMap 的各个问题应该要理解的十分透彻才行. 此外, ConcurrentHashMap, Hashtable 也是经常与 HashMap 一同被问, 下文中都有介绍. HashMap 原理 1. 底层数据结构 HashMa
阅读全文
摘要:先来简单了解 Fork/Join 框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。 Fork/Join 框架与传统线程池的区别采用“工作窃取”模式(work-stealing):
阅读全文
摘要:最近项目使用原生的多线程使用方式,有点遗忘,赶紧写个demo温习一下。 一、Executors 在Java用有一个Executors工具类,可以为我们创建一个线程池,其本质就是new了一个ThreadPoolExecutor对象。 建议使用较为方便的 Executors 工厂方法来创建线程池。 Ex
阅读全文
摘要:公司的项目需要电科院测评,必须保证数据的完整性和保密性,为这两个特性不得不搞个RSA+SHA1加密。 页面处理过程: 每次登录前,先向后端发送请求,由RSA生成一对公钥和私钥,获取公钥中的模modulus和指数exponent,然后传到前端,私钥存入当前请求的session中。前端使用securit
阅读全文
摘要:PBKDF2(Password-Based Key Derivation Function)。 通过哈希算法进行加密。由于哈希算法是单向的,能够将不论什么大小的数据转化为定长的“指纹”,并且无法被反向计算。 另外,即使数据源仅仅修改了一丁点。哈希的结果也会全然不同。 这种特性使得它很适合用于保存pa
阅读全文
摘要:package com.founder.mrp.util; import java.nio.charset.StandardCharsets; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import com.founder.mrp.web.jsonEnt
阅读全文
摘要:密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等 发表于 2017年09月8日 by 天涯孤雁 被浏览 3,953 次 分享到: 2 小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货。各大应用市场搜索「掘金」即可下载APP,技术干货尽在掌握.. 需要一个密码强度正则表达式在...
阅读全文
摘要:1、实现目标 输入:两个日期 输出:两个日期相差的天数 2、代码实现 方法1: 通过Calendar类的日期比较。注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是分闰年和平年的,各自的天数不同 方法2: 直接通过计算两个日期的毫秒数,他们的差除以一天的毫秒数,
阅读全文
摘要:1.Calendar 转化 String //获取当前时间的具体情况,如年,月,日,week,date,分,秒等 Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy
阅读全文
摘要:在实际开发项目中,有些数据在前后端的传输过程中需要进行加密,那就需要保证前端和后端的加解密需要统一。这里给大家简单演示AES在JavaScript前端和Java后端是如何实现加密和解密的。 java端: package com.lin.utils; import java.math.BigInteg
阅读全文
摘要:最近有一个加解密的需求,其实没有什么难度,但是实践过程中踩了很多坑,把踩坑过程分享出来。 1、前端JS加密 /** * 加密(需要先加载aes.min.js文件) * @param word * @returns {*} */ function aesMinEncrypt(word){ var _w
阅读全文
摘要:Java后台保存base64图片数据 使用byte[] bytes = new BASE64Decoder().decodeBuffer(str);需要引入sun.misc.BASE64Decoder,但在eclipse中提示不存在此war包。 查阅后在一篇文章中提到: “一直以来Base64的加密
阅读全文
摘要:最近与人瞎聊,聊到各大厂的面试题,其中有一个就是用java实现单链表反转。闲来无事,决定就这个问题进行一番尝试。 1.准备链表 准备一个由DataNode组成的单向链表,DataNode如下: 构造链表 运行main方法,即构造了一个包含10个node节点的单链表。 2.通过递归实现单链表反转 考虑
阅读全文
摘要:参数分别为:需要进行分页的list,页码,每页多少条数据 返回值为:分页后的list数据
阅读全文
摘要:在一些应用中,需要将List中的对象按某种情况分组或者排序处理。做个小结如下: 1. 如一个List中存放了ProductDoing对象,productDoing对象有rawTypeId 现在要求将rawTypeId分组处理。 先用Map找出list中所有的分组: 接下来就可以对已知的分组处理。 2
阅读全文
摘要:老版本的Jackson使用的包名为org.codehaus.jackson,而新版本使用的是com.fasterxml.jackson。 Jackson主要包含了3个模块: jackson-core jackson-annotations jackson-databind 其中,jackson-an
阅读全文
摘要:在实际开发中,某些情况下,我们可能需要频繁去创建一些对象(new),下面介绍一种,我从书上看到的,可以提高效率的方法。 首先,对于将会频繁创建的对象,我们要让这个类实现Cloneable接口,因为这个优化的核心,就是利用clone。 clone的最大特点就是,不会去调用任何构造方法,所以,在我看来重
阅读全文

浙公网安备 33010602011771号