java程序设计与问题解决(高级篇)-读书笔记-3

Java向量的两个问题:1.向量的基类型必须是类类型(基本类型必须使用对应的包装类) 2.它的效率比数组低

 

使用Java向量需要import java.util.*;

 

Java向量的setElementAt和elementAt两个方法所起的作用于方括号对数组所起的作用基本相同

setElementAt是用来修改元素值而不是首次设置这些元素的,首次设置元素时,通常要使用方法addElement,这个方法顺序添加元素

所以v.setElementAt(“Himom!”, index);并不完全类似于a[index]= “Hi mom!”;

 

“只有添加基类型的元素才是有意义的,但从某种意义上来说,删除任意类型的元素是有意义的”,这是造成Vector类中的方法有的以Base_Type类型为形参,有的以Object类型为形参的原因(想)。参数类型中这些微小的细节使方法可以适用于包含了不同类型的集合之间交互的更大的领域

 

向量会自动增加其容量,容量的增加可能会超出程序的需求,当程序需要向量具有较小容量时,可以用方法setSize和trimToSize来缩减向量的容量以节省内存

 

对向量使用赋值语句并不会生成向量副本,要生成副本需要使用clone方法,因为clone方法返回的是一个Object类型的值,所以一般需要强制类型转换

otherV = (Vector<String>)v.clone();

 

要使向量类的clone方法运行良好,向量的基类型的必须要有运行良好的clone方法,不然向量的克隆只会简单地复制向量中元素的内存地址而不是实际的元素

 

Java新添加了一组名为集合类的新类,这个类实现了Collection接口

 

类包含自身的引用在Java中是完全合法的

 

链表中除head外,其他节点都是没有名字的,这些节点只能间接引用,如head.link.link

 

一开始链表是空的,在添加第一个节点之前,给head赋值null(p123的例子很好)

 

NullPointerException异常说明代码试图访问类变量的某个成员(实例变量或者方法),但那个类变量没有命名任何对象。这个异常不需要添加一个catch块,而是需要对代码进行修正

 

方法返回对类类型私有实例变量的引用的情况下,会出现隐私问题,需要避免这种情况。这个私有实例变量是String的情况下是个特例,因为String类中没有允许用户(不改变引用,就)改变字符串值的方法

 

内部类就是在其他类中定义的类,内部类定义所在的类是外部类。在外部类定义之外就不能使用这个类了

 

Java内部类和外部类的方法都可以访问对方的方法及实例变量,即使是私有的也可以

 

c++内部类与java内部类最大的区别就是:c++的内部类对象没有外部类对象的指针,不能访问外部类对象的非静态成员;java的非静态内部类对象有外部类对象的指针,能访问外部类对象的非静态成员。

 

Java允许定义中带有表示类型的参数,这被称为泛型,泛型类似模板类

 

如果用选项-Xlint进行编译,就能收到更多警告信息,使用类型参数会遇到很多陷阱,一般使用这个编译选项会更好

 

假设泛型的类型参数为T,则在这个泛型中的语句 T[] a = new T[length()],T[] a =new T()是非法的,并且都是第二个T导致的非法


奋斗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值