- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 InputStream和OutputStream到底什么时候用?
读文件BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("infilename")));不管你从磁盘读,从网络读,或者从键盘读,读到内存,就是InputStream。写文件BufferedWriterout= new BufferedWriter(new OutputStreamWriter(new FileOutputStream("outfilename")));不管你写到..
2020-05-31 10:22:58 448
原创 0-1背包问题(动态规划)--java实现
动态规划适用动态规划的问题必须满足最优化原理、无后效性和重叠性。 1.最优化原理(最优子结构性质) 最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。 2.无后效性 将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来的决策,而只能通过当前的这个状态。换句话说,每个状态都是过
2020-05-30 11:19:27 1316
原创 非递归实现归并排序--Java实现
非递归实现归并排序的划分函数Merge和递归的归并排序是一样的,但是使用了一种较为巧妙的方法来代替递归过程,具体过程都注释在代码中了,代码如下:/** * 非递归实现归并排序 */public class NiceMergeSort { //划分函数,一定程度上的排序,并排不完,需要递归调用来完成归并排序,相当于把问题分而治之 public static void Merge(int []dsi,int []src,int left ,int m, int right)
2020-05-27 09:11:21 374
原创 JVM_JAVA中的强软弱虚引用
java内存管理分为内存分配和内存回收,都不需要程序员负责,垃圾回收的机制主要是看对象是否有引用指向该对象java对象的引用包括强引用,软引用,弱引用,虚引用 Java中提供这四种引用类型主要有两个目的:1. 是可以让程序员通过代码的方式决定某些对象的生命周期;2. 是有利于JVM进行垃圾回收。 一、 强引用(StrongReference)强引用是使用最普遍的引用。只要某个对象有强引用与之关联,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会
2020-05-27 09:02:26 238
原创 破坏双亲委派模型(利用线程上下文类加载器)
这里就用JDBC为例来探索一下为何,如何利用 线程上下文类加载器 破坏双亲委派模型。java给数据库操作提供了一个Driver接口:public interface Driver { Connection connect(String url, java.util.Properties info) throws SQLException; boolean acceptsURL(String url) throws SQLException; Dri
2020-05-21 20:06:18 737 1
原创 HashMap相关知识总结
目录一.数据结构和节点类型二.hash值的计算方法三.解决哈希冲突的链地址法四.扩容五.重写equals()方法,必须重写hashcode()方法HashMap继承自AbstractMap接口,是Java中常用的集合之一,对于<key,value>这样的键值对数据,存储起来十分方便。这里我就结合源码,总结一下HashMap的相关知识。一.数据结构和节点类型HashMap是由一个 由链表组成的数组 构成的,图示如下:源码中的节点类型定义如下: tr
2020-05-20 13:38:56 142
原创 List接口下的各个集合的特点
目录ArrayListLinkedListVectorStack数组与集合的区别ArrayList特点:继承于AbstractList,它还实现了RandomAccess, Cloneable, java.io.Serializable等接口。public class ArrayList<E> extends AbstractList<E>...
2020-05-06 10:31:55 233 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人