摘要: 深入理解Java中的不可变对象 不可变对象想必大部分朋友都不陌生,大家在平时写代码的过程中100%会使用到不可变对象,比如最常见的String对象、包装器对象等,那么到底为何Java语言要这么设计,真正意图和考虑点是什么?可能一些朋友没有细想过这些问题,今天我们就来聊聊跟不可变对象有关的话题。 以下 阅读全文
posted @ 2019-04-12 20:01 Matrix海子 阅读(33859) 评论(14) 推荐(25) 编辑
摘要: 再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:《Java中的static关键字解析》。 今天我们再来谈一谈static关键字,这次我们侧重讲述static关键字的一些使用场景和方式,以下是本文目录大纲: 一.static关 阅读全文
posted @ 2019-04-03 22:53 Matrix海子 阅读(15949) 评论(9) 推荐(24) 编辑
摘要: 工程实践:如何给变量取一个好的名字 在上一篇文章中跟大家分享了关于函数命名的一些实践心得,今天我们继续命名这个话题,来讲一讲如何对变量命名。 以下是本文的目录大纲: 一. 变量命名风格 二. 变量命名最高境界 三. 变量命名最佳实践 若有不正之处请多多谅解,并欢迎批评指正。 请尊重作者劳动成果,转载 阅读全文
posted @ 2019-04-01 22:34 Matrix海子 阅读(7734) 评论(10) 推荐(12) 编辑
摘要: 工程实践:给函数取一个"好"的名字 早在2013年,国外有个程序员做了一个有意思的投票统计(原始链接请见:《程序员:你认为最难做的事情是什么?》),该投票是让程序员从以下几个选项中选出平时在工作中自己认为最难做的事情: 做项目方案设计 编写测试用例 撰写设计文档 向别人解释我们在做什么事情 实现你不 阅读全文
posted @ 2019-03-21 21:05 Matrix海子 阅读(14963) 评论(31) 推荐(69) 编辑
摘要: 工程实践:如何规范地打印程序日志? 很久之前,有个朋友问我,如果一个老项目让你接手去进行后续维护,你会先从哪里入手、让自己更快地上手项目?当时我没有特别正面去回答这个朋友的问题,我说:一个老项目是否容易上手,一个非常关键的地方就是这个项目的日志是否打得足够好。因为通常来说,一个老项目相对比较稳定了, 阅读全文
posted @ 2019-03-10 23:40 Matrix海子 阅读(12181) 评论(0) 推荐(10) 编辑
摘要: 金山会盘+TortoiseSVN构建版本控制仓库 之前写过一篇文章介绍 如何利用花生壳和VisualSVN Server建立远程代码仓库,具体请参照: 《如何利用花生壳和VisualSVN Server建立远程代码仓库》 这个办法虽然可行,但是有一个问题就是:花生壳域名访问不稳定,导致有些时候... 阅读全文
posted @ 2014-10-21 15:45 Matrix海子 阅读(10514) 评论(13) 推荐(3) 编辑
摘要: 在windows下安装配置Ulipad 今天推荐一款轻便的文本编辑器Ulipad,用来写一些小的Python脚本非常方便。 Ulipad下载地址: https://github.com/limodou/ulipad http://files.cnblogs.com/dolphin0520/u... 阅读全文
posted @ 2014-10-09 17:18 Matrix海子 阅读(12741) 评论(2) 推荐(0) 编辑
摘要: Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对 阅读全文
posted @ 2014-09-10 16:04 Matrix海子 阅读(107703) 评论(20) 推荐(27) 编辑
摘要: JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出 阅读全文
posted @ 2014-09-05 21:45 Matrix海子 阅读(80709) 评论(12) 推荐(25) 编辑
摘要: Java线程面试题 Top 50 原文链接:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求 阅读全文
posted @ 2014-09-05 14:36 Matrix海子 阅读(61165) 评论(11) 推荐(32) 编辑
摘要: Java并发编程:Timer和TimerTask(转载) 下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTas 阅读全文
posted @ 2014-09-05 11:17 Matrix海子 阅读(61622) 评论(2) 推荐(7) 编辑
摘要: Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程 阅读全文
posted @ 2014-09-05 09:55 Matrix海子 阅读(404248) 评论(42) 推荐(71) 编辑
摘要: Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本 阅读全文
posted @ 2014-09-03 19:35 Matrix海子 阅读(194634) 评论(32) 推荐(98) 编辑
摘要: Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得 阅读全文
posted @ 2014-09-03 11:02 Matrix海子 阅读(1029109) 评论(120) 推荐(312) 编辑
摘要: Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接 阅读全文
posted @ 2014-08-29 09:08 Matrix海子 阅读(113308) 评论(25) 推荐(41) 编辑
摘要: Java并发编程:并发容器之CopyOnWriteArrayList(转载) 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个 阅读全文
posted @ 2014-08-27 10:47 Matrix海子 阅读(135404) 评论(13) 推荐(33) 编辑
摘要: Java并发编程:并发容器之ConcurrentHashMap(转载) 下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访 阅读全文
posted @ 2014-08-27 10:17 Matrix海子 阅读(76501) 评论(20) 推荐(14) 编辑
摘要: Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个 阅读全文
posted @ 2014-08-25 14:57 Matrix海子 阅读(589896) 评论(42) 推荐(74) 编辑
摘要: Java并发编程:同步容器 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同 阅读全文
posted @ 2014-08-24 20:47 Matrix海子 阅读(31099) 评论(7) 推荐(14) 编辑
摘要: Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两 阅读全文
posted @ 2014-08-24 11:34 Matrix海子 阅读(394527) 评论(75) 推荐(135) 编辑