A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nan935682648 初级黑马   /  2018-4-14 21:32  /  554 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2018-4-20 11:29 编辑


【石家庄校区】萌新笔记

在类中重写Object类的 toString() 和equals()方法,eclipse提供了自动重写的选项
----------------------------
API的学习:从上往下,从根到其他
所有类的根类:Object类
----------------------------
hashCode()   哈希算法,散列算法:将一种事物算成数字,一对一
----------------------------
//获取字节码对象的方式 (应用之一:反射)
Student s = new Student();
//有对象
1.Class c1 = s.getClass();

--
//以下两种无对象
2.Class c2 = Student.class;

//非常灵活和方便,使用最多
3.Class c3 = Class.forName("com.itheima.Student");//需要抛出异常
//只要是一个类的字节码对象只有一个,地址值相同,无论多少对象

//地址值均相同
c1 == c2 true;
c1 == c3 true;

类全名的手动获取:1 2 3

获取到字节码对象相当于获取到类的定义,获取类中全部成员
-----------------------------
System类 三个方法:


> static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :
     从src源数组的srcPos索引开始,复制length个元素
从destPost位置开始将这些元素放至到dest数组中


>  static long currentTimeMillis()
      返回以毫秒为单位的当前时间
可以用来查看某一段程序运行时间:
                long start = System.currentTimeMillis();
                for (int i = 0; i < 10000; i++) {
                        System.out.println("hello world");
                }
                long end = System.currentTimeMillis();


>  static void exit(int status)
      终止当前正在运行的 Java 虚拟机
-----------------------------
Date类:
构造方法:
        Date():
        Date(long date):    1970-1-1 0:0:0代表O
------------------------------
# SimpleDateFormat类 :更像一个工具类,只不过需要创建对象,以对象代表模式


> 构造方法:
> 创建对象 同时指定模式
    - SimpleDateFormat()  //默认模式
    - SimpleDateFormat("yyyy年MM月dd日")




> 按照对象模式格式化Date对象
格式化方法:Date ---> String
        - String format(Date d)


> 按照对象模式解析字符串
解析方法 : String ---> Date
        - Date parse(String s)

-------------------------------
Calendar类 :日历类
根据日历进行计算
日历中月份从0开始
0        1        2        3        4        5        6        7        8        9        10        11
1月

通过get(int field)得到常量去对应字段 让系统根据字段判断
输入set(int field,int value)时也用Calendar类的字段去设置
ArrayList 也利用了自动装箱和自动拆箱

# 顶层开始学习 # 清溪浅水行舟,凉雨竹窗夜话
##############################结合老师笔记中体系结构 今日总结里####################################
# - 共性 #
- --------------------
ArrayList
         *  集合的体系结构:
         *          由于不同的数据结构(数据的组织,存储方式),所以Java为我们提供了不同的集合,
         *          但是不同的集合他们的功能都是相似,不断的向上提取,将共性抽取出来,这就是集合体系结构形成的原因
         *  
         *  体系结构:
         *                  怎么学习?最顶层开始学习,因为最顶层包含了所有的共性  
         *                  怎么使用?使用最底层,因为最底层就是具体的实现
        
        
         *                  接口与实现类存储的都是Object类型,只是可以通过泛型进行安全性检测
         *  
         *  Collection
         *  List
         *  ArrayList




----------------------
        集合可以存储所有类型的数据,泛型是为了安全性 存储的还是Object类型数据  
        
        - Collection c = new ArrayList();
        - Object[] objt = c.toArray();
        - 返回一个存储所有类型的数组,因为集合中存储类型就是Object
-----------------------


# - 迭代器 #:面向对象方式遍历

1. 不是操作数组,是对象调用方法(操作数组需要索引,但不是所有的集合都有索引)
1. 迭代器对象和集合对象是一对一的
1. 迭代器对象是集合对象的副本,迭代器迭代的是自己副本中的元素
- 因此可能因此引起  并发修改异常:
- 原因:
-         当使用集合对象进行修改时,迭代器对象判断出集合对象和自己长度不同,会产生并发修改异常
- 解决方法:
-         利用迭代器的修改方法进行修改元素,集合对象会自动匹配

Collection 中 Iterator没有添加方法,而且 Collection 中没有其他迭代器方法,因此作为父类引用无法调用其他迭代器方法。Iterator 子类接口 ListIterator 中迭代器具有 add()方法, List 中具有 ListIterator 方法,父类引用改为 List ,可以调用(或使用ArrayList 这就是使用时使用具体类,多态)


  

          Collection c = new ArrayList();
          Iterator it = c.iterator(); //返回此集合对象的迭代器对象


          List l = new ArrayList(); //多态的机制 所以修改父类引用
          ListIterator lit = l.listIterator();//返回此集合对象的迭代器对象
------------------------

##############################结合老师笔记中体系结构################################

#foreach : 增强for循环


- 一般用于遍历集合或数组
- 底层是迭代器实现的
-
                 for(元素的类型 变量 : 集合或者数组对象) {
                        可以直接使用变量;
                 }



#异常:安全机制
也是一种类
异常:不正常,我们在写代码的时候出现的编译或运行时的错误,帮助程序员定位错误、原因及类型
异常的体系结构:
        - 关注顶层如何分类的
异常输出信息详解:
处理:
        1.系统默认 :
                如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因还有位置显示在命令行  并且还终止了程序,异常后面的代码将不在执行

        2.自己手动(两种)
        - 捕获处理
                try...catch 语句
                try{
                        有可能出现问题的代码;
                } catch(异常类型 异常对象名){
                        处理异常;
                }
               
                try...catch执行顺序:
        - 异常的抛出
                - 谁调用方法谁处理
                - 从主方法抛出异常就是让虚拟机处理


#Throwable的常用方法:
        String getMessage()  
        String toString()  
        void printStackTrace()
finally:组合try...catch使用,无论是否捕获异常一定执行,用于释放资源等收尾工作 --例如:IO流的标准编写
#异常的分类:
        Exception:
        RunTimeException:
#throws  与 throw
        throws :处理异常的一种方式,把异常抛出,由调用者来处理 ,在方法声明中
        throw:制造异常的方式,并且结束方法,在方法中
- throw:
        抛出一个异常对象,抛出运行时异常可以不处理,运行时JVM会抛出并停掉程序
        抛出编译时异常必须处理,throws 或者try...catch
#异常的抛出与处理原理:
        当不满足条件或者出错时 需要throw一个异常对象(通过创建匿名对象,调用构造方法,所有子类的构造方法均super(...)父类RunTimeException或Exception)
        构造方法中的参数是为了给父类提供原因 即 String getMessage()  的返回值。抛出的异常解决方法参考上文

#自定义异常类  (来处理自己的异常,给出原因)
        -继承 Exception:
                定义不同的构造方法,来向父类提供原因,抛出此异常的对象时需要立即处理

        -继承 RunTimeException:
                定义不同的构造方法,来向父类提供原因,抛出此异常的对象时可以不立即处理

-------------------------------------------
#递归

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马