随笔分类 - Java
摘要:【注解Annotation】 【自定义注解,语法格式】 【新建注解java文件】 红框内的自动生成 【注解的使用,语法格式】 【默认情况下注解可以出现在任意位置】 【注解也可以出现在注解上】 【JDK中内置的注解】 【内置注解Override】 【元注解】【Target】【Retention】 【@
阅读全文
摘要:【反射机制内容的重要程度 Method > Field > Constructor】 【可变长度参数:类型... args】【可变长度参数可以看成一个数组,且具有length属性】 【了解反射Method】 【写一个Userservice类】 【使用Method反射UserService类中的方法】
阅读全文
摘要:【Class.forName(“拷贝过来的完整类名”)在执行时会把类加载到虚拟机中】 【JDBC会使用Class.forName()仅执行静态代码块内容】 【怎么写路径使得程序在不同系统移植时不会发生路径方面的错误】 【String path = Thread.currentThread().get
阅读全文
摘要:【Object类中的wait()和notify()方法】【wait()方法的作用】 【notify()方法的作用】【o.notifyAll()】 【o.wait()和o.notify()的抽象理解】 【生产者/消费者模式】P806 647最后 【生产者/消费者模式代码实现】 【生产者消费者作业】 i
阅读全文
摘要:【死锁】【死锁不会出现异常或错误,但程序会卡在那,最难调试】 【死锁代码测试(面试题,要会写)】 【死锁“结果”】【强制停止死锁】 【解决开发中线程安全问题的三个方案】 【1.使用局部变量代替实例变量和静态变量】 【2.一个线程对应一个对象】 【3.使用线程同步机制synchronized()】 【
阅读全文
摘要:【使用代码模拟两个线程对同一个账户进行取款】 【Test()方法】 【账户进程类】 【账户线程类】 【使用线程同步机制】 【账户类】【synchronized(共享的对象){线程同步代码块}】 【线程同步代码块的工作原理】【锁】 【线程生命周期补充锁池lockpool不是一个状态】【线程运行过程中遇
阅读全文
摘要:【获取线程的名字getName()】【设置学生的名字setName()】 【获取当前线程对象Thread t = Thread.currentThread();】 【使当前进程进入阻塞状态Thread.sleep(毫秒数)是一个静态方法与对象无关】 【Thread.sleep()的面试题】【slee
阅读全文
摘要:【多线程】【进程:是一个应用程序,可以启动多个线程】【线程:是进程中的一个执行单元】 【进程和线程的关系】 【对于线程而言,栈内存不共享,只共享堆内存和方法区内存】 【多线程机制,会提高程序的处理效率】 【真正的多线程并发】 【实现线程的两种方式(后面还有第三种)】【第一种方式:编写一个类,让它继承
阅读全文
摘要:【序列化版本号的作用:用来区分类名相同的类】 【自动化生成版本号的缺陷:会使得在修改一个类之后,之前由该类序列化存储的文件将无法被该类反序列化输出】 【不建议自动生成,建议手动生成序列化版本号 (模仿的ArrayList源码)】 【IDEA设置,手动生成序列号快捷键 Alt+Enter】 【I/O+
阅读全文
摘要:【java.io.File】【file类】【file类中常用的方法】 【判断指定文件或者目录是否存在.exist()】【创建新文件.createNewFile()】【创建目录.mkdir()】【创建多重目录.mkdirs()】 【获取文件的父路径.getParent()】【获取父文件.getPare
阅读全文
摘要:【使用FileReader和FileWriter只能复制/拷贝普通文本】 【缓冲流】【节点流】【包装流/处理流】【不需要自定义数组】【关闭时只需要关闭外层的包装流】 【带有缓冲区的字符输入流 BuffereredReader】【文件字符输入流FileReader】【读取一个文本行 readLine(
阅读全文
摘要:【java.io.FileInputstream】【IDEA默认的当前路径是工程project的根目录】 【对于txt文件读入后输出的格式不变】【读一个字节int read()】 【FileInputstream类的其他常用方法】【返回剩余的字节数量 int available()】 【跳过指定字节
阅读全文
摘要:【对List集合中的元素进行排序,需要保证List集合中的元素的类实现comparable接口,并重写compareTo方法】 【set集合怎么排序:转换成List集合,调用Collections的sort方法】 【集合复习总结】【集合需要掌握的内容】 【ArrayList/LinkedList复习
阅读全文
摘要:【昨天必须要会的】 【Map集合常用的方法】【Map集合遍历的几种方法,使用迭代器,使用增强for...】【hashcode和equals方法的同时重写】 【hash值同,元素放到同一个单向链表上】【哈希碰撞:hash值不同,由hash算法转换后下标相同会发生哈希碰撞】 【HashMap的扩容(Ha
阅读全文
摘要:【Map接口中常用方法的测试】【put】【get】【size】【remove】【containsKey】【containsValue】 【Map集合的遍历方法】 【遍历Map集合的另一种方法】【使用 Set<Map.Entry<k,v>> entrySet() 转化为Set集合在遍历】 【Map集合
阅读全文
摘要:【Vector】【Vector的初始化容量为10,每次扩容为一倍】【Vector线程同步】【Collections集合工具类】 【泛型机制】【泛型的优缺点】【仅在编译阶段起作用】【在new集合时规定集合元素的类型】【在遍历时左边也要有】 【什么时候可以使用泛型】【源码中存在<E>的时候】 【JKD8
阅读全文
摘要:【集合中元素的删除】 【使用迭代器时,如果要删除某个元素,需要调用迭代器iterator的remove()方法,而非集合Collection的方法】 【ArrayList和LinkedList的遍历除了可以使用while循环加上has.next()和next()方法外】 【使用for循环加上size
阅读全文
摘要:【集合是一个容器,只存放内存地址,不存放基本数据类型,也不存放对象】【非常重要,开发时每天都要用】 【不同的集合对应不同的数据结构】【集合类存在于java.util中】 【集合是一个容器,只存放内存地址,不存放基本数据类型,也不存放对象】【非常重要,开发时每天都要用】 【不同的集合对应不同的数据结构
阅读全文
摘要:【自定义异常】 【自定义异常的调用】 【自定义堆栈异常】 【对之前模拟堆栈的程序使用异常】 【测试程序中对异常的触发】 【部分运行结果】【只有在执行try语句块中的语句出现异常时,才会去执行catch中的内容】 【重写之后的方法不能比之前的方法抛出更多更宽泛的异常,可以相等或相同,也可以更少】 【实
阅读全文
摘要:【异常对象的两个重要的方法】 【获取异常的描述信息:exception.getMessage()】 【打印异常追踪的堆栈信息exception.printStackTrace()】 【如何查看异常信息,以进行调试】 【异常追踪信息,从上往下看】 【try...catch 语句中的 finally{.
阅读全文