<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】是Java编程的基础教程,主要涵盖了Java语言的核心概念和使用方法。在学习Core Java时,首先要理解以下几个关键知识点: 1. **类与对象**:类是面向对象编程的基础,是描述某一类事物共性的抽象,而...
CoreJava全套详细笔记资料.pdf CoreJava是Java编程语言的核心部分,涵盖了Java语言的基础知识和高级应用。以下是对给定文件的详细解读和知识点总结: 一、原码、反码、补码 * 原码是指一个数的二进制表示形式,...
Core Java 学习必备PPT(CoreJava教案)
core java 复习,简单的对core java 复习
Core Java for the Impatient 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
corejava核心技术中文版包1 corejava核心技术中文版
CoreJava是Java的基础,涵盖了Java Standard Edition (J2SE)的主要内容,包括基本语法、面向对象编程(OO)原则、核心类库的使用等。在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - ...
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 Java 1&2》是Java编程领域中两本非常经典的教材,分别对应于卷1和卷2,英文版提供了全面且深入的Java学习资源。这两本书由Cay S. Horstmann和Gary Cornell撰写,是许多程序员入门和进阶Java技术的重要参考书...
CoreJava基础及语法部分笔试题
CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 10 CoreJava DAY03 数组 20 CoreJava DAY04 27 CoreJava DAY05 面向对象 31 CoreJava DAY06 类的加载过程、实例化、继承、多态 37 CoreJava DAY07修饰...
新手们可通过示例代码学习core java
要想学习java corejava是java之旅的最重要的入门知识,本人在学习corejava中练习过的最重量级的代码! 希望对新手有所帮助!
core java /javaeecore java /javaeecore java /javaeecore java /javaee
CoreJava DAY01 Java概述 1 CoreJava DAY02 数据类型和控制结构 6 CoreJava DAY03 数组 11 CoreJava DAY04 15 CoreJava DAY05 面向对象 17 CoreJava DAY06 类的加载过程、实例化、继承、多态 20 CoreJava DAY07修饰...
《Core Java》是由Sun Microsystems公司出版的一本权威的Java编程教材,它全面深入地介绍了Java语言的核心概念和技术。这本书是Java开发者的重要参考资料,对于初学者和有经验的开发者都具有很高的学习价值。以下是...
《CoreJava上下册》是Java编程领域中备受推崇的入门教程,主要针对初学者和有一定经验的开发者,旨在深入理解Java语言的核心概念和技术。这本书分为两卷,分别涵盖不同的主题,以全面且易于理解的方式介绍Java编程的...
Core Java.ppt
corejava核心技术分卷压缩2corejava核心技术分卷压缩2