`
hanwesley
  • 浏览: 59452 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

corejava小结 2009年5月9日

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

1、杂七杂八,序

参加培训几乎有2个多月了,一直都很认真的在培训,培训的事情没有告诉家人,一直都和女朋友相依为命,真的很感谢女朋友在这段时间里能够跟我同甘共苦,尽管有时候她也会抱怨,发脾气,但是过了还是很好的!

说起java语言,大学时候就开始接触了,但是一直没有认真学习,没有踏踏实实学习,真的很后悔!

还好,在贵州的志愿者服务我提前结束了,几乎在同期志愿者结束服务期的时候我培训也就结束了,相比那个时候也就是今年7,8月的时候我可能会庆幸当时中止服务期是明智的决定。尽管当时贵州有一批好同志,好同事,值得留念的山山水水,但是我的事业不能耽误啊!也许是比较自私了点吧。呵呵


2、core Java知识


2.1 类库

不像面向过程的语言,java语言的最大优点就是面向对象,按照常人的逻辑思维来编写代码,来用代码来实现实际中相应的逻辑问题,不需要考虑计算机底层是如何运作的,当然也不是完全不知,但是作为java程序员,应该更多的是解决商业领域中的实际项目难题和项目需求,而不应该沉迷于java语言本身,学习java语言更多的应该是学习面向对象的逻辑思维能力和方式。

面向对象的三大特征就是封装,继承,多态,其中继承是核心,多态的基础是继承,多态是父类引用指向子类对象,即子类可以当做父类的一个引用来处理。而封装就是对某些属性或方法隐藏,为外部提供更加安全有效的方法来操纵本类方法或属性。封装是软件设计时重点考虑的,相对应,多态是编码时重点考虑的。

java类库为程序员提供了很多基础实现,在实际开发中灵活应用这些方法,尽量减少自己写一些重复代码,呵呵,所谓不发明新轮子嘛!类库很庞大,也不是一下子就能掌握的,但是最基本的,java.lang,java.util,java.io等包应该滚瓜烂熟,编写代码不允许设计这些类库的方法或类还要去查阅API,否则没有一家公司会愿意接受你。

Objcet是java语言的根,其他所有类都是Object类的子类,在java语言中仅支持单继承,继承的主要目的是继承父类类型,而非继承父类代码,也就是说,只有子类 is a 父类时才考虑继承,java语言引入单继承的目的就是防止程序员为了继承代码而用继承,使类层次变得庞大,不易维护。同时,java语言引入接口机制来解决多重继承,接口中只有规范和定义没有具体实现,因此不担心程序员为了复用代码而继承多个接口。

一般重写Object中的boolean equals(Object obj),int hashcode(),String toString(),Object Clone(Object obj)方法。


2.2 Collection集合接口,List(有序有重复) ,Set(无序无重复)

List,Set是Collection接口的子接口,Collection接口实现了Iterable(可迭代)接口

List的主要实现类 1、ArrayList 可变长数组,查询快,插入删除慢 2、LinkedList 底层链表 插入删除快,查询慢

Set的主要实现类 1、HashSet 底层hash表,查询快

SortedSet是Set的子接口,其中TreeSet是SortedSet的实现类,TreeSet底层为平衡二叉树实现,对集合中的元素已经排序,排序原则按照先比较hashCode方法,如果hashCode值在集合中已经存在则丢弃,否则比较equals方法,相等则舍弃,否则加入链中。TreeSet默认以java.lang.comparable接口中的CompareTo(T t)方法比较,也可以在构造参数中指定以Comparator接口中的compare(T t1,T t2)方法比较。

Map接口,设计的主要目的是查找表,以键值对存储,其中键不能重复,值可以重复。Map接口与Collection接口无关,Map中添加元素用put(Object o1,Object o2)方法

Map实现类:1、HashMap 底层以hash表实现,2、TreeMap底层为平衡二叉树,对建进行排序,排序方式类似TreeSet的比较方式。

Iterator(迭代器)就是对集合中的元素进行遍历访问,hasNext()方法判断是否还有下一个元素,不移动指针,next()移动指针到下一个元素,在迭代器中可以remove一个元素,但是不能在迭代中同时调用集合remove方法和迭代器remove方法,会抛出java.util.ConcurrentModificationException。


2.3 Exception 异常

在Java中引入Exception(异常机制)主要是为了处理错误,可以提高系统的容错性。Exception分检测异常check Exception和运行时异常RuntimeException。运行时异常是编译时无法解决,只能在运行时才会被发现或抛出;检测异常在编译时受检。

解决办法:1、throws方式,向上抛出异常,交由调用他的方法处理,如果上层还不处理,程序中止;

2、try{}catch(Exception e){}finally{},一旦发现异常,即捕获异常,其他代码任然继续执行,加finally块后,finally内代码一定会执行,因此不要在finally中return,return会覆盖try,catch,将真正的异常“吃掉”。

自定义业务异常,在具体系统中考虑定义系统业务异常,而不是给客户抛底层API异常,自定义异常是先继承一个Exception类或子类并写无参构造和带String参数的构造方法。

2.4 内部类
内部类可以定义在类体,方法,参数等位置,可以有方法名,或无方法名。无方法名的叫匿名内部类。

内部类可以用来解决多重继承,

引用最广的还是TreeSet和TreeMap的比较器,因为比较器只对该方法有效,因此这种一次调用即失效的方式很好。并且是一种设计良好的回调模式。在本方法中调用某接口的方法实现相应功能。

2.5 面向接口编程

抽象出不变性,封装可变性。

面向接口编程是一种思想的用于实现多态性,提高软件灵活性和可维护性的架构部件。


接口可以用于回调

抽象类和接口异同点:

两者相同点(书上都是这么说的):
都不能被直接实例化,都可以通过继承实现其抽象方法。
都是面向抽象编程的技术基础,实现了诸多的设计模式。

不同点:
接口支持多继承;抽象类不能实现多继承。
接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。

分享到:
评论

相关推荐

    Core Java

    【Core Java】是Java编程的基础教程,主要涵盖了Java语言的核心概念和使用方法。在学习Core Java时,首先要理解以下几个关键知识点: 1. **类与对象**:类是面向对象编程的基础,是描述某一类事物共性的抽象,而...

    CoreJava全套详细笔记资料.pdf

    CoreJava全套详细笔记资料.pdf CoreJava是Java编程语言的核心部分,涵盖了Java语言的基础知识和高级应用。以下是对给定文件的详细解读和知识点总结: 一、原码、反码、补码 * 原码是指一个数的二进制表示形式,...

    Core Java 学习必备PPT(CoreJava教案)

    Core Java 学习必备PPT(CoreJava教案)

    core java 复习总结

    core java 复习,简单的对core java 复习

    Core Java for the Impatient azw3

    Core Java for the Impatient 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    corejava核心技术

    corejava核心技术中文版包1 corejava核心技术中文版

    java\CoreJava笔记\CoreJAVA_day01

    CoreJava是Java的基础,涵盖了Java Standard Edition (J2SE)的主要内容,包括基本语法、面向对象编程(OO)原则、核心类库的使用等。在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - ...

    Java 核心技术 第八版-第1和2卷+源代码【Core Java 8th Edition】

    Java 核心技术 第八版-第1和2卷+源代码【Core Java 8th Edition】内附资源: Core Java. Volume I. Fundamentals, 8th Edition.pdf ; Core Java. Volume II. Advanced Features, 8th Edition.chm ; Core Java 8th ...

    core java1&2

    《Core Java 1&2》是Java编程领域中两本非常经典的教材,分别对应于卷1和卷2,英文版提供了全面且深入的Java学习资源。这两本书由Cay S. Horstmann和Gary Cornell撰写,是许多程序员入门和进阶Java技术的重要参考书...

    CoreJava面试题

    CoreJava基础及语法部分笔试题

    达内 CoreJava老师笔记汇总

    CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 10 CoreJava DAY03 数组 20 CoreJava DAY04 27 CoreJava DAY05 面向对象 31 CoreJava DAY06 类的加载过程、实例化、继承、多态 37 CoreJava DAY07修饰...

    core java 示例代码

    新手们可通过示例代码学习core java

    java--corejava学习黄金代码

    要想学习java corejava是java之旅的最重要的入门知识,本人在学习corejava中练习过的最重量级的代码! 希望对新手有所帮助!

    core java/javaee

    core java /javaeecore java /javaeecore java /javaeecore java /javaee

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 6 CoreJava DAY03 数组 11 CoreJava DAY04 15 CoreJava DAY05 面向对象 17 CoreJava DAY06 类的加载过程、实例化、继承、多态 20 CoreJava DAY07修饰...

    Core Java( Java 核心) PDF 教材

    《Core Java》是由Sun Microsystems公司出版的一本权威的Java编程教材,它全面深入地介绍了Java语言的核心概念和技术。这本书是Java开发者的重要参考资料,对于初学者和有经验的开发者都具有很高的学习价值。以下是...

    CoreJava上下册

    《CoreJava上下册》是Java编程领域中备受推崇的入门教程,主要针对初学者和有一定经验的开发者,旨在深入理解Java语言的核心概念和技术。这本书分为两卷,分别涵盖不同的主题,以全面且易于理解的方式介绍Java编程的...

    Core Java.ppt

    Core Java.ppt

    corejava核心技术分卷压缩2

    corejava核心技术分卷压缩2corejava核心技术分卷压缩2

Global site tag (gtag.js) - Google Analytics