

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.java.lang.Object 类,是所有类的根父类!2.Object 类仅有一个空参的构造器public Object() 3.关于方法: equals(Object obj)public boolean equals(Object obj) return (this = obj);/ =/ 1. 基本数据类型:根据基本数据类型的值判断是否相等。相等返回true ,反之返回 false/ 注:两端数据类型可以不同,在不同的情况下,也可以返回 true 。/ 2. 引用数据类型:比较引用类型变量的地址值是否相等。/equals():只能处理引用类型变量在Object 类,发现 equal
2、s。仍然比较的两个引用变量的地址值是否相等像 String 包装类 File 类 Date 类这些重写 Object 类的 equals()方法,比较是两个对象的/ 实体内容 是否完全相同。若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true 的话,就需要重写 Object 类的equals(Object obj) 方法 toString() 方法当我们输出一个对象的引用时,会调用toString() 方法。1.public String toString() return getClass().getName() + + Integer.toHexString(hashCo
3、de();当我们没有重写 Object 类的 toString() 方法时,打印的就是对象所在的类,以及对象实体在 堆空间的位置2.一般我们需要重写 Object 类的 toString() 方法,将此对象的各个属性值返回。3.像 String 类、 Date、File 类、包装类都重写了 toString() 方法。1. String 类:不可变的字符序列(如: String str = atguigu; str += javaEE )1.关注于 String 常用的方法!2.String 类与基本数据类型、包装类;与字符数组、字节数组;* 1. 字符串 与基本数据类型、包装类之间转换* 字
4、符串 -基本数据类型、包装类 : 调用相应的包装类的parseXxx(String str);*基本数据类型、包装类-字符串:调用字符串的重载的 valueOf()方法* 2. 字符串与字节数组间的转换* 字符串 -字节数组 : 调用字符串的 getBytes()* 字节数组 - 字符串:调用字符串的构造器* 3. 字符串与字符数组间的转换* 字符串 - 字符数组:调用字符串的 toCharArray();* 字符数组 - 字符串 :调用字符串的构造器4.String 与 StringBuffer 的转换1String -StringBuffer :使用 StringBuffer 的构造器:
5、new StringBuffer(String str);2StringBuffer-String: 使用 StringBuffer 的 toString() 方法StringBuffer 类:可变的字符序列StringBuilder 类:可变的字符序列, jdk5.0 新加入的,效率更高,线程不安全。常用的方法:添加: append(.) 删除 delete(int startIndex, int endIndex) 修改:setCharAt(int n ,char ch) 查询: charAt(int index)插入 :insert(int index, String str) 反转 r
6、everse() 长度: length()注: String 类的不可变性:2.时间、日期类:2.1System 类 currentTimeMillis() :返回当前时间的 long 型值。此 long 值是从 1970 年 1 月 1 日0 点 0 分 00 秒开始到当前的毫秒数。此方法常用来计算时间差。2.2 Date 类: java.util.Date1. Date d = new Date();/ 返回当前时间的 Date: Mon May 12 15:17:01 CST 2014Date d1 = new Date(15231512541241L);/ 返回形参处此 long 型值
7、对应的日期/getTime() :返回当前日期对应的 long 型值。 toString()2.3SimpleDateFormat:java.text.SimpleDateFormat格式化 :日期 -文本 使用 SimpleDateFormat 的 format() 方法解析:文本- 日期 使用 SimpleDateFormat 的 parse()方法/1. 格式化 1SimpleDateFormat sdf = new SimpleDateFormat();String date = sdf.format(new Date();System.out.println(date);/14-5-
8、12 下午 3:24/2. 格式化 2SimpleDateFormat sdf1 = new SimpleDateFormat(EEE, d MMM yyyy HH:mm:ss Z); date =sdf1.format(new Date();System.out.println(date);/ 星期一 , 12 五月 2014 15:29:16 +0800/3. 解析:Date date1 = sdf.parse(14-5-12 下午 3:24);System.out.println(date1);datel = sdfl.parse(” 星期一 ,12 五月 2014 15:29:16 +
9、0800);/date1 = sdf1.parse(14-5-12 下午 3:24);System.out.println(date1);2.4 Calendar:日历类2.4.1 获取实例: Calendar c = Calendar.getInstance();2.4.2 get()/set()/add()/date getTime()/setTime()1对象的存储:数组(基本数据类型&引用数据类型) 集合(引用数据类型)数组存储数据的弊端:长度一旦初始化以后,就不可变;真正给数组元素赋值的个数 没有现成的方法可用。2.集合框架Collection 接口 :方法: add(Obj
10、ect obj),addAII(Collection coll),size(),clear(),isEmpty(); remove(Object obj),removeAll(Collection coll),retainAll(Collectioncoll),equals(Object obj),contains(Object obj)containsAll(Collection coll),hashCode()3iterator(),toArray();*|-List 接口:存储有序的,可以重复的元素.-相当于“动态”数组新增的方法: 删除 remove(int index) 修改 set
11、(int index,Object obj) 获取 get(int index)插入 add(int index,Object obj)添加进 List 集合中的元素(或对象)所在的类一定要重写equals。方法*|- ArrayList (主要的实现类)|-LinkedList (更适用于频繁的插入、删除操作)|- Vector (古老的实现类、线程安全的,但效率要低于ArrayList)*|-Set 接口:存储无序的,不可重复的元素。-相当于高中的“集合”概念Set 使用的方法基本上都是Collection 接口下定义的。添加进 Set 集合中的元素所在的类一定要重写equals()和 h
12、ashCode()。要求重写 equals()和 hashCode()方法保持一致。1.无序性:无序性! = 随机性。真正的无序性,指的是元素在底层存储的位 置是无序的。2.不可重复性: 当向 Set 中添加进相同的元素的时候, 后面的这个不能添加进 去。* |-HashSet (主要的实现类)|- LinkedHashSet( 是 HashSet 的子类,当我们遍历集合元素时,是按照添加进去的顺序实现的;频繁的遍历,较少的添加、插入操作建议选择此 )|- TreeSet (可以按照添加进集合中的元素的指定属性进行排序)要求 TreeSet 添加进的元素必须是同一个类的!两种排序方式: 自然排
13、序: 要求添加进 TreeSet 中的元素所在 的类 implements Comparable 接口重写 compareTo(Object obj) ,在此方法 内指明按照元素的哪个属性进行排序向 TreeSet 中添加元素即可。若不实现 此接口,会报运行时异常定制排序: 创建一个实现 Comparator 接口的实 现类的对象。在实现类中重写 Comparator 的 compare(Object o1,Object o2) 方法在此 compare() 方法中指明按照元素所 在类的哪个属性进行排序将此实现 Comparator 接口的实现类的 对象作为形参传递给 TreeSet 的构造器
14、中4向 TreeSet 中添加元素即可。若不实现 此接口,会报运行时异常要求重写的 compareTo()或者 compare。方法与 equals。禾口hashCode()方法保持一致。Map 接口:存储“键 -值”对的数据相当于高中的“函数 y = f(x)” (x1,y1) (x2,y2)key 是不可重复的,使用 Set 存放。value 可以重复的,使用 Collection 来存放的。一个 key-value 对构成一个 entry(Map.Entry) , entry 使用 Set 来存放。添加、修改 put(Object key,Object value) 删除 remove(
15、Object key) 获取 get(Object key) size() /keySet() values() entrySet()* |-HashMap :主要的实现类,可以添加 null 键, null 值|- LinkedHashMap :是 HashMap 的子类,可以按照添加进 Map 的顺序实现遍历|- TreeMap :需要按照 key 所在类的指定属性进行排序。要求 key 是同一个类的对象。对 key 考虑使用自然排序 或 定制排序|- Hashtable :是一个古老的实现类,线程安全的,不可以添加 null 键, null值不建议使用。|- 子类: Properties
16、 :常用来处理属性文件Iterator 接口:用来遍历集合 Collection 元素Collections 工具类:操作 Collection 及 Map 的工具类,大部分为 static 的方法。附: Properties 的使用Properties pros = new Properties();pros.load(new FileInputStream(new File(perties);String user = pros.getProperty(user);System.out.println(user);String password = pros.getProp
17、erty(password);System.out.println(password);1.泛型在集合中的使用(掌握)2.自定义泛型类、泛型接口、泛型方法(理解3.泛型与继承的关系4.通配符1.在集合中不使用泛型public void test1()List list = new ArrayList();list.add(89);list.add(87);list.add(67);/1.没有使用泛型,任何 Object 及其子类的对象都可以添加进来-使用)list.add(new String(AA);for(int i = 0;i list.size();i+)/2. 强转为 int 型时,
18、可能报 ClassCastException 的异常 int score = (Integer)list.get(i);System.out.println(score);2.在集合中使用了泛型public void test2()List list = new ArrayList();list.add(78);list.add(87);/ list.add(AA);/for(int i = 0;i list.size();i+)/int score = list.get(i);/System.out.println(score);/Iterator it = list.iterator();
19、while(it.hasNext()System.out.println(it.next();public void test3()Map map = new HashMap();map.put(AA, 78);map.put(BB, 87);map.put(DD, 98);SetMap.Entry set = map.entrySet(); for(Map.Entry o : set)System.out.println(o.getKey() + - + o.getValue();3.自定义泛型类:应用public class DAO public void add(T t)/.public
20、 T get(int index)return null;public List getForList(int index)return null;public void delete(int index)public class CustomerDAO extends DAO public class TestCustomerDAO public static void main(String args) CustomerDAO c = new CustomerDAO();c.add(new Customer();c.get(0);【注意点】1.对象实例化时不指定泛型,默认为:Object
21、。2.泛型不同的引用不能相互赋值。3.加入集合中的对象类型必须与指定的泛型类型一致。4.静态方法中不能使用类的泛型。5.如果泛型类是一个接口或抽象类,则不可创建泛型类的对象。6.不能在 catch 中使用泛型7.从泛型类派生子类,泛型类型需具体化4.泛型与继承的关系A 类是 B 类的子类,G 是带泛型声明的类或接口。那么G不是 GB 啲子类!5.通配符 :?A 类是 B 类的子类,G 是带泛型声明的类或接口。则 G是 G、GF 父类!以 List为例,能读取其中的数据。因为不管存储的是什么类型的元素,其一定是 Object类的或其子类的。以 List为例,不可以向其中写入数据。因为没有指明可以
22、存放到其中的元素的类型! 唯一例外的是: null6*. List :可以将 List的对象或 List的对象赋给 List。其中 B 是 A的子类? super A:可以将 List的对象或 List的对象赋给 List。其中 B 是 A 的父类|RuntimeException: 运行时异常1.体系结构java.lang.Object|- java.lang.Throwable|-java.lang.Error :错误, java 程序对此无能为力,不显式的处理|-java.lang.Exception: 异常。需要进行处理|-ArrayIndexOutOfBoundsException/
23、NullPointerException/ArithmeticException/ClassCastException|- 非 RuntimeException: 编译时异常2因为 java 程序分为 javac.exe 和 java.exe 两个过程,在每个过程中,都有可能出现异常。故 分为编译时异常、运行时异常2.1 对于运行时异常比较常见,可以不显式的来处理。2.2 对于编译时异常,必须要显式的处理编译时异常,不是说有异常才处理, 而是存在异常的隐患,必须在编译前,提示程 序,万一出现异常,如何处理!2.如何处理异常?java 中的“抓抛模型”* 1. 抛:当我们执行代码时,一旦出现异常
24、,就会在异常的代码处生成一个对应的异常类 型的对象,并*将此对象抛出。 (自动抛出/ 手动抛出 )*一旦抛出此异常类的对象,那么程序就终止执行*此异常类的对象抛给方法的调用者。* 2. 抓:抓住上一步抛出来的异常类的对象。如何抓?即为异常处理的方式*java提供了两种方式用来处理一个异常类的对象。*处理的方式一:*try*/可能出现异常的代码*catch(Exception1 e1)*/ 处理的方式 1*catch(Exception2 e2)*/ 处理的方式 2public void method2() throws Exception1 e1,Exception2 e2* finally*
25、 / 一定要执行的代码* * 注: 1.try 内声明的变量,类似于局部变量,出了 try 语句,就不能被调用*2.finally 是可选的。*3.catch 语句内部是对异常对象的处理:* getMessage(); printStackTrace();*4. 可以有多个 catch 语句, try 中抛出的异常类对象从上往下去匹配 catch 中的异常类的类型,一旦满足* 就执行 catch 中的代码。执行完,就跳出其后的多条 catch 语句*5. 如果异常处理了,那么其后的代码继续执行。*6.若 catch 中多个异常类型是 并列 关系,孰上孰下都可以。* 若 catch 中多个异常类
26、型是 包含 关系,须将子类放在父类的上面,进行处理。否 则报错!* 7.finally 中存放的是一定会被执行的代码,不管 try 中、 catch 中是否仍有异常未被处 理,以及是否有 return 语句。* 8.try-catch 是可以嵌套的。处理方式二:在方法的声明处,显式的使用 throws + 异常类型public void method1() throws Exception1 e1,Exception2 e2/ 可能出现异常(尤其是编译时异常,一定要处理)method1();public void method3()try method2();catch(Exception1 e1)System.out.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年阳泉事业单位真题
- 2025年量热仪合作协议书
- 2025江苏盐城幼儿师范高等专科学校招聘专业技术人员3人(二)考前自测高频考点模拟试题及答案详解(名师系列)
- 2025广西柳州市柳南区委社会工作部招聘专职化城市社区工作者16人模拟试卷及一套答案详解
- 2025江苏苏州国家历史文化名城保护区、苏州市姑苏区区属国资集团副总裁招聘2人考前自测高频考点模拟试题及答案详解(必刷)
- 2025春季中国南水北调集团水网智慧科技有限公司实习生招募6人考前自测高频考点模拟试题附答案详解(完整版)
- 哈佛家训读后感(15篇)
- 2025内蒙古考试录用特殊职位公务员及调剂考前自测高频考点模拟试题有完整答案详解
- 2025贵州金沙酱酒酒业投资集团有限公司招聘经理层高级管理人员(财务总监)1人考前自测高频考点模拟试题带答案详解
- 2025年临沂科技职业学院公开招聘教师和教辅人员(46名)模拟试卷及答案详解(全优)
- 高一上册第三单元《永遇乐 京口北固亭怀古》
- 店铺共享合伙人模式
- 2025-2030年中国山葵制品行业运行现状及发展前景分析报告
- 银行支行行长2025年度工作计划
- 二零二五年度污水运输与污水处理厂合作运营合同
- 2025年上教版八年级地理上册月考试卷
- 贸易安全课件
- 中职对口高考-机械类专业综合模拟卷( 湖北适用) 第5卷(答案版)
- 部编六年级上册快乐读书吧《童年》测试题(3份)(有答案)
- 霍尼韦尔Honeywell温控器UDC2500中文手册
- 临汾市尧都区招聘专职社区工作者笔试真题2023
评论
0/150
提交评论