<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 MS Word版
java\CoreJava笔记\CoreJAVA_day01.doc 学习 借鉴
CoreJava高级部分CoreJava高级部分CoreJava高级部分CoreJava高级部分CoreJava高级部分CoreJava高级部分CoreJava高级部分CoreJava高级部分CoreJava高级部分
java\CoreJava笔记\CoreJava_day06.doc
java\CoreJava笔记\CoreJava_day11.doc
CoreJava CoreJava CoreJava 基础学习
J2SE 的学习者可以参考笔记,希望你成为高手,牛人。
Core Java 学习必备PPT(CoreJava教案)
core java 复习,简单的对core java 复习
corejava代码
CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)CoreJava新手笔记(全)
Core Java for the Impatient 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
The release of Java SE 8 introduced significant enhancements that impact the Core Java technologies and APIs at the heart of the Java platform. Many old Java idioms are no longer required and new ...
corejava核心技术中文版包1 corejava核心技术中文版
core java I,II源码
core java 的源代码 可以配合core java 使用-core java source code will be in line with the use of core java
java\CoreJava笔记\CoreJava_day12.doc
CoreJava核心 源码CoreJava核心 源码CoreJava核心 源码CoreJava核心 源码CoreJava核心 源码
Core Java Java的基本知识,入门的好资料 Core Java Java的基本知识,入门的好资料
主要用于CoreJava试题,可以帮助同学们更好的学习Java的核心知识。