最新 文章连接,本文不再同步

安卓 每日一题 2019年9-12月问题及答案

文章目录

  • 安卓 每日一题 2019年9-12月问题及答案
    • 安卓2019年09月每日一题
    • 安卓2019年10月每日一题
    • 安卓2019年11月每日一题
    • 安卓2019年12月每日一题

安卓2019年09月每日一题

Android 9月5日题:某学生信息表,设一组表示成绩的关键字序列(24,15,32,28,19,10,40)采用直接插入排序时,当插入记录19到有序表时,为找插入位置需比较次数为( )

A、2

B、3

C、4

D、5

答案:C、4

解析:插入排序是从后往前比的 所以 15 24 28 32的比较方向是 32->28->24->15


Android 9月6日题:下列哪些算法在排序过程中需要一个记录的辅助空间( )

A、直接选择排序

B、直接插入排序

C、冒泡排序

D、归并排序

答案: A BC

解析:

直接选择排序:前面逐渐有序,每次从后面的无序数列中找最大或最小继续添加到前面有序数列中,两两交换需要一个辅助空间

直接插入排序:类似打斗地主,每次抓一张牌,从后往前比较,把新抓的牌放到合适大小的位置,两两交换需要一个辅助空间

冒泡排序:每次把当前无序数列中最大或最小的数交换到此无序数量的最后,两两交换需要一个辅助空间

归并排序:分治法把当前待排数组分成多个子序列,先使每个子序列有序,再使子序列段间有序,需要 O(n)的辅助空间


Android 9月9日题:假设在有序线性表A[1…30]上进行二分查找,则比较五次查找成功的结点数为( )

A、8

B、12

C、15

D、16

答案:C、15

查找一次成功的节点数为1,值为15

查找二次成功的节点数为2,值为7,23

查找三次成功的节点数为4,值为3,11,19,27

查找四次成功的节点数为8,值为1,5,9,13,17,21,25,29

查找五次成功的节点数为15,值为2,3,4,6,8,10,12,14,16,18,20,22,24,26,28,30


Android 9月10日题:自定义Handler 时如何有效地避免内存泄漏问题?

答案:

  1. 自定义的静态handler

  2. 可以加一个弱引用

  3. 在生命周的ondestroy()中removecallbacksandmessages(null)清除Message和Runnable


Android 9月11日题:Activity与Fragment 之间常见的几种通信方式?

答案:1 互相持有对方的引用直接调用

2 Broadcast Receiver

3 EventBus

4 设置接口间接调用

5 Bundle


Android 9月12日题:IP/掩码位为192.168.1.0可用地址和最后一个可用地址分别是什么()

A. 192.168.1.1 192.168.255.255

B. 192.168.1.1 192.168.1.254

C. 192.0.0.1 192.255.255.255

D. 192.0.0.1 192.255.255.254

答案解析:192.168.1.0/24,掩码位是24,所以主机地址只看后面8位就可以了。

如果主机号全0,IP地址代表仅网络号指向的那个网段,该IP代表一个网段;如果主机号全1,IP地址代表网络号指向的全部主机,IP地址代表广播地址;其他就是普通的IP地址,指向网域中的一个主机了

所以答案就是B了


Android 9月16日题:
设置Activity的哪个属性为true时,该Activity会被销毁,其他的不会被销毁?

A.clearTaskOnLaunch

B.finishTaskOnLaunch

C.alwaysRetainTaskState

D.其他几项都不对

答案:B。

分析:

选项A,clearTaskOnLaunch:启动时清除任务,每次返回activity时,该activity上的所有activity都将被clear,即清除其他activity,保留自己,所以不选。

选项B,finishTaskOnLaunch:启动时结束任务,当离开这个activity所在的task,那么用户再返回的时候,该activity都会被finish,即清除自己,保留其他activity,符合题意。

选项C,alwaysRetainTaskState:始终保留任务状态,始终保留自己。

选项D,想都不要想!


Android 9月17日题:退出Activity我们有多种方法,以下选项中下哪一个是不正确的退出Activity的方法?

A. finish()

B. 抛出异常强制退出

C. System.exit()

D. onStop()

答案:C

分析:

选项A是销毁界面;

选项B是抛出异常强制退出;

选项C是整个应用程序退出,停止进程,所以符合题意,是不正确的退出Activity.

选项D是停止。


Android 9月18日题:TCP三次握手时,客户端发送SYN报文给服务器端,服务器端收到SYN报文,回应一个A,客户端收到服务器端的B报文回应一个C,最终进入D状态。

正确答案:

1 SYN

2 SYN

3 ACK

4 Established

答案:三次握手:第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。


Android 9月19日题:当在浏览器输入http://www.jd.com后,执行过程描述有误的是哪个?

A. 客户端浏览器通过DNS解析到www.jd.com的ip地址,通过ip地址找到客户端对应的服务器地址,客户端发起HTTP会话到IP,通过tcp进行封装数据包,输入到网络层

B. 在客户端的网络层,把http会话请求分成报文段,添加源地址和目的地址

C. 客户端的网络层主要通过查找路由确定到达服务器

D. 数据包通过链路层发送到路由器,通过邻居协议查找给定ip地址的mac地址,然后发送ARR请求查找目的地址,得到回应就可以使用ARR的请求应答交换的IP数据包,发送IP数据包到达服务器地址

答案:B

在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口。


Android 9月20日题:关于ContentProvider的下列表述错误的是?()

A.ContentProvider通过Binder机制实现应用数据共享

B.ContentProvider. onCreate ()一定在Application.onCreate()之后执行

C.ContentProvider通过URI来区分外界要坊向的数据集合

D.一个应用可以提供多个ContentProvider

答案:答案是B,


Android 9月21日题:(多选题)关于虚函数,下面哪些描述是正确的 ( )

A. 虚函数是实现方法重载的工具

B. Java中所有的函数都是虚函数

C. 通过虚函数,类体系获得了多态性支持

D. 虚函数必须在子类中实现

E. 虚函数不能够被子类继承

F. 在C++中,基类的析构函数建议为虚析构函数

答案:D、F

解析:C项,java中多态是通过重载和重写实现的。
C++中普通成员函数加上virtual关键字就成为虚函数
Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数


Android 9月24日题:多选题:哪些方法可用于显示Intent启动activity( )

A. setComponent()

B. setClass()

C. setClassName()

D. getClassName()

答案:A、B、C

解析:题目的意思原来是显式intent启动activity有什么方法…

(1)构造方法

//Intentintent = new Intent(Context packageContext,Class<?> cls); //前者为启动活动的上下文,后者为想要启动的目标活动Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

(2)setComponent方法

ComponentNamecomponentName = new ComponentName(this, SecondActivity.class);

Intentintent = new Intent();

intent.setComponent(componentName);

startActivity(intent);

(3)setClass/setClassName方法

Intentintent = new Intent();

intent.setClass(this,SecondActivity.class);// 或者intent.setClassName(this,“top.longsh1z.www.SecondActivity”); // 或者intent.setClassName(this.getPackageName(),“top.longsh1z.www.SecondActivity”);

startActivity(intent);


Android 9月25日题:(多选题)下面属于GLSurfaceView特性的是?

A. 管理一个surface,这个surface就是一块特殊的内存,能直接排版到Android的视图view上

B. 管理一个EGLdisplay,它能让OpenGL把内容渲染到上述surface上

C. 让渲染器在独立的线程里运作,和UI线程分离

D. 可以直接从内存或者DMA等硬件接口取得图像数据

答案:A、B、C

解析:GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染。

GLSurfaceView提供了下列特性:

1、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。(A 正确)

2、管理一个EGLdisplay,它能让opengl把内容渲染到上述的surface上。(B正确)

3、让渲染器在独立的线程里运作,和UI线程分离。(C正确)

4、用户自定义渲染器(render)

5、支持按需渲染(on-demand)和连续渲染(continuous)。

6、一些可选工具,如调试。


每日一题:关于res/raw目录说法正确的是?

A. 这里的文件是原封不动的存储到设备上,不会转换为二进制的格式

B. 这里的文件没有目录结构

C. 这里的文件最终以二进制的格式存储到应用的安装包中

D. 这里的文件都会在R.java中生成唯一ID

正确答案:A、B、D


Android 9月26日题:在软件开发过程中,我们可以采用不同的过程模型,下列有关增量模型描述正确的()

A. 已使用一种线性开发模型,具有不可回溯性

B. 把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件

C. 适用于已有产品或产品原型(样品),只需客户化的工程项目

D. 软件开发过程每迭代一次,软件开发又前进一个层次

答案:B

解析:1. 瀑布模型:提出了软件开发的系统化、顺序方法,强调开发的阶段性,各阶段具有顺序性和依赖性。

2.增量过程模型:1) 增量模型:把软件产品作为一系列的增量构件来设计、编码、集成和测试。2) RAD模型:侧重于短暂开发周期的增量软件过程模型。

3.演化过程模型:原型开发;螺旋模型;协同开发模型

4.统一过程模型:一种以体系结构为核心、迭代及增量的软件过程框架


Android 9月27日题:索引是对数据库表中一个或多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中数据。以下对索引的特点描述错误的是:

A. 加快数据的检索速度

B. 加速表和表之间的连接

C. 在使用分组和排序子句进行数据检索时,并不会减少查询中分组和排序的时间

D. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性

答案:C

索引的特点

1大大加快检索数据的速度

2通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性

3加速表与表之间的连接

4查询语句汇总含有分组或者排序的语句时,速度更快

5查询的过程中,使用索引,使用优化隐藏器,从而提高系统的性能

索引的不足

1创建和维护索引,比较耗费时间,随着数据量的增大而增大

2创建索引,占一定的物理空间(聚簇索引,占用空间会更大)

3在对表进行增删改的时候,索引相应的也需要进行动态的更新

所以这题就选C


Android 9月28日题:ANR产生时, 系统会生成一个跟踪日志文件,文件是()

A. data/anr/traces.txt

B. data/anr/log.txt

C. data/log/traces.txt

D. data/data/log.txt

答案:A

ANR即ApplicationNot Responding,应用无响应。

发生ANR时,系统会产生traces.txt文件,目录为/data/anr

由于该文件的产生是在DVM中的,所以只有运行DVM实例的进程才能产生该文件,也就是说只有Java代码才能产生该文件,App应用的Native层(如AndroidLibrary、用c/c++编译的库)即使异常也不会产生ANR日志文件


Android 9月29日题:Android手机安装的应用都是以apk的形式来进行的。他实质上是个压缩包。在apk包中都没有包含的文件是()

A. 开发过程中的各种资源文件

B. 代码类文件包classes.dex

C. AndroidManifest.xml

D. src下的.java文件

答案:D


Android 9月30日题:多选题)下列描述造成ANR的原因正确的是

A. input事件在5s内没有处理完成会发生ANR

B. 前台广播的onReceive处理事务时超过15s会发生ANR

C. 后台Service在200s内没有处理完成会发生ANR

D. 前台Service在20s内没有处理完成会发生ANR

答案: ACD

解析:B项,广播OnReceive是10S,所以错误,不选。


安卓2019年10月每日一题

Android 10月7日题:关于Java内存区域下列说法不正确的有哪些

A. 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.

B. Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息

C. Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。

D. 方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

答案:BC

解析:A.程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器(偏移地址),Java编译过程中产生的字节码有点类似编译原理的指令,程序计数器的内存空间存储的是当前执行的字节码的偏移地址,每一个线程都有一个独立的程序计数器(程序计数器的内存空间是线程私有的),因为当执行语句时,改变的是程序计数器的内存空间,因此它不会发生内存溢出,并且程序计数器是jvm虚拟机规范中唯一一个没有规定OutOfMemoryError 异常的区域;

B.java虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(StackFrame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的过程。 没有类信息,类信息是在方法区中

C.java堆:对于绝大多数应用来说,这块区域是 JVM 所管理的内存中最大的一块。线程共享,主要是存放对象实例和数组

D.方法区:属于共享内存区域,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

上面部分内容从下面文章中总结:

https://blog.csdn.net/qq_41701956/article/details/81664921


以下JavaScript程序执行后返回的结果是:( )

var p1 = {name:'小明',age:'12',action:function(where,doing){console.log(this.age + '岁的'+this.name + '在' + where + doing);}
}
var p2 = {name:'小红',age:'15'
}
console.log(p1.action.call(p2,'操场上','运动'))

A. 12岁的小明在undefined undefined
B. 12岁的小明在操场上运动
C. 15岁的小红在undefined undefined
D. 15岁的小红在操场上运动 undefined

答案 D


Android 10月8日题:什么是Binder?Android中进程间通信的机制是怎样的?

答案:

Binder是面向对象的IPC,分为Natvie层,Java层,BinderDriver层。Binder有一个守护进程叫ServiceManager,分为Natvie层和Java层,我们可以通过addService和getService等接口来操作Binder对象,Binder对象分为BpBinder和BBinder.

要说清楚IBinder,Binder,BinderProxy以及IInterface的关系,要说清楚ServiceManager,IServiceManager,ServiceManagerNative,ServiceManagerProxy的关系,知道是在SystemServer的ServerThread线程里注册系统级Binder对象,知道可以从Context获取Binder对象。


Android 10月9日题:Android的数据存储方式有哪些?

A. SharedPreferences

B. File

C. SQLite

D. Bundle

答案:A BC

解析:

SharedPrefrences以 xml 数据格式将数据持久化,一般用于存储配置信息;

SQL数据库;

File各种文件保存,保存于手机的存储中。


Android 10月10日题:简答题)为什么在Android中Activity,Fragment之间传递参数需要通过Bundle?有什么限制?

答案:1. Activity间,可能会跨进程,需要Parcel

2.Activity与Fragment或Fragment之间虽然不会跨进程,但是由于Activity可能会被回收,需要为Fragment保存及恢复必要的状态及参数,所以也需要通过Bundle来保证传递的数据可恢复

3.受Binder缓冲区大小影响。自定义类需要实现parcelable接口或serializable接口


Android 10月11日题:(多选题)对于淘宝商城高流量访问,预防Ddos的方法可以有?

A. 限制同时打开SYN半链接的数目。

B. 缩短SYN半链接的Timeout 时间。

C. 关闭不必要的服务。

D. 限制客户端请求服务器时长。

补充:分布式拒绝服务(DDoS:DistributedDenial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

答案:A BC

解析:DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。


Android 10月12日题:(论述题)如何缩减APK包大小?

答题角度:

  1. 代码

  2. 资源

  3. 策略

代码

保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs。

使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小。

nativecode的部分,大多数情况下只需要支持armabi与x86的架构即可。如果非必须,可以考虑拿掉x86的部分。

资源

使用Lint工具查找没有使用到的资源。去除不使用的图片,String,XML等等。assets目录下的资源请确保没有用不上的文件。

生成APK的时候,aapt工具本身会对png做优化,但是在此之前还可以使用其他工具如tinypng对图片进行进一步的压缩预处理。

jpeg还是png,根据需要做选择,在某些时候jpeg可以减少图片的体积。对于9.png的图片,可拉伸区域尽量切小,另外可以通过使用9.png拉伸达到大图效果的时候尽量不要使用整张大图。

策略

有选择性的提供hdpi,xhdpi,xxhdpi的图片资源。建议优先提供xhdpi的图片,对于mdpi,ldpi与xxxhdpi根据需要提供有差异的部分即可。

尽可能的重用已有的图片资源。例如对称的图片,只需要提供一张,另外一张图片可以通过代码旋转的方式实现。

能用代码绘制实现的功能,尽量不要使用大量的图片。例如减少使用多张图片组成animate-list的AnimationDrawable,这种方式提供了多张图片很占空间。


Android 10月13日题:

(问答题)Android与服务器交互的方式中的对称加密和非对称加密分别是什么?

答案:对称加密,就是加密和解密数据都是使用同一个key,这方面的算法有DES。

非对称加密,加密和解密是使用不同的key。发送数据之前要先和服务端约定生成公钥和私钥,使用公钥加密的数据可以用私钥解密,反之。这方面的算法有RSA。ssh 和 ssl都是典型的非对称加密。


Android 10月15日题:(多选题)Android中进程间通信有哪些实现方式?

A. Intent

B. Binder(AIDL)

C. Messenger

D. BroadcastReceiver

答案:全选!全选!ABCD all in!


Android 10月16日题:介绍下实现一个自定义view的基本流程。

答案:1、自定义View的属性编写attr.xml文件

2、在layout布局文件中引用,同时引用命名空间

3、在View的构造方法中获得我们自定义的属性,在自定义控件中进行读取(构造方法拿到attr.xml文件值)

4、重写onMesure

5、重写onDraw


Android 10月17日题:(逻辑推理题)一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第四次关灯,才有劈劈啪啪打耳光的声音响起。请问有多少人戴着黑帽子?

答案:四。

解析:

这是道典型的逻辑题,奥妙就在你得作个假设。假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子―――于是也会有两个人打耳光;可事实是第三次才响起打耳光声,说明全场有三顶黑帽,依此类推,应该是关几次灯,有几顶黑帽。

题目说是第四次关灯,所以一共有四顶黑帽子。


Android 10月18日题:ANR是什么?怎样避免和解决ANR?

答案:ANR:ApplicationNot Responding,即应用无响应

ANR一般有三种类型:

1:KeyDispatchTimeout(5seconds) –主要类型

按键或触摸事件在特定时间内无响应

2:BroadcastTimeout(10seconds)

BroadcastReceiver在特定时间内无法处理完成

3:ServiceTimeout(20seconds) –小概率类型

Service在特定的时间内无法处理完成

超时的原因一般有两种:

(1)当前的事件没有机会得到处理(UI线程正在处理前一个事件没有及时完成或者looper被某种原因阻塞住)

(2) 当前的事件正在处理,但没有及时完成。

UI线程尽量只做跟UI相关的工作,耗时的工作(数据库操作,I/O,连接网络或者其他可能阻碍UI线程的操作)放入单独的线程处理,尽量用Handler来处理UIthread和thread之间的交互。

UI线程主要包括如下:

Activity:onCreate(),onResume(), onDestroy(), onKeyDown(), onClick()

AsyncTask:onPreExecute(), onProgressUpdate(), onPostExecute(), onCancel()

Mainthreadhandler: handleMessage(), post(runnable r)

other


Android 10月21日题:(问答题)Android多线程的实现方式有哪些?

答案:1.Handler+Thread

2.AsyncTask

3.ThreadPoolExecutor

4.IntentService

Thread& AsyncTask

Thread可以与Loop 和Handler 共用建立消息处理队列

AsyncTask可以作为线程池并行处理多任务


Android 10月23日题:(多选题)进程a读取b进程中的某个变量(非共享内存),可行的方式有()

A. b进程向消息队列写入一个包含变量内容的消息,a进程从队列中读出

B. 通过本地环路通信

C. 如果a、b 非亲属,那么a通过命名管道把这个变量的地址发给b进程

D. 如果b是a 进程的子进程,那么b直接读取变量内容即可

答案:A B

解析:

选项C:命名管道虽然可以通讯,但是把变量的地址传递过去是没有用的,因为不同的进程的地址空间是独立的,谁也不能访问谁的,只有传值才行,传地址是不行的,所以C错;

选项D:子进程虽然是由父进程fork()出来的,但是仍然属于两个进程,不同进程之间也是独立的,子进程无权读取父进程的变量。


Android 10月24日题:(单选题)下面关于Android UI框架描述的选项中有误的一项是()

A. Android中所有的 UI(用户界面)元素都是使用 View和ViewGroup 对象建立的。

B. ViewGroup是一个可以将一些信息绘制在屏幕上并与用户产生交互的对象。

C. ViewGroup是一个包含多个的 View和ViewGroup 的容器,用来定义UI 布局。

D. Android使用 View类作为界面开发的超类,所有的界面开发都与View有关。

答案:B

解析:View是所有UI组件的基类,而ViewGroup是容纳View及其派生类的容器,ViewGroup也是从View派生出来的。一般来说,开发UI界面都不会直接使用View和ViewGroup(自定义控件的时候使用),而是使用其派生类。


下面关于垃圾收集的说法正确的是

A.一旦一个对象成为垃圾,就立刻被收集掉。

B. 对象空间被收集掉之后,会执行该对象的finalize方法

C. finalize方法和C++的析构函数是完全一回事情

D. 一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此

正确答案: D


Android 10月25日题:(单选题)抽象类和接口的区别,一下说法错误的是

A. 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。

B. abstract class 在 Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,实现多重继承。接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。

C. 在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法默认都是public abstract 类型的。

D. abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"has-a"关系,interface表示的是"is-a"关系。

答案:D


Android 10月28题:(简答题)什么是类加载器?类加载器有哪些?

答案:通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。

主要有一下四种类加载器

1.启动类加载器:这个类加载器负责放在<JAVA_HOME>\lib目录中的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库。用户无法直接使用。

2.扩展类加载器:这个类加载器由sun.misc.Launcher$AppClassLoader实现。它负责<JAVA_HOME>\lib\ext目录中的,或者被java.ext.dirs系统变量所指定的路径中的所有类库。用户可以直接使用。

3.应用程序类加载器:这个类由sun.misc.Launcher$AppClassLoader实现。是ClassLoader中getSystemClassLoader()方法的返回值。它负责用户路径(ClassPath)所指定的类库。用户可以直接使用。如果用户没有自己定义类加载器,默认使用这个。

  1. 自定义加载器:用户自己定义的类加载器。

Android 10月29日题:(简单题)判断一个对象是否存活有哪些方法?

答案:1.引用计数法

所谓引用计数法就是给每一个对象设置一个引用计数器,每当有一个地方引用这个对象时,就将计数器加一,引用失效时,计数器就减一。当一个对象的引用计数器为零时,说明此对象没有被引用,也就是“死对象”,将会被垃圾回收.

引用计数法有一个缺陷就是无法解决循环引用问题,也就是说当对象 A 引用对象 B,对象B 又引用者对象 A,那么此时 A,B 对象的引用计数器都不为零,也就无法完成垃圾回收,所以主流的虚拟机都没有采用这种算法。

  1. 可达性算法(引用链法)

该算法的思想是:从一个被称为 GCRoots 的对象开始向下搜索,如果一个对象到 GC

Roots没有任何引用链相连时,则说明此对象不可用。


Android 10月30日题:Android启动Service的两种方式是什么? 它们的适用情况是什么?

答案:如果后台服务开始后基本可以独立运行的话,可以用startService。音乐播放器就可以这样用。它们会一直运行直到你调用stopSelf或者stopService。你可以通过发送Intent或者接收Intent来与正在运行的后台服务通信,但大部分时间,你只是启动服务并让它独立运行。如果你需要与后台服务通过一个持续的连接来比较频繁地通信,建议使用bind()。比如你需要定位服务不停地把更新后的地理位置传给UI。Binder比Intent开发起来复杂一些,但如果真的需要,你也只能使用它。

startService:生命周期与调用者不同。启动后若调用者未调用stopService而直接退出,Service仍会运行

bindService:生命周期与调用者绑定,调用者一旦退出,Service就会调用unBind->onDestroy


Android 10月31日题:GC(GarbageCollection,垃圾收集,垃圾回收机制)的两种判定方法是?

答案:1. 引用计数法:指的是如果某个地方引用了这个对象就+1,如果失效了就-1,当为 0 就会回收但是 JVM 没有用这种方式,因为无法判定相互循环引用(A 引用 B,B 引用 A)的情况。

2.引用链法:通过一种 GCROOT 的对象(方法区中静态变量引用的对象等-static变量)来判断,如果有一条链能够到达 GCROOT 就说明,不能到达 GCROOT 就说明可以回收。


安卓2019年11月每日一题

Android 11月1日题:

(简述题)Java虚拟机、Dalvik虚拟机、ART虚拟机的区别是?

答案:Java虚拟机:

1、java虚拟机基于栈。 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多。

2、java虚拟机运行的是java字节码。(java类会被编译成一个或多个字节码.class文件)

Dalvik虚拟机:

1、dalvik虚拟机是基于寄存器的

2、Dalvik运行的是自定义的.dex字节码格式。(java类被编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,应用运行时dalvik虚拟机利用JIT(Just In Time,即时编译技术)将其转变为机器码,进而执行以读取指令和数据

3、常量池已被修改为只使用32位的索引,以 简化解释器。

4、一个应用,一个虚拟机实例,一个进程(所有android应用的线程都是对应一个linux线程,都运行在自己的沙盒中,不同的应用在不同的进程中运行。每个android dalvik应用程序都被赋予了一个独立的linux PID(app_*))

ART虚拟机:
在安装时,将dex直接转为机器码,会增加10%-20%存储空间,应用运行时,直接执行机器码


Android 11月4日题:简述 java 内存分配与回收策率以及 Minor GC 和Major GC.

答案:

  1. 对象优先在堆的 Eden 区分配。

  2. 大对象直接进入老年代。

  3. 长期存活的对象将直接进入老年代. 当 Eden 区没有足够的空间进行分配时,虚拟机会执行一次 Minor GC.Minor Gc 通常发生在新生代的 Eden 区,在这个区的对象生存期短,往往发生 Gc 的频率较高,回收速度比较快;Full Gc/Major GC 发生在老年代,一般情况下,触发老年代 GC的时候不会触发 Minor GC,但是通过配置,可以在 Full GC 之前进行一次 MinorGC 这样可以加快老年代的回收速度。


Android 11月5日题: 下列关于HashMap的描述,哪一项是错误的?

A. HashMap基于哈希表实现,内部通过链表解决冲突问题

B. HashMap实现了Serializable接口,支持序列化

C. HashMap是线程安全的

D. HashMap中key和value都允许为null

答案:C

解析:

1、HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口

2、HashMap 的实现不是同步的,这意味着它不是线程安全的。(线程安全:一个线程访问某数据时,另一个线程不会改变其值造成数据不一致或者数据污染。)

3、HashMap对象的key、value值均可为null。

Hashtable对象的key、value值均不可为null,线程同步的,只有一个对象锁。
ConcurrentHashMap 线程安全,多个对象锁,效率更高


Android 11月5日题:

如何把一个应用设置为系统应用?

答案:

成为系统应用,首先要在对应设备的 Android 源码 SDK 下编译,编译好之后:

此 Android 设备是 Debug 版本,并且已经 root,直接将此 apk 用 adb 工具 push 到 system/app 或 system/priv-app 下即可。

如果非 root 设备,需要编译后重新烧写设备镜像即可。

有些权限(如 WRITE_SECURE_SETTINGS ),是不开放给第三方应用的,只能在对应设备源码中编译然后作为系统 app 使用。


Android 11月5日题:小明非常喜欢和朋友们一起玩。

小明有n个朋友当前在一根数轴上,每个朋友当前在整数x[i]坐标位置。

小明向他们发出一个移动的信号,每个朋友就向左或者向右移动s距离(每个朋友的选择是独立的,都可以选择向左或者向右)。

为了在一起玩耍方便,小明希望移动之后最左边的朋友和最右边的朋友距离最近,小明想知道最近距离为多少。

答案:4.

例如小明有三个朋友分别所在数轴坐标为-7, 4, 7, s = 5

那么第一个朋友-7向右移动s,变为-2

第二个朋友4向左移动s,变为-1

第三个朋友7向左移动s,变为2。

现在最左和最右的朋友距离是4,没有比这个更优的方案了。


Android 11月8日题:

以下意图那个是用来描述ADAPTER(适配器)?( )

A.定义一个用于创建对象的接口,让子类决定实例化哪一个类

B. 将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容而不能一起工作的那些类一起工作

C. 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作

D. 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下作用于这些元素的新操作

答案:B

解析:将一个类的接口转换成客户希望的另外一个接口。该模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适用场景如下:

已经存在的类的接口不符合我们的需求;

创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作;

在不对每一个都进行子类化以匹配它们的接口的情况下,使用一些已经存在的子类。


Android 11月11日题:当 Activity 被消毁时,如何保存它原来的状态?

A、实现 Activity 的onSaveInstanceState()方法

B、实现 Activity 的onSaveInstance()方法

C、实现 Activity 的onInstanceState()方法

D、实现 Activity 的 onSaveState()方法

答案:A

答案解析:onSaveInstanceState()

当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。


Android 11月12日题:两个Activity之间跳转时必然会执行的是哪几个方法?

答案:一般情况下比如说有两个activity,分别叫A,B。

当在A 里面激活B 组件的时候, A会调用onPause()方法,然后B调用onCreate() ,onStart(), onResume()。

这个时候B覆盖了A的窗体, A会调用onStop()方法。

如果B是个透明的窗口,或者是对话框的样式, 就不会调用A的onStop()方法。

如果B已经存在于Activity栈中,B就不会调用onCreate()方法。


Android 11月13日题:@+id/资源ID名,@id/资源ID名,@android:id/资源ID名三种id格式的区别,下面哪个说法是错误的?

A、@+id/资源ID名用来新定义资源的ID

B、@id/资源ID名:表示引用已经存在的资源

C、@android:id/资源ID名表示应用系统存在的资源

D、@+id/资源ID名:表示引用已经存在的资源

答案:D

答案解析:android:id="@+id/new_name" 开发者为当前的控件或者布局新定义一个id名称。该ID名称在R.java文件中会分配一个唯一的int型常量,用于对资源引用的索引。(如果R.java中存在这个值则直接使用存在的值,否则会在R.java文件中生成 new_name值)

android:id="@id/defined_name"

引用一个名称为defined_name的id资源。该引用针对的是开发者自定义的id资源。(如果R.java中存在这个值,则使用此值);否则会造成编译错误。

android:id="@android:id/sys_name"

引用名称为sys_name的系统内部资源。


Android 11月14日题:关于Message、Handler、MessageQueue、Looper以下描述错误的是?

A、Message消息,理解为线程间交流的信息,处理数据后台线程需要更新UI,则发送Message内含一些数据给UI线程。

B、Handler处理者,是Message的主要处理者,负责Message的发送,Message内容的执行处理。

C、Message Queue消息队列,用来存放通过Handler发布的消息,按照先进后出执行。

D、Looper是每条线程里的MessageQueue的管家。

答案:C

答案解析:Android中main函数已经为UI线程建立了looper,所以主线程默认可以使用handler,子线城中创建handler前要先创建当前线程的looper,不然handler的构造函数会找不到looper的引用而报错!不是handler在哪个线程定义就属于哪个线程,而是用哪个线程的looper创建就会在哪个线程中执行,因为looper是threadlocal的


Android 11月18日题:Parcelable 为什么效率高于Serializable ?

答案:Serializable是通过I/O读写存储在磁盘上的,使用反射机制,序列化过程较慢,且在序列化过程中创建许多临时对象,容易触发GC。Parcelable是直接在内存中读写的,自已实现封送和解封(marshalled &unmarshalled)操作,将一个完整的对象分解成Intent所支持的数据类型,不需要使用反射,所以Parcelable具有效率高,内存开销小的优点。


Android 11月19日题:View的onAttachedToWindow,onDetachedFromWindow 调用时机,使用场景是什么?

答案:Attached就是附加,Detached就是分离。 onAttachedToWindow就是当这个View附加到Window(每个Activity里面都对应着一个Window)的时候,这个方法就会被回调。onDetachedFromWindow刚好相反,它是当View与Window分离的时候回调。view需要附加到window显示,所以比如需要让view执行动画,动画可以在attached启动,在detached停止。


Android 11月20日题:AppCompatTextView是什么,在AppCompatActivity中为什么会把TextView替换为AppCompatTextView?

答案:在AppCompatActivity的onCreate方法中会对LayoutInflater设置Factory2(实现为AppCompatDelegateImpl),当LayoutInflater在inflate布局的时候,会优先调用Factory2的onCreateView方法,方法实习中再利用AppCompatViewInflater创建对应的view。在AppCompatViewInflater中进行了替换。

AppCompat开头的组件,都实现了TintableBackgroundView的接口,目的是为了能够让旧版本(5.0以下)能够兼容BackgroundTint背景着色(item被选中后的变色效果)。


Android 11月21日题:如果Android应用程序需要设置屏幕方向为横屏方式显示,那么需要在AndroidMainfest.xml文件增加哪种权限 :?

答案:android.permission.SET_ORIENTATION


Android 11月22日题:有一张尺寸为 72*72 像素的图片,其采用 ARGB8888 格式存储,现将其置于某应用的 drawable-xxhdpi 目录中,在屏幕密度为 xhdpi的手机上运行此应用。 问:此图片不经过采样直接加载后将占用多少 byte 内存?()

A、20736

B、5184

C、9216

D、2304

答案:C

答案解析:图像占用内存的公式是:numBytes = width * height * bitsPerPixel / 8 ,其中bitsPerPixel是根据图片的像素格式计算出的像素格式如 ARGB8888 。

对于每一个像素点使用4个byte来表示:1个byte(8位)代表red,另外3个byte分别代表green、blue和alpha透明通道。这个就简称ARGB8888

drawable-xxhdpi资源文件夹代表屏幕密度也决定了占用内存,xxhdpi的屏幕密度(每英寸的像素点)480

图像宽度(width)×图像高度(height)×每一个像素的位数(bytesperpixel) = 内存大小

72/480320 * 72/480320 * 4 = 9216


Android 11月25日题:class.forname与classloader.loadclass有什么区别?类的生命周期是怎样的?

答案:类加载过程有:加载、验证、准备、解析、初始化、使用、卸载

Class.forName(className)方法,内部实际调用的方法是 Class.forName(className,true,classloader);

第2个boolean参数表示类是否需要初始化, Class.forName(className)默认是需要初始化。

一旦初始化,就会触发目标对象的 static块代码执行,static参数也也会被再次初始化。

ClassLoader.loadClass(className)方法,内部实际调用的方法是 ClassLoader.loadClass(className,false);

第2个 boolean参数,表示目标对象是否进行链接,false表示不进行链接,

不进行链接意味着不进行包括初始化等一些列步骤,那么静态块和静态对象就不会得到执行


Android 11月26日题:Class.isAssignableFrom与 instanceof 区别

答案:isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。

而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。


Android 11月27日题:事件分发原理?

答案:事件分发,其实就是一个责任链的变种,这个责任链,是一个设计模式。

在Android中,当最顶层的View收到事件之后,会一级一级地往下传,在每一级View中,它们各自都有权利去处理(也就是拦截)这个事件,如果这次的事件传到了最底层的View,也没能处理的话,就会从这个最底层的View一级一级地向上传回去。


Android 11月28日题:retrofit中使用jdk动态代理实现,那jdk中动态代理的实现原理是?

答案:jdk动态代理只能代理接口,类似于编写一个接口实现类,其构造方法接收InvocationHandler参数,InvocationHandler相当于回调接口,在这个类中的接口方法实现中执行InvocationHandler的invoke方法回调出去。

与直接编写代码不同的是,这个接口的实现类是由jvm在运行期间动态生成的。在加载一个类时,类的数据是由读取class文件到内存中而来,动态代理直接就在内存中生成一份class的数据。


Android 11月29日题:Android APP开发过程中,下列的那些做法是不推荐的?

a:针对特定屏幕密度使用特定的图标和位图

b:用到的数据资源如字符串,长度等统一定义在资源文件xml中

c:在程序和布局视图中,直接赋值字符串常量或颜色等属性

d:统一编码规范,命名规范,资源引用规范等以便于管理或后期维护

答案:C 不推荐直接写在在布局xml中 建议抽取成变量 放在string.xml 和color.xml 中 便于集体修改


安卓2019年12月每日一题

Android 12月9日题:如何停止一个正在运行的线程

答案:使用共享变量的方式在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号,通知中断线程的执行。

使用interrupt方法终止线程,如果一个线程由于等待某些事件的发生而被阻塞,比如当一个线程调用Thread.join()方法,或者Thread.sleep()方法,

在网络中调用ServerSocket.accept()方法时,都有可能导致线程阻塞,即使主程序中将该线程的共享变量设置为true,但该线程此时根本无法检查循环标志,当然也就无法立即中断。

使用Thread提供的interrupt()方法,该方法不会中断一个正在运行的线程,但是它可以使一个被阻塞的线程抛出一个中断异常,从而使线程提前结束阻塞状态,退出堵塞代码


Android 12月10日题:设计模式六大原则

答案:单一职责原则、开放-关闭原则、里氏替换原则、依赖倒转原则、接口隔离原则、迪米特法则


Android 12月11日题:运行结果

public staticvoid main(String[] args){int i = 0;System.out.println((i++)+(++i)+(i++)+(++i));System.out.println(i);
}

答案:

int a = i++; //a= 0, i = 1

int b = ++i; //b = 2, i = 2

int c = i++; //c = 2, i = 3

int d = ++i; // d=4, i = 4

a + b + c + d;// 0 + 2 + 2 + 4 = 8


Android 12月12日题:Broadcast注册方式与区别

答案:

一、Brodcast注册方式1、静态注册;2、动态注册;

二、静态注册:在清单文件manifest中注册,当程序退出之后还可以收到该广播。不能控制具体某个时间点接收和不接收广播。

三、动态注册:通过代码的方式注册context.registerReceiver(broadcastReceiver),注册的同时注意在不需要接受的时候进行反注册context.unregisterReceiver(broadcastReceiver);避免内存泄漏, 动态注册可以很好的控制广播接受。

从Android 8.0(API 26)开始,对于大部分隐式广播(广播的对象不是针对你开发的APP),不能在manifest中声明receiver,如果需要使用隐式广播,需要使用context.registerReceiver 的方法。


Android 12月13日题:单例的DCL方式下,那个单例的私有变量要不要加volatile关键字

答案:需要,new某个对象,可以分解为:

1 memory=allocate();// 分配内存 相当于c的malloc

2 ctorInstanc(memory) //初始化对象

3 instance=memory //设置instance指向刚分配的地址

在编译器运行时,可能会出现重排序从1-2-3 排序为1-3-2

如此在多线程下就会出现问题例如现在有2个线程A,B

线程A在执行第5行代码时,B线程进来,而此时A执行了 1和3,没有执行2,

此时B线程判断instance不为null 直接返回一个未初始化的对象,就会出现问题

而用了volatile,上面的重排序就会在多线程环境中禁止,不会出现上述问题。


Android 12月16日题:项目中不同模块的同名资源,会不会覆盖?谁覆盖谁,是随机的吗?具体规则是怎么样的呢?

答案:会。不是。

app的优先级要高于module,而module之间的优先级则由app/build.gradle里面dependencies中的implementation顺序决定的。


Android 12月18日题:SurfaceView可以在子线程刷新UI吗?

答案:可以


Android 12月19日题:一个进程可以执行多个app吗?

答案:可以


Android 12月20日题:scrollTo()和scollBy()的区别?

答案:scollBy内部调用了scrollTo,它是基于当前位置的相对滑动;而scrollTo是绝对滑动,因此如果使用相同输入参数多次调用scrollTo方法,由于View的初始位置是不变的,所以只会出现一次View滚动的效果。


Android 12月23日题:EventBus是单例的,但是为什么默认构造函数是public的呢?

答案:EventBus可能有多条总线,订阅者注册到不同线上的 EventBus,通过不同的实例来发送数据,不同的 EventBus 是相互隔离开的,订阅者就都只会收到注册到该线上的事件。


Android 12月24日题:Android 中的动画有哪几类?

答案:帧动画、补间动画、属性动画


Android 12月25日题:补间动画分为哪几种形式

答案:补间动画可以分为四种形式,分别是alpha(淡入淡出),translate(位移),scale(缩放),rotate(旋转)。


Android 12月26日题:内存溢出和内存泄漏有什么区别?

答案:程序运行时所需的内存大于程序允许的最高内存,这时会出现内存溢出;应该被回收的内存,由于各种原因回收不了,这就是内存泄漏。内存泄漏过多,就容易导致内存溢出。


Android 12月27日题:Bitmap很容易造成OOM,一般有几种优化方式?

答案:3种,1.使用缓存; 2.压缩图片; 3.及时回收;


Android 12月30日题:CAS机制是什么?

答案:(Compare and Swap)比较并替换。能够保证一个变量的原子性操作,

属于乐观锁,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。


Android 12月31日题:Thread的yield和join方法

答案:yield()方法是停止当前线程,让同等优先权的线程或更高优先级的线程有执行的机会。如果没有的话,那么yield()方法将不会起作用。

join方法是用于在某一个线程的执行过程中等待被调用的线程执行结束后,再继续执行当前线程。


以上内容转载自微信公众号: 享学课堂,详细连接见目录

安卓 每日一题 2019年9-12月问题及答案相关推荐

  1. 绝地求生12月18日服务器信息,绝地求生12月18号几点更新维护完 2019绝地求生12月18日更新维护开服时间...

    绝地求生12月18日几点更新维护完?绝地求生在12月18日早上8点半正式服停机维护更新,维护期间玩家们不能登录游戏,需要等待维护结束开服,各位还不清楚本次更新维护时间安排的玩家,下面小编带来了2019 ...

  2. c语言省二历年真题讲解安徽,安徽省计算机等级二考试真题C语言年12月.doc

    安徽省计算机等级二考试真题C语言年12月 机密☆启用前 二〇一三年下半年全国高等学校(安徽考区) 计算机水平考试试卷 (二级 C语言程序设计) 考生须知: 1.请将准考证号末两位填在试卷第2页右上方的 ...

  3. 电子学会青少年软件编程 Python编程等级考试一级真题解析(判断题)2021年12月

    青少年编程 Python编程等级考试一级真题解析(判断题)2021年12月 二.判断题(共10题,共20分) 26. 变量名大小写是没有区分的,如变量名stuname和StuName是没区别的.( ) ...

  4. 2019年pubg服务器维护,《绝地求生》2019绝地求生12月18日更新维护开服时间

    原标题:<绝地求生>2019绝地求生12月18日更新维护开服时间 2019绝地求生12月18日更新维护时间 绝地求生在北京时间12月18日(星期三)08点30分开始正式服的停机维护.由此给 ...

  5. 安卓 每日一题 2020年3月问题及答案

    Android 3月2日题: onMeasure是干什么的? 答案: onMeasure方法主要是用于度量ViewGroup的子view的大小同时确定和保存自己ViewGroup的大小,将xml中的布 ...

  6. 安卓 每日一题 2020年5-6月问题及答案

    最新 文章连接,本文不再同步 Android5月7日题: 在使用 HashMap 的时候,用 String 做 key 有什么好处? 参考答案: HashMap 内部实现是通过 key 的 hashc ...

  7. 安卓 每日一题 2020年9-10月问题及答案

    最新 文章连接,本文不再同步 Android9月1日题: 请解释下 Android 程序运行时权限与文件系统权限的区别? 参考答案: apk 程序是运行在虚拟机上的,对应的是 Android 独特的权 ...

  8. 安卓 每日一题 2020年4月问题及答案

    最新 文章连接,本文不再同步 Android4月1日题: 什么是代理模式 答:为其他对象提供一种代理以控制对这个对象的访问,它主要解决在直接访问对象时带来的问题, 比如说:要访问的对象在远程的机器上. ...

  9. 2019年12月计算机统考答案,2019年12月计算机等级WPS考前冲刺练习题及答案

    [导语]2019年12月计算机等级考试已经进入冲刺阶段,为了方便考生及时有效的备考,那么,无忧考网为您精心整理了2019年12月计算机等级WPS考前冲刺练习题及答案,把握机会抓紧练习吧.如想获取更多计 ...

最新文章

  1. Linux下mysqldump的使用
  2. ML之RFDT:利用RF(RFR)、DT(DTR)两种算法实现对boston(波士顿房价)数据集进行训练并预测
  3. JZOJ 5050. 【GDOI2017模拟一试4.11】颜色树
  4. (转)深入理解Java中的final关键字
  5. 2018年12月计算机一级试题答案,2018年12月计算机一级MSOffice冲刺题及答案(7)
  6. 大气新闻出版社网站模板
  7. 移植marvell poncat3 demo板的总结
  8. Fdfs环境搭建及整合Java
  9. 基于simulink的模糊PID控制器设计与仿真
  10. 采用python语言对csv文件写入、最可能采用的字符串方法_2020尔雅无人机原理与构造答案章节答案...
  11. chm文件打开出现已取消该网页的导航
  12. js文件 格式_robots文件只能放在网站根目录吗?
  13. Google的按图搜索,搜索质量很高哦!
  14. 【状压DP】【cofun1375】麦田
  15. 蝙蝠侠前传2:暗夜骑士
  16. Android 通过okhttp + jsoup 爬虫爬取网页小说
  17. gmap.net基础详细介绍
  18. Oracle 11g 数据库基础教程
  19. 软件测试工程师晋升之路
  20. 算法设计方法:递归的内涵与经典应用

热门文章

  1. SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!
  2. mysql 数据库的编辑工具有哪些_常用的MySQL数据库管理工具有哪些
  3. 蒙特卡罗MCNP学习汇总(三)----源项基础(数据卡\源卡编写)
  4. 【历史上的今天】11 月 25 日:P2P 鼻祖 Napster 被收购;机械计算器之父诞生;高春辉的个人网站
  5. 审批业务流程方案设计
  6. 图像分割与提取:交互式前景提取(附OpenCV代码实现)
  7. 广州穗雅医院健康汇:为什么口腔溃疡会反反复复?
  8. thymeleaf 使用手册
  9. 数据库系统原理与设计——投影运算、选择运算
  10. 计算机基础题精选(一)