所有时间会转成整形的值(包括日期date)date类
calendar 日历。这个类可以看一下五天以后星期几。有关日期的方法,日历计算的方法放进去了calender类里面,和date一起使用
simplidateformat 类的作用,提取日期转文本或者文本解析成一个date。
java8之前日期核心类就这三个。java8加了一套。
system就是和jvm打交道的一个类。如,标准输入输出。获取毫秒,微秒。
try catch里面捕获异常,就是收到异常返回的值。throws抛出异常,在出现异常时返回一个值。
常用的log4j1是外部的,apache。后来有了log4j2(完全不同的两个东西),(logback 、slf4j)结合起来用,那个人写的(写log4j1的人)
、commos logging
jdk 自带的logging
printstack打印出来栈的信息。
例如有内存不够用的情况,jvm会自动在出错的地方会加入trows new exception。
栈溢出。堆溢出
异常分为ioexception、runtimexception运行时环境抛出来的异常(也就是jvm抛出来的异常),error
运行时异常不需要在类声明的时候
如果声明普通的异常
如果声明runtime异常,会自动往上抛,(不强制性声明,不强制性捕获)
四种内部类:匿名,静态,局部,常规
java7以后 catch可以捕获多种类型的异常,以前只可以是一种。没有finally了,因为使用完trycatch语句块之后会自动将资源释放掉。
不同的语句块中可以return多个结果,按最终结果为主。程序正常结束,return,throws异常。如果try里面执行return,然后在finally里面throws,则返回的结果是throws。意思就是一个方法或者程序只会返回一个值。
集合类,也叫容器类。
数据结构,数据的组织结构。数据结构实现的工具类。
老的数据结构,vector,hashtable,新的线程不安全的类可以使用 collections来实现线程安全。
往最后一个追加,就是数组快一点,因为链表需要包装一下对象和向后的指针(不需要从头扫描,有个记录,没有这么傻的链表)。数组是连续的内存空间,
arraylist基于数组,linkedlist基于链表
对列:不提供按位置去元素的api。
哈数表:上面一个数组,每个元素指向数组或者arraylist,获取元素,调用hashcode方法。不同的对象值不同。你认为的对象值相同就是相同。set元素不能重复。刚开始,取余,看看是哪个桶(如果是链表的话,得全部比,如果数组取余的话,可以少比几次),也是再比hashcode,如果相同就比
红黑树自平衡。二叉树自平衡最麻烦。红黑树是其中的一种通用的算法。
二叉树 hashset用的hashmap。就是把key变为空。
第一种实现实体类comparable,
数组,链表(双向,单向),hash表,二叉树(自平衡二叉树)b+树(给硬盘存储,减少硬盘io操作,),队列,跳表()
原来类里面的类型拿一个符号标识,还不固定,随机的。参数化类型,使用这个类的时候才告诉它我这个类是什么类型的。
set 、list里面的元素不能调用list本身的remove方法,应该调用iterator的remove方法。
同步、阻塞。a调用b,b被调用的时候,a不能动。非阻塞(不能干读数据无关的事情),但是a可以探测有没有。异步,你读完数据之后告诉我。
file表示一个文件或者目录。
file1.7 files1.8
commos-io对原有jdk类库io的补充。
fileinputstream,得到字节流。->outputstream ->文件输出流。
缓冲流、
常见的io流以及设计模式 装配器、适配器设计模式。
callable可以有返回值。
创建线程和销毁浪费的事件
只有一种线程池。只不过executor工具类里面提供了好多静态方法。
三种启动方式:thread.start 线程池(最好使用线程池启动) forkjoin(相当于mapreduce)
wait sleep。
同步解决竞争问题(资源挣用),协作
lock关键类,sychronice关键字。
threadlocal 存放着当前线程的值。通过threadlocal(全局,和当前线程绑定,servlet 向dao层传数据,都不用通过srevice层)
system每个jvm一个。
sychronic & notify wait
lock & condition locks api这个包。
引擎可能就是一个包,api。全文检索:lucy(单机) solr是lucy一样的只不过不是单机的(http请求api) es
java8新特性,
dbcp c3p0 durid HIkariCP
interactive_timeout 数据库 八个小时不连接会断开。不止在应用这边。
反射:有些时候直接操作字节码对象。如运行打开class文件。从class层面操作对象,调用某个方法,然后给他对象。
把对象,
依赖注入,
并发编程。
反射,为什么
为什么使用多线程
身体、精力、智力、知识。
字节流、字符流
子类的异常只能比父类的小