- 博客(7)
- 收藏
- 关注
原创 Android事件分发机制
Activity的事件分发dispatchTouchEventpublic boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { //作用:实现屏保功能,该方法时空方法。当activity位于栈顶时,触屏点击按home、back、menu等会触发此方法 onUserInteraction(); } if (.
2020-06-24 10:32:40 100
原创 JAVA虚拟机-运行时数据区
1.PC计数器:Java虚拟机支持多条线程同时运行,每条Java虚拟机线程都有自己的pc寄存器,在任意时刻,一条Java虚拟机线程只会执行一个方法的代码。这个正在被线程执行的方法称为线程的当前方法。如果当前方法不是native的,pc寄存器保存Java虚拟机正在执行的字节码指令地址,如果该方法是native的,pc寄存器的值为undefined。2.Java虚拟机栈(Java栈):每条Java虚拟机线程都有自己私有的虚拟机栈,这个栈与线程同时创建,用于存储栈帧(栈帧可在堆中分...
2020-05-28 16:29:37 75
原创 算法-链表
/** * 反转链表 递归 */fun reverseLinkedRe(node: Node?): Node? { if (node?.getNodeNext() == null) { return node } val newNode: Node? = reverseLinkedRe(node.getNodeNext()) node.getNodeNext()?.setNodeNext(node) node.setNodeNext(null).
2020-05-27 17:49:24 88
原创 算法-二叉树
二叉树的构建/** * 根据链表数据构建LinkedList<Integer> linkedList = new LinkedList(Arrays.asList(new Integer[]{3,2,9,null,null,10,null,null,8,null,4}));*/private TreeNode creatTree(LinkedList<Integer> linkedList) { TreeNode treeNode = null; if (
2020-05-27 11:18:38 93
原创 算法-约瑟夫问题
约瑟夫问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:6,4,5,2,1,3。 //队列private int jp(int n, int m) { Queue<Integer> queue = new LinkedList<>(); for (int i = 0; i <= n ; i++) { queue.add(i); } int lastV.
2020-05-27 10:54:45 333
原创 算法-斐波那契数列
/** * *一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一 个n级的台阶总共有多少种跳法 * f(n) = f(n-1) + f(n-2) * preFirst = f(n-1) * preSecond = f(n-2) * @param n * @return */public static int getFibonacci(int n) { if (n < 3) { return n; } int result = 0;.
2020-05-27 10:46:19 83
原创 算法-排序
/** * 冒泡排序 + 优化 */fun bubbleSort(array: Array<Int>) { if (array.isEmpty()) return for (i in 0 until array.size - 1) { //交换边界 var lastExchangeIndex = array.size - 1 //数列是否有序 var isSort = true var so.
2020-05-27 10:17:25 94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人