Java内存模型

这篇文章,是对Java并发编程系列知识整理的开始,那么开始吧。

Java内存模型的基础

在学操作系统中,便知道进程与线程,线程之间是可以共享进程资源的。在Java语言以及JVM中,线程就是运行的最小单位了,在JVM中,对应着栈——数据结构。两个问题:
1.线程之间是如何通信的?
2.线程之间是如何同步的?

阅读全文

2016父与子台湾游

2016年,已经接近尾声,10月底,深圳的天气,趁“热”还未完全褪去,姑且把台湾行记录一下,哼哼,感觉热不了几天了。去了台湾,可以确定的是我们是同根,同文化的,至于未来。。。

直接报团

国庆长假,带着老爸去了一趟台湾,去海峡那边看一看。带着长辈,不会考虑自由行,直接报了台湾的旅行团。从旅行社的从业人员那里了解,从蔡英文上台后,台湾游大减,就连十一都只能出一个小团。我们一行人,12个成年人,加上两个小孩,加上大陆和台湾各一名导游和司机,总共17人,坐着大巴,沿着逆时针,绕台湾一圈,8天7晚。

阅读全文

DAO模式

这篇文章,做为整理设计模式相关文章的开篇。到目前为止,已经有JVM,Spring,CoreJava三条线索整理Java相关知识,加上设计模式有4条了,每条都还只是开头,加油。

DAO模式定义

顾名思义,DAO = Data Access Object,用来抽象和封装处理数据源的操作。DAO管理与数据源的连接,获取和存储数据。数据源,可以是DB,文件,第三方服务等。对于DAO的使用者,不用知道到底出哪儿获取的数据,DAO隐藏数据源的实现细节,提供接口给用户使用,接口不会因为数据源的改变而改变。DAO相当与在组件和数据源之间扮演适配者。

如上图所示,DAO模式的类图。
Business Object:代表使用数据的用户。该对象需要访问数据源,获取和存储数据。可以是Session Bean,实例Bean以及其他Java对象,例如servlet的helper类。
DataAccessObject:该模式的核心对象,抽象潜在的数据访问实现。使Business Object可以透明的访问数据源。相当于Business Ojbect委托数据获取和存储操作给DataAccessObject。
DataSource:数据源的实现,可以是RDBMS,OODBMS,XML repository,文件系统,其他服务等。
TransferObject:数据载体,作为一个数据对象,由DataAccessObject返回给用户(Business Object)。存储的话,则反向。

阅读全文

SimpleDateFormat线程安全问题

项目运行期间,SimpleDateFormat使用出现了异常,刚开始并没有太在意。但是或多或少会有业务影响,查询了一下,发现SimpleDateFormat是线程非安全的,抽空试了一下在多线程下使用它。

SimpleDateFormat.format

试了很多次,format方法不会有多线程并发的问题,没有异常抛出。

阅读全文

Spring依赖注入

Java,发展20多年至今,已经占领企业级开发,Java自己提供的JavaEE标准中,EJB定义过于复杂,自入行业以来木有做过相应的开发,然后Spring却一直在使用,所以将Spring作为Java学习的一条主线,进行系统性的整理,归纳。

介绍

Spring对照EJB,相对简化的开发平台,但是Spring不是一个简单的框架,可以说是一个很大的框架集。核心思想,是基于POJOs的容器,支持依赖注入,各种templates模版,AOP编程,集成很多第三方流行框架。

阅读全文

Java虚拟机运行时数据

对于JAVA,很重要的特性,是开发人员不用关心GC(garbage collection),Java语言使用时,不用关心内存回收问题,更多的关注business上。从另一面讲,如果Java虚拟机出现内存泄漏问题,往往会不知所措,引文内存回收,交给虚拟机来维护了。虚拟机帮我们做了,但是它也不是万能的,为了更好的使用Java,提升性能,规避内存溢出风险,需要深入了解虚拟机的构造。

阅读全文

虚拟机类加载机制

为什么会有ClassLoader

Oracle有一篇好文诠释ClassLoader机制。

阅读全文

hexo搭建博客指南

由于码农的身份,一直在跟电脑打交道,对于思考以及人之间的交流,有所欠缺,心里一直想用自己所学的技术搭建一个有特色的博客系统,去年尝试了,但是没有结果,无疾而终。

契机

心中的萌念一直在,觉得要写博客,一是锻炼自己写作能力,二是总结自己所学所得,虽然水平很菜,三是卖自己。

阅读全文

新文章

这是第一次使用markdown写blog。

目的

为了测试hexo

测试标签

done

阅读全文

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

阅读全文