java
文章平均质量分 73
阿睿93
这个作者很懒,什么都没留下…
展开
-
java-io
IO主要内容File同步阻塞的输入输出流NIO多路复用、同步非阻塞的io channelSelectorBufferNIO2异步非阻塞的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和Integerint和Integer可以通过自动的拆箱装箱进行转换 Integer a=1; int b=a+1; Integer比int占内存,Integer时一个对象,需要存储对象的元数据String、StringBuilder、StringBuffer...原创 2018-09-17 13:04:19 · 155 阅读 · 0 评论 -
java HashMap
HashMapHashMap底层是使用数组+链表的形式进行存储,数组作为主干,链表作为hash冲突后的解决方案。加入数据的时候会用hashCode()和特定的算法算出对应的位置,如果对应的位置上已经有值,则通过equal()比较,如果不同则放入到链表中。每一对值都是一个Entry。如果容量超过阈值(容量*负载因子)将会重新创建数组,同时将老数组的数据进行拷贝(拷贝过程中会重新计算位置)...原创 2018-09-17 11:06:48 · 176 阅读 · 0 评论 -
java-单例设计模式
单例模式双重检验(懒汉式) 使用双重检查,提高效率,和线程安全性instance记得使用volatile instance = new Singleton()做了三件事: 给 instance 分配内存调用 Singleton 的构造函数来初始化成员变量将instance对象指向分配的内存空间(执行完这步 instance 就为非 null 了)第2步和第3步可能重排序,...原创 2018-09-16 22:10:44 · 129 阅读 · 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 · 447 阅读 · 0 评论 -
动态代理和静态代理
代理是一种软件设计模式,目的地希望能做到代码重用不直接访问被代理对象的方式,而访问被代理对象的方法.eg:商户—->明星经纪人(代理)—->明星这种模式使用场景之前的代码很难修改,但是需要扩展方法Spring的AOP机制静态代理代码编译时就确定了被代理的类是哪一个,那么就可以直接使用静态代理对于静态代理,代理类要实现和被代理类相同的接口说简单点...原创 2018-09-03 18:16:02 · 87 阅读 · 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 · 109 阅读 · 0 评论 -
java-集合
数据结构树:二叉树是一种非常常用的树形结构图数组:长度固定,可以用下标索引列表:ArrayList栈:peek(),push()和pop() ,先进后出队列:peek(),offer()和poll(), 先进先出链表:每个节点包含有数据以及指向下一个节点的引用,在双向链表里,还会有一个指向前一个节点的引用HashMap自己实现List、Set、Map大O...原创 2018-08-25 17:05:37 · 127 阅读 · 0 评论 -
java-多线程
单例模式使用双重检查,提高效率,和线程安全性记得使用volatile?concurrentExecutorsubmit()返回一个future,包含返回结果、异常,既可以传入Runnable也可以使Callable。execute()只能传入Runnable,不会有异常和返回值。 https://www.cnblogs.com/wanqieddy/...原创 2018-08-21 17:32:37 · 143 阅读 · 0 评论 -
CopyOnWriteArrayList源码解析
依据jdk1.8源码分析新建创建一个零长度数组private transient volatile Object[] array;//底层数据添加数据先上同步锁对原始数组进行拷贝(浅拷贝),然后在拷贝后的数组上进行修改将修改后的结果赋值给arraypublic boolean add(E e) { final ReentrantLock lock = ...原创 2018-09-26 21:15:34 · 125 阅读 · 0 评论