选择题挺杂的,做的一般
编程题第一道题思路简单,但实现过程emmm
后面两道都简单,一道反转链表,一道匹配字符串的题目
字符串匹配是说*号可以匹配任意字符,这个简单直接做
反转链表也挺简单的
第一题做了很长时间最后只通过40%,最后卡在对于一个数组
1 1 1 2 2 2 3 3 3 如何求(1+1+1)/1 + (1+1+1)/2 + (1+1+1)/3,几次尝试都超时了。
只能按1/1+1/1+1/1+1/2+1/2+1/2+1/3+1/3+1/3来做,只过了40%
https://blog.csdn.net/qq_42386788/article/details/126669396?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-126669396-blog-126660031.pc_relevant_multi_platform_whitelistv6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-126669396-blog-126660031.pc_relevant_multi_platform_whitelistv6&utm_relevant_index=9
看了别人的题解,就是在定义time的时候定义为浮点数,这样1/3会损失精度,但应该还好。。。
char* b = "hello world!";//sizeof(b0 = 8
char A[] = "hello world!";//sizeof(A) = 13....
https://blog.csdn.net/ican87/article/details/21874321
activity、content provider、reciver、sevice
Cache与主存统一编址,Cache的地址空间属于主存的一部分
内存抖动:指在短时间内有大量的对象被创建或者被回收的现象。
内存抖动产生原因:主要是频繁(很重要)在循环里创建对象(导致大量对象在短时间内被创建,由于新对象是要占用内存空间的而且是频繁,如果一次或者两次在循环里创建对象对内存影响不大,不会造成严重内存抖动这样可以接受也不可避免,频繁的话就很内存抖动很严重),内存抖动的影响是如果抖动很频繁,会导致垃圾回收机制频繁运行(短时间内产生大量对象,需要大量内存,而且还是频繁抖动,就可能会需要回收内存以用于产生对象,垃圾回收机制就自然会频繁运行了)。
内存抖动影响:频繁内存抖动会导致垃圾回收频繁运行,造成系统卡顿。
1 耗时的操作使用线程,提高应用程序响应
2 并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。
3 多CPU系统中,使用线程提高CPU利用率
4 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。
其他情况都使用单线程。
在所有非抢占CPU调度算法中,系统平均响应时间最优的是短任务优先算法
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
自旋锁的定义:当一个线程尝试去获取某一把锁的时候,如果这个锁此时已经被别人获取(占用),那么此线程就无法获取到这把锁,该线程将会等待,间隔一段时间后会再次尝试获取。这种采用循环加锁 -> 等待的机制被称为自旋锁(spinlock)。
https://www.cnblogs.com/cxuanBlog/p/11679883.html
自旋锁是为了实现保护共享资源而提出的一种机制, 其实自旋锁和互斥锁比较类似, 他们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。
2.或是在基类的析构函数中调用该函数,此时派生类以被销毁;
https://www.runoob.com/w3cnote/c-void-intro.html
如果你在一个头文件里定义了static全局变量,在几个源文件中包含这个头文件,结果就是这几个源文件分别都有了一个static全局变量 这就是不管你在其他几个源文件里怎么改,负责输出的那个源文件输出的值永远不变的原因,因为这几个源文件都有一个叫这个名字的变量,这几个变量彼此之间没有任何关系
#Linux下的 0 1 2文件描述符
1 是标准输出(stdout)
2 是标准错误输出(stderr)
0 是标准输入(stdin)
不同文件描述符可以对应同一个文件
程序异常退出,会释放文件描述符
Binder是Android系统中进程间通讯(IPC)的一种方式,也是Android系统中最重要的特性之一。Binder的设计采用了面向对象的思想,在Binder通信模型的四个角色里面;他们的代表都是“Binder”,这样,对于Binder通信的使用者而言,Server里面的Binder和Client里面的Binder没有什么不同,一个Binder对象就代表了所有,它不用关心实现的细节,甚至不用关心驱动以及SM的存在;这就是抽象。