- 博客(26)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 学习笔记(八)对象的集合(三)
《Java编程思想》整理的一些学习笔记,有不对的地方,欢迎指出。 1.容器的分类法。为满足变成的需求,Collection和Map有多种不同的实现(即有多种子类),常用的有Collection包含List,Set。其中List作为接口又被ArrayList和LinkedList等子类实现,Set作为接口又被HashSet等子类实现。Map被HashMap等子类实现。即与持有对象有关的接口是Col
2015-07-30 16:55:05 393
转载 Java 容器中的泛型
泛型Generics 所谓泛型,就是变量类型的参数化。 泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小的抛出ClassCastException的可能。 在JDK1.5中,你可以声明一个集合将接收/返回的对象的类型。 使用泛型时如果不指明参数类型,即泛型类没有参数化,会提示警告,此时类型为Object。
2015-07-30 10:18:21 404
转载 Java 容器与泛型
1、容器类JDK API中专门设计用来存储其他对象的类,一般称为对象容器类,简称容器类,这组类和接口的设计结构也被统称为集合框架(Collection Framework)。集合框架中容器类的关系如下图示:Set的三个常用实现类:HashSet类是Set接口实现类之一,使用较广泛,它不保存元素的加入顺序。HashSet类根据元素的哈希码进行存放,取出时也
2015-07-30 09:55:25 1757
转载 Java 泛型的详解
1. 概述在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。例如原先的类型List,现在在细分成List, List等更多的类型。注意,现在List, List是两种不同的类型,他们之间没有继承关系,即使String继承了Object。下面的代码是非法的 List ls = new Arra
2015-07-30 08:44:38 331
转载 Java 迭代器以及和for循环的比较
迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部.1.IteratorJava提供一个专门的迭代器>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器。Iterator接口实现后的功能是“使用”一个迭代器.
2015-07-30 08:39:38 4863
转载 Java Collection和Collections的区别
1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。 1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都
2015-07-30 08:16:08 379
原创 练习代码(八)对象的集合(二)
1.容器的打印package first;import java.util.*;public class PrintingContainers { //定义一个方法接受Collection对象,来保存对象. static Collection fill(Collection c){ c.add("dog"); c.add("dog");
2015-07-29 15:51:36 480
原创 学习笔记(八)对象的集合(二)
《Java编程思想》整理的一些学习笔记,有不对的地方,欢迎指出。 1.Java2 容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:1)Collection。一组独立的元素,通常这些元素都服从某种规则。List 必须保持元素特定的顺序,即按照对象进入的顺序,而Set不能有重复的元素,使用自己内部的排序方法。2)Map。一组成对的“键值对”对象,也就是关联数组。Map可以返回其所有键组成的
2015-07-29 15:38:46 369
原创 练习代码(八)对象的集合(一)
1.封装改写一下Arrays类。 package second;public interface Generator { Object next(); } package second;public interface BooleanGenerator { boolean next(); } package second;public interface ByteG
2015-07-28 18:32:50 399
原创 学习笔记(八)对象的集合(一)
《Java编程思想》整理的一些学习笔记,有不对的地方,欢迎指出。1.Java有很多方式保存对象(应该说是对象的引用),可以通过数组,Java实用类库还提供了一套相当完整的容器类(也称为集合类)。容器提供了完善的方法来保存和操纵对象。数组和其他种类的容器之间的区别有三方面:效率、类型和保存基本类型的能力。数组是一种效率最高的存储和随机访问对象引用序列的方式,但是由于固定大小,所以灵活性不高。Li
2015-07-28 13:16:53 485
转载 Java StringBuffer类
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
2015-07-28 09:35:49 312
原创 学习笔记(七)类型检查
《Java编程思想》整理的一些学习笔记,有不对的地方,欢迎指出。1.运行时类别检查:当只有一个指向对象基类的引用时,RTTI机制可以让你找出这个对象的确切类型。主要有两种方式:一种是“传统的”RTTI,它假定我们在编译时和运行时已经知道了所有的类型;另一种是“反射”机制,它允许我们在运行时获得类的信息。向下转型一般用在,假如你碰到了一个特殊的编程问题--如果能够知道某个类型的确切类型,就可以使
2015-07-27 12:13:11 482
转载 Java class对象的详解
java中把生成Class对象和实例对象弄混了,更何况生成Class对象和生成instance都有多种方式。所以只有弄清其中的原理,才可以深入理解。首先要生成Class对象,然后再生成Instance。那Class对象的生成方式有哪些呢,以及其中是如何秘密生成的呢?Class对象的生成方式如下:1.Class.forName("类名字符串") (注意:类名字符串必须是全称,包名+
2015-07-27 10:46:54 419
转载 java 对象的生命周期
在Java中,对象的生命周期包括以下几个阶段:1. 创建阶段(Created)2. 应用阶段(In Use)3. 不可见阶段(Invisible)4. 不可达阶段(Unreachable)5. 收集阶段(Collected)6. 终结阶段(Finalized)7. 对象空间
2015-07-18 07:15:19 353
转载 迪米特法则
定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么
2015-07-14 08:11:34 390
转载 接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:
2015-07-14 08:10:37 466
转载 单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T
2015-07-14 08:09:18 355
转载 开闭原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 开闭原则是面
2015-07-14 08:07:50 411
转载 里氏代换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子
2015-07-14 07:24:11 616
转载 依赖倒转原则--针对接口编程
在传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块;抽象层次依赖于具体层次。倒转原则就是要把这个错误的依赖关系倒转过来。依赖(或耦合)关系的分类:零耦合关系:如果两个类没有耦合关系,就称之为零耦合具体耦合关系:具体耦合关系发生在两个具体的(可实例化)的类之间,经由一个类对另一个类的直接引用造成。抽象耦合关系:抽象耦合关系发生在一个具体类和一个抽象类(
2015-07-13 18:44:34 1329
转载 UML关联关系和组合关系以及聚合关系的区别
正在学习uml,在网上找了这篇文章学习类之间的关系,虽然作者讲的已经很清楚,但我还是不能完全弄清楚他们之间的区别,尤其是关联、聚合、组合这三者的关系!!现在把这篇文章转载这里一遍深入了解类之间的关系1.种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。
2015-07-13 18:32:33 4294 1
转载 UML各种关系
泛化、实现、依赖和关联的区别传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系:a、实现表示类对接口的实现。UML图中实现使用一条带有空心三角箭头的虚线指向接口,如下:b、泛化表示类与类之间的继承关系、接口与接口之间的继承关系。UML图中实现使用一条带有空心三角箭头的实线指向基类,如下:c、依赖表现为函数中的参数(us
2015-07-10 08:08:22 505 1
原创 听课笔记(二)
1.三种基本流程结构:顺序结构、选择结构、循环结构。2.选择结构:if else(如果有两个else if的判断是一样的,只执行第一个,因为它条件满足就会跳出,不再执行下面的判断了)。switch(表达式)(注意是表达式,表达式需是广义的整型(byte,short,int,long,char),不可以是String,boolean,可以是char)case (后面跟的是常量,不可以是变
2015-07-09 07:53:50 408
原创 听课练习(二)
1.利用while循环来实现学生卡注册系统。package com.jereh2;import java.util.Scanner;public class Condition {public static void main(String[] args) {//定义变量分别表示学生的学号、年龄、身高,变量jadge用来判断.int num = 0,
2015-07-09 07:51:14 369
原创 听课练习(一)
1.判断输入的数是否是5的倍数。package com.jereh;import java.util.Scanner;public class Test_1 {public static void main(String[] args){ //输出一句话System.out.println("******请输入一个正整数******"); //实例化一个
2015-07-01 18:04:46 427
原创 听课笔记(一)
1.持久化:将瞬时状态(即内存,其包括变量,数组,集合)数据转向持久状态(即本地,其包括数据库,文件)。2.定义不同类型的变量:每个类型的大小不同,开辟的内存空间不同。3.使用变量的步骤:一,声明变量(开辟空间)。二,赋值(将值写入空间)。三,使用变量。4.自动类型转换规则:一、低级别→高级别byte→short→int→long→float→double 此外 char
2015-07-01 17:31:33 429
Windows JDK8 官方版本
2018-10-17
mysql驱动包 mysql-connector-java-5.1.7-bin.jar
2018-02-26
JDBC ojdbc14.jar 程序文件
2018-02-26
java基础面试笔试题及其答案
2018-02-06
《Java核心技术+卷1:基础知识(原书第9版)》
2018-02-06
计算机网络(谢希仁版)
2018-02-06
Redis入门指南
2018-02-06
spring+hibernate和spring+myBatis实现连接多个数据库,同时操作的项目
2017-12-07
AndroidStudio 编译时无限输出一种错误是怎么回事?
2015-09-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人