本文地址:http://www.cnblogs.com/maplefighting/p/8012196.html html
一、新程序中不该该使用过期的Vector,Hashtable和Stackjava
二、 (1) ==对于基本数据类型,判断两个变量是否相等算法
(2) equals不能用于基本数据类型数据库
(3) == 比较可能是内存地址,equals比较的是值express
(4) object类中 equals与==是同样的,而String,Integer重写了equals方法编程
(5) == 比 equals 快设计模式
三、java方法参数:数组
(1)一个方法不能改变一个基本数据类型的参数安全
(2)一个方法能够改变一个对象参数的状态mvc
(3)一个方法不能让对象参数引用另外一个新的对象
四、Java8 新特性
(1)接口的默认方法
interface Form{
default double sqrt(int a) { return ...;}
}
(2)lambda表达式:(param) -> (expression) , (param) -> {statements}
为函数式接口的一个具体实现实例
(3)方法引用
(4)函数式接口 :只定义一个抽象方法的接口
(5)Stream API
(7) Data Time API
(8) Optional类
五、在覆盖一个方法的时候,子类方法不能低于超类方法可见性
六、在Java程序设计语言中,全部链表其实是双向链表
七、LinkedHashSet 和LinkedHashMap按访问顺序迭代
八、必须把package放在第一句
九、一个.class文件有且只有一个类编译后class
十、struts是mvc的一种实现,控制:struts-config.xml,角色为ActionServlet,模型:ActionForm,Action,JavaBean
十一、Java锁的类型:(1)自旋锁 (2)阻塞锁 (3)可重入锁 (4)读写锁 (5)互斥锁 (6) 悲观锁 (7) 乐观锁 (8) 公平锁 (9) 非公平锁
(10) 偏向锁 (11) 对象锁 (12) 线程锁 (13) 锁粗化 (14) 轻量级锁 (15) 锁消除 (16) 锁膨胀 (17) 信号量
十二、字符型 默认值:'\u0000' 范围0~2^16 -1
1三、Arrays.asList() 将一个数组转化成List ,返回ArrayList对象,但并不是java.util.ArrayList类,而是Arrays的静态内部类
1四、Java接口容许定义成员,但必须是常量
1五、Java程序的种类有Applet,Application,Servlet
1六、集合类主要分为两大类:Collection和Map
(1)ArrayList是基于数组实现,不是线程安全,能够用Collection.SynchronizedList(List l)返回线程安全类
默认容量为10,扩容时在原来基础上加上容量的一半
(2)LinkedList是一个集成与AbstractSequentialList的双向链表,能够看成栈,队列或双端队列。
非同步的
实现序列化,写入到输出流时,先写“容量”,再写数据。读出输入流时,先取“容量”
对比:对于随机访问get和set。ArrayList优于LinkedList
当插入数据量很小时,二者相差不大,当插入的数据量大时,大约在1/10之间。LinkedList会优于ArrayList。
1七、HashMap
a、默认容量为16,2的幂
b、加载因子 0.75f,哈希表达到时自动增加
c、初始化table是在第一次往hashMap put时
d、返回索引位置indexFor,返回h&(length-1)。必须是2的幂,使数据均匀分布
e、jdk1.8 扩容时要么在原位置,要么再移动2次幂。小于6时变链表,大于8时变树,数组长度大于64时才考虑树
1八、LinkedHashMap 非线程安全,LRU算法。双向循环链表,在HashMap上封装的
1九、Java基本数据类型 byte 8,short 16,int 32,long 64,float 32,double 64,boolean,char 16(unicode)
20、Object的重要方法:equals() hashcode() toString() clone() (Java只实现浅拷贝,我的没验证过) notify() notifyAll() wait() (可用于生产者消费者)
2一、Object Throwable Error
Exception InterruptedException
IOException
RuntimeException
Error不该该捕获,为虚拟机问题
runtimeException能够不try/catch
try能够不加catch
2二、Java IO与NIO
IO 面向流 阻塞IO 无选择器
NIO 面向缓冲 非阻塞IO 有选择器
Java IO主要用装饰模式,适配器模式
标准的IO基于字节流与字符流进行操做,NIO经过通道和缓冲区进行操做。NIO能够异步使用IO
Java NIO主要有Channels,Buffers,Selectors
NIO可使用(selector)一个(或几个单线程)管理多个通道
若是每一个链接只发送少许数据,可使用NIO,若是有少许链接发送大量数据使用IO
2三、sleep和wait的区别
sleep是 Thread方法 wait是Object方法
不会释放锁 会释放锁
2四、Lock的await/signal和Object的wait/notify区别
(1)Lock不用synchroinzed把同步代码包装起来
synchroinzed(obj) {
wait(); //signal();
}
(2)阻塞须要另外一个对象condition
ReetrantLock lock = new ...();
Condition condition = lock.newCondition();
lock.lock();
condition.await(); //condition.signal();
lock.unlock();
2五、equals相等,hashcode必定相等
对象相等,hashcode必定相等。hashcode相等,对象未必相等
基本变量没有hashcode和equals方法
hashMap,hashSet要重写hashcode
hashcode 返回int (将对象内部地址转换)
2六、(1) static 方法只能访问static方法,不能访问非static。
能够object.method和class.method
存储在数据区
(2) final类不能被继承,例如String
方法能够被继承但不能被覆盖
2七、Java三大特性:封装,继承,多态 //(抽象)
继承:子类继承父类,使子类具备父类的属性和方法,有效实现代码复用
多态:子类重写父类方法,父类类型引用指向子类对象,动态调用
Java语言特色:面向对象,跨平台,安全
2八、使用抽象类是为了代码复用,使用接口是为了实现多态
(1) abstract有本身的数据成员,interface只有 final static成员
(2) abstract能够有非抽象方法,接口中不能有(jdk8有默认方法)
(3)Java能够实现多个接口
2九、类初始化**:父类静态变量->父类静态代码块->子类静态变量->子类静态代码块->父类非静态变量->父类非静态代码块->父类构造函数->子类......
30、final必定要初始化
3一、二叉树度数表示该节点分叉
n0 = n2 + 1 n = n0 + n1 + n2
3二、重载,参数类型和个数,顺序不一样,没法以返回类型做为区分。 能够有不一样返回类型,修饰符,异常
3三、静态能够访问静态,不能访问非静态。非静态均可以
3四、jre包含jvm,基本类库。 jdk包含jre,包含编译器,开发工具和类库
3五、同步:指用户进程触发I/O并等待或轮询是否就绪
异步:触发I/O后作本身的事情,当I/O完成时会获得通知
阻塞:试图对文件读写时,没有东西...进入等待
非阻塞:没有东西可读或不可写时,立刻返回
3六、Java编译成字节码后,jvm解释运行
二进制文件 .class
解释型语言
3七、jdbc桥接模式。提供两套接口,一个面向数据库厂商,一个面向JDBC使用者
3八、设计模式六大原则
(1)单一职责:一个类只负责一项职责
(2)里氏替换:子类能够扩展父类的功能,但不能改变父类功能
(3)依赖倒置:抽象不该该依赖细节,细节应该依赖抽象
(4)接口隔离
(5)迪米特原则:一个对象应该对其余对象保持最少的了解
(6)开闭原则:对扩展开放,对修改关闭
3九、boolean不能和任何类型转换
40、Integer i = 59 时会调用integer.valueOf() 方法
该方法返回一个Integer对象,若是i在[-128,127]之间,若是存在IntegerCache.cache的值,则返回引用,不然new一个对象
int基本类型与其余 ==比较,只比较值
4一、(1)加强for (foreach)循环时不能使用集合删除元素
(2)加强for不能使用迭代器中的方法
(3)加强for有便利元素,普通for没有
普通for比较适合list类(数组)
加强for比较适合链表结构
参考书籍:Java核心技术卷,大话设计模式(大鸟,小菜),设计模式(挺有趣的一本书),effective java,Java 8实战,java编程思想(有点老了)
--------------------------------------------------------------------------------------------------------------
以上为maplefighting我的笔记整理,若有出错,欢迎指正