Java
文章平均质量分 94
Java
进击的小宇宙
用十倍苦心,做突出一个。
展开
-
Java函数式编程
本文介绍Java 8新特性之一——函数式编程。原创 2019-10-02 18:22:07 · 454 阅读 · 0 评论 -
Queue+FileChannel实现非递归高效率目录拷贝
Queue+FileChannel实现非递归高效率目录拷贝一、 摘要本文介绍非递归目录遍历的实现、FileChannel的使用,从而实现非递归的、安全的目录拷贝。二、 非递归目录遍历 - Queue对于文件夹拷贝,我们常用的目录遍历方式是递归,在一个方法体中调用File.listFiles(),然后对每一个子file再调用该方法体,这样实现起来看似简单,实际上有很大的隐患。当我们的目录...原创 2019-01-07 15:19:38 · 271 阅读 · 0 评论 -
当心Arrays.asList()挖的巨坑
一、 前言先交代该问题出现的背景,博主最近在业务中,需要把List以逗号为分隔符,转为字符串存到本地文件中,同样也需要读取这个字符串转回List,于是自然而然想到的是: String pkgsString = "aaa,bbb,ccc,ddd,eee"; String[] pkgs = pkgsString.split(","); List<原创 2018-11-15 15:23:34 · 734 阅读 · 0 评论 -
ArrayList和LinkedList的效率对比
一、 前言首先我要批判一下很多关于这两个数据结构的对比测试文章,其作者在根本没搞清楚这俩内部实现原理和数据结构的情况下,用错误的方法测得结果,碰巧符合理论,因此认为符合,从而误导读者。之所以这么说,还请读者细读本文,之后便明白了。二、 数据结构ArrayListArrayList在内存中是连续的、单向的、有序的。ArrayList中维护了一个按照下标顺序的一维数组,数组中每个item指...原创 2018-10-24 11:09:10 · 3259 阅读 · 6 评论 -
Java四种引用方式
一、 四种引用类型1. 强引用Object obj;我们像这样直接声明的一个引用都是强引用。如果一个对象只被强引用方式引用,只有当这个对象的所有引用都失效(主动或者被动置空),这个对象才可以被GC回收(置空的对象并非立即被回收,当GC轮询到该对象发现其为空时才会主动回收它,不过我们可以调用System.gc()主动通知GC轮询)。2. 软引用Object obj = new Obj...原创 2018-10-22 17:39:26 · 308 阅读 · 0 评论 -
Java单例模式中双检锁的线程安全问题
一、 实现一个双检锁双检锁,顾名思义,两次检查一次锁:public class DoubleCheckLock { private static DoubleCheckLock instance; private DoubleCheckLock() { // TODO } public static DoubleCheckLock g...原创 2018-09-14 15:06:20 · 9452 阅读 · 11 评论 -
Java中的for(;;)和while(true)
一、 摘要在Java代码中,对于死循环有两种常见的方式: - for(;;) - while(true)那么二者到底有什么区别呢?二、 实践1. 首先编写一个java文件,内容如下:public class Demo { public void demo1() { for (;;) {} } public void demo...原创 2018-09-12 11:43:58 · 5082 阅读 · 1 评论 -
Java Web工程报"Invalid character found in the request target"错误的解决方案
一、 问题日志信息: Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.java.lang.IllegalArgumentException: Invalid character found in...原创 2018-04-12 10:11:27 · 8698 阅读 · 1 评论 -
Java Web工程中index.jsp报"javax.servlet.http.HttpServlet"错误的解决方案
一、 问题描述新建Java Web工程后,index.jsp文件报错,显示:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path二、 问题原因jsp需要servlet包的支持,所以导入servlet包即可。三、 解决方案列举三种方法1...原创 2018-04-04 10:46:20 · 3210 阅读 · 0 评论 -
Ubuntu下搭建Tomcat服务器
前言本文环境为Ubuntu16.04LTS,Tomcat版本为9.0。在此之前,请确保你已经安装并且配置好了Java环境,如果没有,可以参考Ubuntu设置系统环境变量。一、 下载1. 从官网下载最新版本我下载的是”apache-tomcat-9.0.6.tar.gz”。2. 移动到系统文件夹中例如”/usr/local/lib/apache-tomca...原创 2018-03-28 17:06:21 · 671 阅读 · 0 评论 -
Java学习笔记
本文记录一些学习过程中觉得重要的笔记,不定期更新扩充。如有错误,欢迎指正。1. 尽量使用fori循环而不是foreach或者迭代器iterator (1)foreach的底层也是由iterator实现的 (2)iterator效率很低,因为每一次遍历都要hasNext() (3)iterator不是线程安全的,会抛出并发修改异常ConcurrentModificationExceptio原创 2017-08-27 22:25:53 · 331 阅读 · 0 评论 -
关于jar打包时的几个问题的汇总
1. 读文件由于jar包是作为一个文件存在的,不是文件夹,那么用常规的路径是找不到内部文件的,通常可以这样来获取资源:InputStream inputStream = this.getClass().getResourceAsStream(PATH);得到文件的输入流; 或者是:URL url = this.getClass().getResource(PATH);...原创 2017-05-24 09:06:35 · 439 阅读 · 0 评论