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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 643605712 初级黑马   /  2018-12-12 21:27  /  1010 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基础加强培训的第一周,下面是这几天学习到的主要内容(自己上课时做的一些笔记和综合了一点老师写的总结):
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锁:可以解决线程安全问题,将共享代码块锁起来,保证多个线程只能有一个线程进入共享代码块。









1 个回复

倒序浏览
加油加油,我在你身上看到了我曾经的影子
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马