重温经典-JAVA(4)

Java核心类与泛型详解

Object类、常用API

Object类的equals方法,默认比较的是两个对象的地址值,没有意义。所以我们要重写equals方法,比较两个对象的属性。

多态的弊端:无法使用子类特有的内容(属性和方法)。解决:可以使用向下转型(强转)把obj类型转换为子类类型。类型判断instance of。

java.util.Date:表示日期和时间的类。Date()获取当前系统的日期和时间。Date(Long date):;传递毫秒值,把毫秒值转换为Date日期。Long  getTime()把日期转换为毫秒值。

java.text.DateFormat:是日期/时间格式化子类的抽象类。格式化(日期->文本)、解析(文本->日期)。

成员方法: String format(Date date)、  Date parse(String source)

DateFormat 类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类SimpleDateFormat

SimpleDateFormat(String pattern)

pattern模式区分大小写:y年,M月,d日,H时,m分,s秒。

举例

注意parse方法声明了一个异常。若字符串和构造方法的模式不一致时抛出。

 

java.util.Calendar类是一个抽象类,里面提供了很多操作日历字段的方法。它无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象。如:Calendar c=new Calendar.getInstance ();

java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。常用方法有,public static long currentTimeMillis() 和public static void arraycopy(参数)。

String类和StringBuilder类的区别:

String类:字符串是常量;它们的值在创建之后不能更改。字符串的底层是一个被final 修饰的数组,不能改变,是一个常量。privat final byte[ ] value;

StringBuilder类:字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变换的字符串)底层也是一个数组,但是没有被final修饰,可以改变长度。byte[] value=new byte[16] 超出容量会自动扩容。 public StringBuilder append()

String类和StringBuilder类可以互相转化。StringBuilder(String),StringBuilder.toString()

 

包装类:基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据,可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类。我们可以使用类中的方法来操作这些基本类型的数据。

装箱:把基本类型的数据,包装到类中(基本类型的数据-->包装类)方法如:Integer(int value), Integer a=Integer.valueof(int a)

拆箱:在包装类中取出基本类型的数据(包装类-->基本类型的数据)方法如:a.intvalue()

JAVA中可自动装拆箱。如Integer a=1;a=a+5;

Collection、泛型

Collection 常用功能:add,clear,remove,contains,isEmpty,size,toArray。

Iterator 迭代器

Collection 集合元素的通用获取方式。常用方法,hasnext,next。

Iterator迭代器是一个借口,无法直接使用,需要使用Iterator接口的实现类对象。如 Iterator<string> it =list.iterator()。

增强for 

增强for循环也叫for each 循环,是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合。内部原理是Iterator迭代器,所以在遍历过程中不能对集合元素进行增删操作。

格式:

for (集合/数组的数据类型 变量名:集合名/数组名){}

泛型——是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型。泛型也可以看出是一个变量,用来接收数据类型。

创建集合对象,使用泛型好处:1.避免了类型转换的玛法,存储的是什么类型,取出的就是什么类型。2.把运行期异常,提升到了编译期。弊端:泛型是什么类型,只能存储什么类型的数据。不使用泛型的好处:默认的类型是Object类型,可以存储任意类型的数据。弊端:不安全,会引发异常。

定义泛型类:如public class GenericClass<E>{private E name;public E getName{}}

定义泛型方法:public E getName{};

定义泛型接口两种方式:如  public interface Iterator<E>{}  public final class Scanner implements Interator<String>和public interface List<E>{} publice class Arralist<E> implements List<E>{}。区别:实现类有没有指定泛型的类型。若没有制定,在创建对象的时候指定。

泛型通配符:? 代表任意的数据类型。使用方式:不能创建对象使用,只能作为方法的参数使用。

受限泛型:

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值