`

java高级基础备忘

阅读更多
props.load(new   FileInputStream("db.properties"));   是读取当前目录的db.properties文件   
getClass.getResourceAsStream("db.properties");   是读取当前类所在位置一起的db.properties文件   
getClass.getResourceAsStream("/db.properties");   是读取ClassPath的根的db.properties文件,注意ClassPath如果是多个路径或者jar文件的,只要在任意一个路径目录下或者jar文件里的根下都可以,如果存在于多个路径下的话,按照ClassPath中的先后顺序,使用先找到的,其余忽略.


/**method one */
//URL DATABASE_CONFIG = ConnectionManager.class.getResource("/privilegeConfig.properties");            
//is = new FileInputStream(DATABASE_CONFIG.getFile());
 /**method two */
// is =  ConnectionManager.class.getResourceAsStream("/privilegeConfig.properties");
/**method three */
is = new BufferedInputStream(new FileInputStream(ResourceUtils.getFile("classpath:" + filePath)));
props.load(is);




集合转换数组和集合内部排序
	     Map<String, Integer> errRecords = new HashMap<String, Integer>();
	     errRecords.put("test", 1);
	     errRecords.put("test1",4 );
	     errRecords.put("test2",55 );
	     errRecords.put("test3", 33); 
	     errRecords.put("test4",2 );
	     errRecords.put("test5",6);
	     errRecords.put("test6", 787);	     
	     Integer[] errs = errRecords.values().toArray(new Integer[0]);
	        Arrays.sort(errs, new Comparator<Integer>()
	                {
	                    public int compare(Integer o1, Integer o2)
	                    {

	                        return o2.intValue() - o1.intValue();
	                    }
	                });
	     
		for (int i = 0; i < errs.length; i++) {
			System.out.println(errs[i].toString());
		}








幽灵引用 -- 好强大的文章

http://www.iteye.com/topic/401478


ThreadLocal -- 非常全面解释了这个怪东东

http://www.iteye.com/topic/103804



Concurrent -- 并发啊

http://www.iteye.com/topic/363625



泛型 -- 泛型一箩筐

http://www.java3z.com/cwbwebhome/article/article5/tiger2.jsp



Comparator和Comparable -- 这个怪叔叔不算高级了,但是可以深入的了解一下它类似的设计模式 -- 策略模式。。如有兴趣还要把它和枚举放到一起

http://www.blogjava.net/fastunit/archive/2008/04/08/191533.html



public abstract class Enum<E extends Enum<E>>   
        implements Comparable<E>, Serializable   

public abstract class Enum<E extends Enum<E>>
        implements Comparable<E>, Serializable 


ListIterator -- 怪东东,虽然不难,但我竟然没有听过,更别提用过了。看看JDK源码中关于list的reverse实现

public static void reverse(List<?> list) {   
        int size = list.size();   
        if (size < 18 || list instanceof RandomAccess) {   
            for (int i=0, mid=size>>1, j=size-1; i<mid; i++, j--)   
                swap(list, i, j);   
        } else {   
            ListIterator fwd = list.listIterator();   
            ListIterator rev = list.listIterator(size);   
            for (int i=0, mid=list.size()>>1; i<mid; i++) {   
        Object tmp = fwd.next();   
                fwd.set(rev.previous());   
                rev.set(tmp);   
            }   
        }   
    }   
  
    public static void swap(List<?> list, int i, int j) {   
    final List l = list;   
    l.set(i, l.set(j, l.get(i)));   
    }  

public static void reverse(List<?> list) {
        int size = list.size();
        if (size < 18 || list instanceof RandomAccess) {
            for (int i=0, mid=size>>1, j=size-1; i<mid; i++, j--)
                swap(list, i, j);
        } else {
            ListIterator fwd = list.listIterator();
            ListIterator rev = list.listIterator(size);
            for (int i=0, mid=list.size()>>1; i<mid; i++) {
		Object tmp = fwd.next();
                fwd.set(rev.previous());
                rev.set(tmp);
            }
        }
    }

    public static void swap(List<?> list, int i, int j) {
	final List l = list;
	l.set(i, l.set(j, l.get(i)));
    } 

写道
List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面:

1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能

2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。

3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。

4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。

因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。其实,数组对象也可以用迭代器来实现。



你真的理解finally了吗,看看这篇文章后,你或许不会这么自信了

http://zangxt.iteye.com/blog/421508



Java类加载机制 -- 很好的博文

http://lavasoft.blog.51cto.com/62575/184547

分享到:
评论

相关推荐

    java开发备忘录

    Java开发备忘录是程序员在进行Java编程时的重要参考资料,它涵盖了从基础知识到高级特性的全方位内容。以下是一些关键的Java开发知识点,基于提供的信息,我们无法获取具体子文件的详细内容,所以将根据Java的常规...

    备忘录JAVA代码

    为了持久化数据,Java的IO流或者更高级的序列化技术,如JSON或XML,可以用来将备忘录数据写入文件。 当用户再次点击同一日期时,程序需要能读取并显示之前保存的备忘录。这需要熟练掌握文件读取操作,如使用...

    高级java工程师面试考纲,java高级工程师进阶知识地图

    通过以上知识点的学习,高级Java工程师不仅能够具备扎实的基础技能,还能够在面对复杂的软件开发任务时,更加从容不迫,有效地解决问题。此外,对于希望在Java领域进一步提升自己的开发者来说,这些知识也是不可或缺...

    Java高级部分教材

    ### Java高级部分教材知识点概述 ...《Java高级部分教材》深入介绍了设计模式的基础概念及其应用场景,为读者提供了丰富的实践指导。此外,该教材还提供了多个实际案例,帮助读者更好地理解和应用这些模式。

    小小工具箱-(备忘录,日历,倒计时)(java源代码)

    Java中可以使用文件系统、SQLite数据库或是更高级的持久化框架如JPA(Java Persistence API)。 5. **线程与并发**:倒计时功能可能需要后台线程来运行,以避免阻塞主线程。这需要用到`Thread`类或`ExecutorService...

    java面试——深圳-乐信-Java高级.zip

    在Java高级面试中,面试官通常会关注候选人在核心Java、多线程、集合框架、JVM内存管理、设计模式、数据库操作、网络编程、异常处理、IO流、Spring框架及其实现原理等方面的知识掌握程度。以下是根据这些关键点展开...

    手机备忘录

    开发过程中,不断学习和实践,理解Android系统的工作原理,掌握更多高级特性,是成为一名优秀Android开发者的重要途径。希望这个项目能对大家的学习有所帮助,也欢迎参考和改进,共同推进Android应用的创新和发展。

    Java_Android面试的备忘单.zip

    Java 和 Android 面试备忘单包含了这两个领域中最重要的知识点和常见面试问题。下面将对这些关键概念进行深入解析。 一、Java 基础 1. **数据类型**:Java 分为基本数据类型(如 int, char, boolean)和引用数据...

    android备忘录源码

    在Android平台上,开发一款备忘录应用是...总结,"android备忘录源码"提供了一个很好的学习平台,涵盖了Android应用开发的基础和进阶知识。通过深入研究和实践,你将能够提升Android开发技能,理解和构建更复杂的项目。

    Android备忘录系统的开发

    在Android平台上,开发一个备忘录系统是一项常见的实践任务,对于初学者来说,这是一个极好的学习项目,因为它涵盖了Android开发的基础知识以及一些高级特性。在这个实例中,我们将深入探讨如何构建这样一个系统,从...

    java系统程序说明文档

    - 系统由基础信息管理、人事管理、备忘记录管理、数据库管理、管理工具和系统管理六大模块组成。 - 基础信息管理涉及部门类别、职工类别、文化程度、政治面貌等信息的设置和管理。 - 人事管理涵盖人事档案、资料...

    JAVA基础面试大全.doc corejavanetbook.doc jsp技术大全.pdf

    这可能是对Core Java的笔记整理,包含了对Java核心概念的详细解析,例如类库的使用、高级特性(如泛型、注解、枚举等)以及实战技巧。这类笔记对于学习和复习Java知识非常有帮助。 6. **java基础类型面试题大全....

    个人笔记--JAVA基础

    Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。它被设计为简单、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和支持动态的网络计算环境。Java的目标之一是...

    JAVA简易日历

    在Java中,`java.util.Calendar`是一个抽象类,提供了高级的日期和时间操作功能。在本示例中,我们使用`GregorianCalendar`,它是`Calendar`的子类,基于公历系统。`GregorianCalendar`对象初始化为当前的日期和时间...

    Java语言万年历课程设计大全

    - 巩固课堂所学的Java基础知识,深入理解面向对象的概念; - 锻炼学生运用面向对象思想和设计模式解决实际问题的能力; - 掌握JDK和JCReator等开发工具的使用; - 提升学生对Java类库的熟悉度; - 通过实践项目...

    java设计模式(疯狂java联盟版)

    Java设计模式是软件工程中的一种重要思想,它总结了在解决特定问题时,程序员们反复使用的最佳实践。...设计模式的熟练掌握也是成为高级Java开发者的必备条件之一,对于个人职业发展有着显著的推动作用。

    Java面试题资料

    4. **多线程**:Java并发编程是高级面试中的常见问题,涉及线程的创建、同步机制(synchronized, volatile, Lock等)、线程池的使用及原理(ExecutorService, ThreadPoolExecutor, ScheduledExecutorService)。...

    Android备忘录记事本,又加工了一下

    在Android平台上,开发一款记事本或备忘录应用是一个常见的练习项目,它能帮助用户记录日常生活中的琐事。这个项目名为"SimpleNotePad",显然是一款基础的文本编辑应用,适合初学者入门学习。接下来,我们将深入探讨...

    JAVA试题大全

    这个资源涵盖了Java的基础知识、进阶概念以及实际应用,对于提升Java技能水平和应对各种技术面试具有很高的参考价值。 一、Java基础知识 1. 类与对象:理解面向对象编程的基本概念,如类的定义、对象的创建与销毁。...

Global site tag (gtag.js) - Google Analytics