09 2017 档案
摘要:昨天面试时,面试官问,如何编程处理一个算术表达式。刚好,我做过leetcode上的一道题,就是用逆波兰式求算术表达式。然后稍微思考了一下,给出了正确结果。 面试官,接着问,如何求逆波兰式,没有想出结果来。网上看了一些资料后,现在将过程整理如下,加深印象; (1)首先遍历算术表达式,依次遍历每个位置的
阅读全文
摘要:文章由问题产生,问:目前存在多个类,这些类里面有类成员变量(基本类型和引用类型),有静态方法,有静态变量,也有普通方法,这些数据和代码分别存在java内存模型的哪些地方? 回答: java内存模型中有堆,方法区,虚拟机栈(一般说栈就是指虚拟机栈),本地方法栈(用来执行本地方法的栈),程序计数器(指示
阅读全文
摘要:使用wait,notify时,一定要先获取该对象的锁,才可以调用。即:外面要使用synchronized包含。注意只有相同的对象,调用notify方法,才可以唤醒调用wait进入唤醒的方法。 不同对象的wait和notify,互不影响。而且永远要在循环中使用wait,因为存在虚假唤醒的情况。即调用n
阅读全文
摘要:前几天面试,被问到java动态代理,当时支支吾吾回答了,用到了字节码生成技术,proxy,Method类。动态代理用到了反射,在面试中经常被问到,自己也有断断续续学习,这方面的知识。但是一直都不是太明白。看了一些博客后,现在将自己的理解整理如下: 首先写了一个car接口类,里面只有一个接口run 接
阅读全文
摘要:题目:比如一个序列为: 1 4 6 3 8 5 最长递增子序列为 1 6 8 (或者 1 3 5) 确定状态转移方程: dp[i]表示以i结尾的最长递增子序列长度。 所以dp[i]=max(dp[j],j=1..i-1且a[j]<arr[i])+1 意思是最后在前面的递增序列后面,直接加一个arr[
阅读全文
摘要:问题:求字符串str1,字符串str2的最长公共子序列 首先确定,状态转移方程。 dp[i][j]表示str1[0..i-1]与str2[0..j-1]的最长公共子序列 首先给dp[0][k]赋值,即:字符str1[0]是否属于str2[o..k]中。 它的取值为0或者1 然后赋值dp[k][0],
阅读全文