摘要:
java正则解析${} 1 String property = "带有${}需要匹配的字符串"; 2 //懒匹配${} 3 String regex = "\\$\\{(.*?)}"; 4 Pattern pattern = Pattern.compile(regex); 5 Matcher mat 阅读全文
摘要:
单例模式RSA工具类 1 package com.founder.centerbusiness.common.utils; 2 3 import org.apache.commons.codec.binary.Base64; 4 import javax.crypto.Cipher; 5 impor 阅读全文
摘要:
使用maven插件的热部署功能可以很方便的将maven项目部署到远程tomcat服务器,由于tomcat接受推送部署的接口较为稳定,因此在tomcat的7.x、8.x、9.x均适用。 1,开启tomcat推送热部署功能 编辑tomcat服务器下的conf/tomcat-users.xml,在末尾增加 阅读全文
摘要:
堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heapmemory)”。可以看出JVM主要管理两种类型的内存:堆和非堆 阅读全文
摘要:
如果等你把自己的房间装饰的非常漂亮以后,再请客的话,你可能已经没有朋友了;如果等你功成名就赚了钱以后,再找女朋友的话,能够和你同甘共苦的人可能已经结婚了。长期的目标应该定高点,但近期的目标应该定低点,自己做自己的啦啦队,不完美,怎么了。 等把所有都准备好了再出发,一切,可能都已经晚了...... 阅读全文
摘要:
1,年轻代、年老代、永久代 根据对象的生命周期的长短,把对象分成不同的种类,并分别进行内存回收,这就是分代垃圾回收。 分代垃圾回收算法的主要思路:把堆分成两个或者多个子堆,每一个子堆被视为一代。在运行的过程中,优先收集那些年幼的对象,如果一个对象经过多次收集仍然存活,那么可以把这个对象转移到高一级的 阅读全文
摘要:
为了便于管理,JVM在执行java程序的时候,会把它所管理的内存划分为多个不同区域。 1,class文件 class文件是java程序编译后生成的中间代码,这些中间代码将会被JVM解释执行。 2,类装载器子系统 类装载器子系统负责把class文件装载到内存中,供虚拟机执行。JVM有两种类装载器,分别 阅读全文
摘要:
BIO使用同步阻塞的方式工作,而NIO则使用的是异步阻塞的方式。对于NIO而言,它最重要的地方是当一个链接被创建后,不需要对应一个线程,这个连接会被注册到多路复用器上面,所以所有的连接只需要一个线程管理,当这个线程中的多路复用器进行轮询的时候,发现连接上游请求的话,才开启一个线程进行处理,也就是一个 阅读全文
摘要:
1,IO IO即input和output的缩写,在java语境里,通常表达的是数据的流入和流出。 流是指数据的无结构化传递,以无结构字节序列或者字符序列进入输入和输出。IO流即是进行输入和输出操作的流。 字节流的最小操作单位是一个字符,字符即是字节加上编码表,单个字符占用1到多个字节。 2,BIO 阅读全文
摘要:
多线程、单线程、同步、异步、阻塞、非阻塞,都是独立的概念,只是在多数应用场景下,它们看上去一致了,所以造成了概念的混淆。 1,在多线程语境下的概念 在多线程语境下,用于描述任务的线程访问执行机制,同步和异步关注的是任务是否可以被同时调用,阻塞和非阻塞则关注的是线程的状态。 同步:指代码的同步执行(s 阅读全文