Android题目笔记(五)
来源:互联网 发布:软件测试工资待遇2017 编辑:程序博客网 时间:2024/05/26 09:56
1.点击事件被拦截,但是相传到下面的view,如何操作?
getParent().requestDisallowInterceptTouchEvent(true);
2.volatile的原理
参考Java并发编程:volatile关键字解析
一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。
①保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
②禁止进行指令重排序。
3.synchronize的原理 ,lock原理
参考:
JAVA CAS原理深度分析
死磕Java并发:深入分析synchronized的实现原理
Java并发包中Lock的实现原理
Lock与synchronized的区别
①Lock的加锁和解锁都是由java代码配合native方法(调用操作系统的相关方法)实现的,而synchronize的加锁和解锁的过程是由JVM管理的
②当一个线程使用synchronize获取锁时,若锁被其他线程占用着,那么当前只能被阻塞,直到成功获取锁。而Lock则提供超时锁和可中断等更加灵活的方式,在未能获取锁的 条件下提供一种退出的机制。
③一个锁内部可以有多个Condition实例,即有多路条件队列,而synchronize只有一路条件队列;同样Condition也提供灵活的阻塞方式,在未获得通知之前可以通过中断线程以 及设置等待时限等方式退出条件队列。
④synchronize对线程的同步仅提供独占模式,而Lock即可以提供独占模式,也可以提供共享模式
4.翻转一个单项链表 1->2->3->4->5->null =====> 5->4->3->2->1->null
参考Java实现单链表翻转实例代码
public static Node reverseList(Node head) { if (head == null || head.next == null) { return head; } Node reHead = null;// 定义新链表头结点 while (head != null) { Node cur = head.next;// 记录下一个节点 head.next = reHead;// 将rehead节点连接到head节点上 reHead = head;// 让rehead指向head head = cur;// 将head指向下一个节点 } return reHead;}
5.string to integer
参考:
c实现:String to Integer (atoi)
java:
public static int atoi(String string) { if (string == null) { return 0; } char[] str = string.toCharArray(); long cur = 0;// 初始化老是忘记 int num = 0; int i = 0; int flag1 = 0; while (str[i] != '\0' && str[i] == ' ') i++;// 开头空格舍弃 if (str[i] == '-') { flag1++; i++; } else if (str[i] == '+') { i++; } for (; i < str.length; i++) { if (str[i] >= '0' && str[i] <= '9') { if (flag1 == 2) { cur = cur * 10 - (str[i] - '0');// 这里是减法,因为cur符号是负号了 if (cur < -2147483648) return -2147483648; } else if (flag1 == 1) { cur = -str[i] + '0'; flag1++;// 将负数的符号记录到cur里 } else { cur = cur * 10 + (str[i] - '0'); if (cur > 2147483647) return 2147483647; } } else { break; } } num = (int) cur; return num; }
6.合并多个单有序链表(假设都是递增的)
参考:算法题:合并两个有序的链表
7.Activity生命周期简述
参考:深入理解Activity的生命周期
8.Actvity启动模式简述
参考:Android Activity的4种启动模式详解(示例)
9.简绘观察者设计模式UML图
参考:Java设计模式六:观察者模式(Observer)
10.算法,求公共子序列(或者是子串,记不清了)
参考:经典算法题每日演练——第四题 最长公共子序列
参考文章–>https://mp.weixin.qq.com/s/sN_i_IaLUpFBbX9UHIX4NA
- Android题目笔记(五)
- 网上收集Android 题目五
- Android题目笔记(一)
- Android题目笔记(二)
- Android题目笔记(三)
- Android题目笔记(四)
- Android题目笔记(六)
- Android学习笔记五
- Android 学习笔记(五)
- Android笔记五
- Android笔试题目学习笔记
- Android学习笔记(五)
- android学习笔记(五)
- android系统学习笔记五
- Android学习笔记の五
- Android学习笔记(五)
- android学习笔记(五)__Activity
- Android学习笔记(五)
- BUG整理
- 干货 | Elasticsearch5.X Mapping万能模板
- Python学习1
- 接口的申明与使用
- 阿里云服务器 discuz不能发邮件
- Android题目笔记(五)
- Django环境搭建及项目配置
- Windows编程基础--第12节 MFC之树控件CTreeCtrl
- 创建xml文件并保存数据
- R语言-决策树-party包
- 除法
- java堆内存分配与回收策略
- json文件导入hbase
- Electron结合React开发桌面应用