黑马程序员技术交流社区

标题: 【成都校区】 [打印本页]

作者: 643605712    时间: 2018-12-12 21:27
标题: 【成都校区】
基础加强培训的第一周,下面是这几天学习到的主要内容(自己上课时做的一些笔记和综合了一点老师写的总结):
Object
        Object类,在java.lang包下是所有类的直接和间接的父类
        其中包括了我们常用的toString方法和equals方法
        覆盖重写Object类中的两个方法
       
        Public String toString(Object obj);  返回该类型的字符串
        Public String equals(Object obj);    指示其他某个对象是否与此对象相等

Date:时间类
        java.util.Date:表示时间的类
        Date 表示特定的时间,精确到毫秒
        毫秒:精确到千分之一秒 1000毫秒 =1
       
毫秒值的作用:可以对时间和日期进行计算
      把日期转换为毫秒:
    当前的日期:2088-01-01
    时间原点(0毫秒):1970 1 1 00:00:00(英国格林威治)
    就是计算当前日期到时间原点之间一共经历了多少毫秒 (3742767540068L)
Date构造方法
        public Date(){}
                创建对象Date d = new Date();
                                System.out.println(d); //已固定格式返回当前系统的日期和时间
        public Date(long date){}
                创建都行 Date d = new Date (3742767540068L);//指定毫秒值
                                System.out.println(d);//打印指定毫秒值所对应的时间日期
Date 成员方法
        public long getTime(); 获取当前时间的毫秒值

DateFormat
        Java.textDateFormat 是对日期/时间按照指定格式,格式化。(抽象类,无法直接创建对象)
        解析:按照指定的格式,从Date对象转换成String对象
其中的成员方法
        String format(Date date) 按照指定的模式,把Date日期,格式化为符合模式的字符串        
        Date parse(String source) 把符合模式的字符串,解析为Date日期
SimpledateFormat
        java.text.SimpleDateFormat包下父类是DateFormat
构造方法
        public SimpleDateFormat(String pattern)
        用给定的模式和默认的语言环境日期格式符号构造 SimpleDateFormat
参数:String pattern  传递指定的模式
常用的格式规则
标识字母(区分大小写)     含义
        y                                                
        M                                               
        d                                               
        H                                               
        m                                               
        s                                               
写对应的模式,会把模式替换对应的日期和时间
        “yyyy-MM-dd HH:mm:ss”
注意:
        模式中的字母不能改变,链接模式的符号可以改变
        “yyyyMMdd日  HHmmss

Calendar类 (抽象类)
        java.util.Calendar类是一个日历类
        Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEARMONTHDAY_OF_MONTHHOUR )
Calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象
static Calendar getInstance() 使用默认时区和语言环境获得一个日历。
System
        java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有
    public static long currentTimeMillis():返回以毫秒为单位的当前时间。
    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。
    参数
    src - 源数组。
    srcPos - 源数组中的起始位置(起始索引)
    dest - 目标数组。
    destPos - 目标数据中的起始位置。
    length - 要复制的数组元素的数量。
包装类
        通过类把基本数据类型包装起来进行使用
装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)
    构造方法:
        Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
        Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
            传递的字符串,必须是基本类型的字符串,否则会抛出异常 "100" 正确  "a" 抛异常
    静态方法:
        static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。
        static Integer valueOf(String s) 返回保存指定的 String 的值的 Integer 对象。
拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)
    成员方法:
        int intValue() int 类型返回该 Integer 的值。
自动装箱与自动拆箱:基本类型的数据和包装类之间可以自动的相互转换

1.数组长度是固定的,集合长度可以改变。
2.Collection接口是所以单列集合的顶端,学习顶层,使用底层。
3.任意单列集合都可以用Collection接口的方法(多态调用)。
4.isEmpty是判断集合内容是否为空。
5.hasNext();判断,Next();取。
6.迭代器即是while循环遍历集合。
7.在使用迭代器过程中,修改集合长度就会报出并发修改异常。
8.集合不使用泛型,默认类型就是Object类型。泛型是什么类型就只能存储什么类型。
9.泛型通配符 ? 。

1.栈.先进后出(入口和出口在同一侧)。
2.队列.先进先出(入口和出口在集合两侧)。
3.数组.查询快增删慢(查询有索引,增删需要重新创建数组所以增删慢)。
4.链表:查询慢(每次查询需要从头开始)增删快(增删后对链表结构无影响)。
             a.单向:元素无序
             b.双向:元素有序
5.红黑树:查询速度快,查询叶子节点最大数到最小数不得超过2倍。
6.list集合:有序的集合,有索引,可以存储重复元素。
7LinkedList集合:底层是双向链表(查询慢增删快)。
8.HashSet集合:无序(无序并非随机)并且去掉重复元素。
9.哈希表:哈希表=数组+链表/红黑树(提高查询速度)。
10.hashCode():获取哈希值。
11.LinkedHashCode集合:有序不能重复(哈希表+链表)增加的链表用来记录顺序。
12.可变参数:底层是数组运用在方法列表里面。
13.Collections.sort方法:排序(默认为升序)。
1.Map集合:双列集合(一个元素包含两个值,K是单一的,V可以重复,k-v是一一对应的)。
k与v可以相同。
2.HashMap集合:底层是哈希表,查询特别快,存取元素顺序不一定一样。
   LinkedHashMap集合:底层是哈希表+链表,查询快,存取元素顺序相同。
3.Map常用方法:public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。
public V remove(Object key) : 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
public Set<K> keySet() : 获取Map集合中所有的键,存储到Set集合中。
public V containsKey:查询元素(用K查询)包含返回true不包含返回false。
4.Map遍历:方法1:KeySet()方法,通过键找值的逐一获取。
                     方法2:entrySet()方法。通过entry(键值对)获取。
5.HashMap:储存自定义类型键值(当k用自定义类型时必须重写去重方法,v用自定义类型时可以不重写去重方法)。
6.LinkedHashMap集合:底层是哈希表+链表,存取是有序的。
7.Debug程序调试:让代码逐一实现,查找代码bug。
1.异常:在程序执行时,出现非正常情况,导致JVM中断。
2.Exception(异常):小毛病处理后可以继续执行。
   Error(错误):必须修改源代码。
3.运行期异常处理分析流程:①先有JVM检测到异常(创建一个异常类,并抛给main方法)
                                            ②main方法接受到异常(没有处理异常逻辑再把异常对象抛给给虚拟机)
                                            ③虚拟机把异常(内容,原因,位置)打印出来并中断程序运行
4.编译期异常:需要写抛异常代码或者自己处理异常(try...catch)
5.thorw关键字:写在方法内部,自己定义异常信息并抛出异常。(如果异常抛到JVM中,程序中断不执行)
6.thorws关键字:(编译异常使用)异常处理的第一种方式,交给别人处理,最终交给JVM中断处理
6.try...catch:(编译异常使用)异常处理的第二种方式,自己处理,处理完后会继续执行程序后续代码
7.finally代码块:写在try...catch后面(不能单独使用),里面的代码无论如何都会执行。
8父类没抛异常(子类也不能抛异常只能thows)。
9.执行主方法的线程叫主线程。
1.多个线程属于竞争关系,cpu执行多个线程,高速切换,随机执行
2.多线程之间互不影响,每个线程都有自己的栈空间
3.Thread类的两个静态方法,sleep指定暂停秒数,currentThread返回当前线程名称
4.多线程访问了共享数据,可能会出现安全问题
5.线程安全问题是不能产生的,当一个线程执行时,其他线程需要等待
6.同步代码块:可以解决线程安全问题
7.同步技术:保证多个线程只能有一个线程进入共享代码块。
8.同步方法:保证多个线程只能有一个线程进入共享代码块。
9.lock锁:可以解决线程安全问题,将共享代码块锁起来,保证多个线程只能有一个线程进入共享代码块。










作者: hongkexy    时间: 2018-12-12 23:24
加油加油,我在你身上看到了我曾经的影子





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2