大家好,又见面了. 在我们的项目编码中,不可避免的会用到一些容器类,我们可以直接使用List.Map.Set.Array等类型.当然,为了体现业务层面的含义,我们也会根据实际需要自行封装一些专门的Bean类,并在其中封装集合数据来使用. 看下面的一个场景: 在一个企业级的研发项目事务管理系统里面,包含很多的项目,每个项目下面又包含很多的具体需求,而每个需求下面又会被拆分出若干的具体事项. 上面的示例场景中,对应的数据结构逻辑可以用下图来表示出来: 按照常规思路,我们会怎么去建模呢?为了简化描述,…
以前一直对于java中容器的概念不理解,虽然学习过,但始终没有认真理解过,这几天老师提出了这样一个问题,你怎么理解java中的容器.瞬间就蒙了.于是各种搜资料学习了一下,下面是我学习后整理出来的的一些心得.欢迎各路大神指教 在书写程序时,我们常常需要对大量的对象引用进行管理.为了实现有效的归类管理,我们常常将同类的引用放置在同一个数据容器中. java容器的组成 一.Collection接口:定义了存取一组对象的方法,他的子接口Set和List分别定义了存取方法.Set中的数据对象没有顺序且不可…
Java中的共享设计的思路是在Java中形成一个对象池,在这个对象池中保存多个对象, 新实例化的对象如果已经在池中定义了,则不再重复新定义,而从池中直接取出继续使用. 例如,对于字符串来说,Java 会提供一个字符串池来保存全部的内容,当内容重复是,会将对象指向已存在的实例空间.因此如下代码段中str1.str2和str3的地址都指向相同的内存空间. str1 = ”hello"; str2 = "hello"; str3 = "hello";…
List,Set,Map的两种初始化赋值方式  List List<Integer> list2 = new ArrayList<Integer>(); for (int i=0;i<times;i++){ list2.add(i); } List<Integer> list1 = new ArrayList<Integer>(){ { for (int i=0;i<times;i++){ add(i); } } };  Map Map<S…
容器:顾名思义,装东西的器物至于spring中bean,aop,ioc等一些都只是实现的方式具体容器哪些值得我们借鉴,我个人觉得是封装的思想.将你一个独立的系统功能放到一个容器之中,可以当做一个大的接口被别人使用,也可以更好的规范标准就比如我们的捐款箱,放在那里,可以投掷一毛.五毛.一块.十块等等,但是这个容器的功能就是:供别人捐款使用在我们需要的时候可以带着这个容器去任何地方使用如果你的系统是放置在你的电脑上的散乱的文件的话,用的时候去找对应文件,等于是把捐款丢在地上,那么可想而知,使用起来多…
关于组合 和 集成 先放两篇文章:这两篇文章写的太好了. http://blog.csdn.net/u013905744/article/details/51752044    Java的组合(持有对象)与继承的区别 http://blog.csdn.net/ycjnx/article/details/40952969  java继承和组合的区别,看两个例子,你就明白了 然后下面 我就贴出代码,给出一些具体的实例: 下面贴出代码: IModel 接口: package com.etoak.she…
There are many reasons due to the string class has been made immutable in Java. These reasons in view, concurrency issues, security issues and performance issues. Here is a list of various valid reasons to go for immutable string class: String在Java中被…
简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA代码,实现一个支持常用功能的正则表达式引擎.它支持贪婪匹配和懒惰匹配:支持零宽度字符(如"\b", "\B"):支持常用字符集(如"\d", "\s"等):支持自定义字符集("[a-f]","[^b-…
迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. 概述 Java集合框架的集合类,我们有时候称之为容器.容器的种类有很多种,比如ArrayList.LinkedList.HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组:LinkedList是链表结构的:HashSet依赖的是哈希表,每种容器都有自己特有的数据结构. 因为容器的内部结构不同,很多时候可能不知道该怎样去遍历一个容器中的元素.所以为了使对容器内元素的操…
本文翻译自:http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/ 这是一个很老但很流行的问题,这里有几个原因String在java中被设计成immutable的.对内存.同步.数据结构等有好的理解,能更好的回答这个问题.下面我将简单的介绍这些原因: 1, String Pool的需要. String pool(String intern pool) 是一个方法区里的特殊的存储区域.当创建一个String, 如果它…