摘要:
微博:http://weibo.com/375061590QQ :375061590到两个重要矩阵: 1.d[numVex][numVex] (numVex图的顶点数):最开始该矩阵就是图的邻接矩阵,经过Floyd算法处理开后,d[numVex][numVex]中的d[i][j],表示着从顶点i到j的最短路径的权重。 2.p[numVex][numVex]:p[i][j]表示从i到j的最短路径上 i的后继,例如1到5最短路劲为1-2-4-5 那么p[1][5]==2 ,最开始构建的p矩阵中p[i][j]= j算法核心思想:三圈for循环 1 for (int k = 0; k < ... 阅读全文
摘要:
字符串是编程中应用到最多的一个数据类型,简单实用,但是深入理解它们,会给我们带来更多好处。字符串缓存池:为了节省内存,提高资源的复用,java中引入了字符串缓存池的概念。缓存池中的字符串是不可回收的:在缓存池中的字符串是不会被垃圾回收机制回收的,基本都是常驻内存,所以过多食用String类,可能会出现内存溢出(下面会讲)。怎么样才会存进缓存池:直接量赋值创建对象在Java,基本包装类型String,Long,Float,Boolean.......都可以利用直接量创建对象。String用直接量进行创建对象的时候,会先在缓存池找到字符串相同的对象,然后指向缓存池中该对象,这样就避免了重新为该对象 阅读全文
摘要:
JAVA的垃圾回收机制,让许多程序员觉得内存管理不是很重要,但是内存内存泄露的事情恰恰这样的疏忽而发生,特别是对于Android开发,内存管理更为重要,养成良好的习惯,有利于避免内存的泄漏.对象的几种状态:这里可以把许多对象和引用看成是有向图,顶点可以是对象也可以是引用,引用关系就是有向边。可达状态:对象创建的时候,有引用指向它,这个时候在对象和引用之间建立了引用关系,即由引用发射有向边指向对象,这个对象就是出于可达状态可恢复状态:当引用不指向一个对象的时候,该对象就处于可恢复状态,这时候在系统回收该对象之前,会调用finalize方法进行资源清理,如果调用这个方法后能重新让引用变量去引用他. 阅读全文
摘要:
去面试微信实习,遇到这道算法题,当时被卡住,故今天把它写出来做下知识整理,原题:实现一个栈,满足min() pop() push()方法的时间复杂度都为O(1).( min()返回栈中最小元素) 思路1:用一个变量minItem记录栈中的最小值,在push()中每次加入一个item就跟minItem对比,item更小,只item赋给minItem,然后再min()中直接return minItem; 这种思路没考虑在pop()过程中,对minItem的影响,当栈顶元素是minItem,执行pop()后minItem就不知道指向谁了,因为栈只记录最小值而起,至于最小值之前那些大小关系都没记录.. 阅读全文