java
文章平均质量分 73
阿睿93
这个作者很懒,什么都没留下…
展开
-
java-io
IO主要内容 File 同步阻塞的输入输出流 NIO多路复用、同步非阻塞的io channel Selector Buffer NIO2异步非阻塞的io(利用事件回调机制来实现) 概念 bit一个二进制位 byte由8个bit组成你 char java中是2个byte,16位 流相关的概念 BufferedReader的作用:是一个处理流,可以将读取到的数据放在内存中...原创 2018-08-23 16:33:01 · 103 阅读 · 0 评论 -
设计模式
设计模式 单例设计模式 使用场景:需要对象的唯一性,性能浪费太多时使用 更关键的是有的类存在多个实例会存在逻辑错误,例如序号生成器 例如:例如数据库链接,配置信息读取 工厂模式 用一个方法来代替new关键字,隐藏复杂的初始化 适用场景:适用于需要父子类替换的对象(多态) jdk中:Proxy.newProxyInstance;class.newInstance();Boole...原创 2018-09-10 22:08:12 · 117 阅读 · 0 评论 -
java-数据类型
基础数据类型 int在64位或者32位jvm中都是32位 short、char都是16位 int和Integer int和Integer可以通过自动的拆箱装箱进行转换 Integer a=1; int b=a+1; Integer比int占内存,Integer时一个对象,需要存储对象的元数据 String、StringBuilder、StringBuffer ...原创 2018-09-17 13:04:19 · 151 阅读 · 0 评论 -
java HashMap
HashMap HashMap底层是使用数组+链表的形式进行存储,数组作为主干,链表作为hash冲突后的解决方案。 加入数据的时候会用hashCode()和特定的算法算出对应的位置,如果对应的位置上已经有值,则通过equal()比较,如果不同则放入到链表中。每一对值都是一个Entry。 如果容量超过阈值(容量*负载因子)将会重新创建数组,同时将老数组的数据进行拷贝(拷贝过程中会重新计算位置) ...原创 2018-09-17 11:06:48 · 175 阅读 · 0 评论 -
java-单例设计模式
单例模式 双重检验(懒汉式) 使用双重检查,提高效率,和线程安全性 instance记得使用volatile instance = new Singleton()做了三件事: 给 instance 分配内存 调用 Singleton 的构造函数来初始化成员变量 将instance对象指向分配的内存空间(执行完这步 instance 就为非 null 了) 第2步和第3步可能重排序,...原创 2018-09-16 22:10:44 · 127 阅读 · 0 评论 -
finally注意事项及异常丢失
注意事项 finally和try相对应,每次try结束后都会调用相对应的finally。(除非直接System.exit()这样不会调用finally) https://blog.csdn.net/ech00o00/article/details/76474825 private static int count=0; private static void te...原创 2018-09-09 23:26:50 · 442 阅读 · 0 评论 -
动态代理和静态代理
代理是一种软件设计模式,目的地希望能做到代码重用 不直接访问被代理对象的方式,而访问被代理对象的方法.eg:商户—->明星经纪人(代理)—->明星这种模式 使用场景 之前的代码很难修改,但是需要扩展方法 Spring的AOP机制 静态代理 代码编译时就确定了被代理的类是哪一个,那么就可以直接使用静态代理 对于静态代理,代理类要实现和被代理类相同的接口 说简单点...原创 2018-09-03 18:16:02 · 86 阅读 · 0 评论 -
java 中public protected default private
访问权限 类中被public修饰的字段、方法:可以被该类的 实例、子类(无论子类和父类是否在同一个包中) 访问。 所有可见 类中被protected修饰的字段、方法:可以被该类的 同一包的实例、子类(无论子类和父类是否在同一个包中) 访问。包可见同时子类可见 类中被default修饰的字段、方法:可以被该类的 同一包的实例、子类(子类父类在同一个包中) 访问。包可见 类中被private修饰的...原创 2018-09-11 20:28:59 · 114 阅读 · 0 评论 -
java 内存管理
引用 强引用:Person p=new Person();一般使用的都是强引用 jvm不会回收强引用 如果内存不足则oom 如果想切断强引用:Person p=null 软引用:SoftReference 在内存不足时,抛出oom前会回收软引用.通常被用来缓存一些非必须的数据 软引用:如果内存充足,是不会回收的。如果内存不足会将较早的对象回收 Sof...原创 2018-09-05 14:36:24 · 148 阅读 · 0 评论 -
java基础
基础概念 匿名类:对于只使用一次,不会再重复使用的类 主函数:不是所有类都需要主函数,如果需要独立运行就需要定义主函数,主函数由jvm调用 成员变量和局部变量: 成员变量:定义在类中;成员变量在整个对象中有效;存在在堆中的对象中,生命期和对象相同; 局部变量:定义在函数中;局部变量在自己所属的大括号中有效;存在在栈中,生命期所属区域的存在而存在; 一个类中多个构造函数,是重载的体现 类:执行...原创 2018-09-11 17:17:06 · 108 阅读 · 0 评论 -
java-集合
数据结构 树:二叉树是一种非常常用的树形结构 图 数组:长度固定,可以用下标索引 列表:ArrayList 栈:peek(),push()和pop() ,先进后出 队列:peek(),offer()和poll(), 先进先出 链表:每个节点包含有数据以及指向下一个节点的引用,在双向链表里,还会有一个指向前一个节点的引用 HashMap 自己实现List、Set、Map 大O ...原创 2018-08-25 17:05:37 · 125 阅读 · 0 评论 -
java-多线程
单例模式 使用双重检查,提高效率,和线程安全性 记得使用volatile ? concurrent Executor submit()返回一个future,包含返回结果、异常,既可以传入Runnable也可以使Callable。execute()只能传入Runnable,不会有异常和返回值。 https://www.cnblogs.com/wanqieddy/...原创 2018-08-21 17:32:37 · 141 阅读 · 0 评论 -
CopyOnWriteArrayList源码解析
依据jdk1.8源码分析 新建 创建一个零长度数组 private transient volatile Object[] array;//底层数据 添加数据 先上同步锁 对原始数组进行拷贝(浅拷贝),然后在拷贝后的数组上进行修改 将修改后的结果赋值给array public boolean add(E e) { final ReentrantLock lock = ...原创 2018-09-26 21:15:34 · 123 阅读 · 0 评论