牛客网网易机试模拟题(Android)记录
1.关于http协议以下说法不正确
的是:
- A
1.304表示临时重定向
- B 2.range请求响应一定是用http状态码206表示成功
- C
3.http的header分割符是\r
- D 4.请求参数如果包含%,需要进行encode
HTTP 304 未改变说明无需再次传输请求的内容,也就是说可以使用缓存的内容 301永久重定向、302暂时重定向
http请求字段range:
格式: Range: bytes=start-end
- 请求资源的部分内容(不包括响应头的大小),单位是byte,即字节,从0开始.
- 如果服务器能够正常响应的话,服务器会返回 206 Partial Content 的状态码及说明.
- 如果不能处理这种Range的话,就会返回整个资源以及响应状态码为 200 OK .
http的header分割符:\r\n
2.关于计算机网络,以下说法正确的是
(1)在向下的过程中,需要添加下层协议所需要的首部或者尾部
(2)在向上的过程中不断拆开首部和尾部
(3)在向上的过程中,需要添加下层协议所需要的首部或者尾部
(4)在向下的过程中不断拆开首部和尾部
(5)SMTP属于TCP协议
(6)POP3属于UDP协议
(7)DNS属于TCP协议
(8)Telnet属于UDP协议
POP3属于TCP。
DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议。
Telnet是TCP。
3.以下哪种情况会使得进程由执行状态转变成阻塞状态
A 时间片用完
B 进程调度
C I/O完成
D
I/O请求
执行→阻塞 正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。 知识点:
(1) 就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。(2) 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。(3) 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。(4) 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
1:就绪->执行,当前运行进程阻塞,调度程序选一个优先权最高的进程占有处理机;
2:执行->就绪, 当前运行进程时间片用完;
3:执行->阻塞,当前运行进程等待键盘输入,进入了睡眠状态。
4:阻塞->就绪,I/O操作完成,被中断处理程序唤醒。
4.在JDK1.8中,HashMap没有实现哪个接口( )。
A Map
B
AbstractMap
C Serializable
D Cloneable
HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
Cloneable接口没有定义成员。它通常用于指明被创建的一个允许对对象进行位复制(也就是对象副本)的类。
5.下面关于线程同步说法错误的是()
A 用户模式和内核模式下同步方式不同
B 对于临界区的访问适用于单进程中线程间的同步
C 事件对象适用于多个进程间的各线程实现同步
D
互斥对象也只适用于单进程中线程间的同步
用户模式下的同步构造不涉及cpu模式切换,速度快,但是仅限于单个进程。内核对象同步会导致cpu模式切换,代价比较大,但是支持多个进程间的同步。
只要把临界区置于P(sem)和V(sem)之间,即可实现进程间的互斥。
6.下面关于死锁的说法错误的是()
A 死锁是指多个进程因抢占资源而发生的一种阻塞且相互等待的现象
B 死锁的产生源于系统资源不足和进程推进顺序不当
C 可以通过终止和撤销进程来解除死锁
D
银行家算法用在预防死锁策略中
银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法
7.关于控件TextView的属性,下列使用正确的是 :
A
layout_marginLeft为控件左边框,距离父容器的距离(外边距), paddingLeft为控件内部,距离控件左边框的距离(内边距)
B textview的scrollY属性可以用来设置这个view在其父view里面的相对垂直位置
C inputType为输入类型,可以选择输入纯符号,或者纯数字等.
D Gravity为内部文字摆放的位置,可以选择inside和outside.
textview的scrollY属性设置滚动条的吧
inputType设置文本的类型,用于帮助输入法显示合适的键盘类型
Gravity为内部文字的对齐方式,没有inside和outside
8.关于listview说法下列错误的是:
A 如果希望使用listview,则必须有对应的适配器Adapter才能使其正常工作
B
listview经常使用的Adapter有一个notifyDataSetChanged()方法,当数据有更新时一般会调用此方法通知listview重新渲染 ,此方法的缺陷是会导致listview视图重新回到最上面.
C ListView内部有缓存实现机制,但Adapter的getView实现还是需要自己判断convertView是否是null来做分支处理
D 在getView方法内是不允许做耗时操作的.
- 使用
notifyDataSetChanged()
会记住你划到的位置,重新加载数据的时候不会改变位置,只是改变了数据;- 使用
notifyDataSetInvalidated()
时,数据改变的同时,自动滑到顶部第0条的位置.
9.关于布局容器,下列说法错误的是:
A orientation属性只有LinearLayout才会用到,标识了子控件的摆放顺序.(横向还是纵向)
B ViewGroup是绝大多数布局容器的父类,一般复杂的自定义容器都会继承ViewGroup来做特殊修改.
C 一般情况下,子容器的大小是不可以超过父容器的,但是当属性clipChildren设置成false的时候除外.
D
当某一个子view被成功创建后,是可用通过addview方法被添加到多个不同的布局容器中去的.
同一个View对象,不能同时有两个父容器
10.关于EditText的使用,下列说法错误的是:
A 可以通过setTypeface方法设置文字的字体
B addTextChangedListener方法可以为EditText设置输入过程的监听.
C android:digits属性限制EditText的输入字符,所有输入的字符必须在digits给出的范围内,否则无法输入到EditText文本框.
D
EditText可以使用setEllipsize方法设置MARQUEE效果
MARQUEE:创建一个滚动的文本字幕。EditText不支持该效果
11.Android工程大部分使用gradle进行构建.下列关于gradle脚本相关说法错误的是
A 一般在dependencies内添加各种三方引用,包括jar,module,aar,maven等.
B signingConfigs内用来配置签名文件,一般分release和debug两种配置.
C
gradle的主体打包apk流程是:编译代码和资源,生成dex,生成apk,zipalign,签名
D defaultConfig内用来指定APP的版本号,最低运行版本,等
先签名再zipalign(对齐)
打包流程: 1、打包资源文件,生成R.java文件 2、处理aidl文件,生成相应java 文件
3、编译工程源代码,生成相应class 文件 4、转换所有class文件,生成classes.dex文件 5、打包生成apk
6、对apk文件进行签名 7、对签名后的apk文件进行对齐处理(用到的工具是zipalign)
简答:列举一下Android的Drawable子类,并简单描述下他的功能。再列举下Drawable这个类里面你所了解的方法,并也简单描述下他的功能
首先是Drawable子类
Drawable资源是Android应用中使用最广泛的资源,它不仅可以使用各种格式的图片资源,也可以使用多种xml文件资源。
- 1.一种可以在Canvas上进行绘制的抽象的概念;
- 2.颜色、图片等都可以是一个Drawable;
- 3.Drawable可以通过XML定义,或者通过代码创建;
- 4.Android中Drawable是一个抽象类,每个具体的Drawable都是其子类;
Drawable的分类
Drawable的子类包括
ColorDrawable、GradientDrawable、BitmapDrawable、NinePatchDrawable、InsetDrawable、ClipDrawable、ScaleDrawable、RotateDrawable、AnimationDrawable、LayerDrawable、StateListDrawable、TransitionDrawable、VectorDrawable、ShapeDrawable
1.ColorDrawable
ColorDrawable是最简单的Drawable,也是平时用的最多的,比如:
ColorDrawable是一个专门用来使用指定的颜色来填充画布的Drawable,当它被绘制到画布上时会使用一种指定的颜色填充Paint,在画布上绘制出一块单色区域。
2.BitmapDrawable
BitmapDrawable是对bitmap的一种包装,可以设置它包装的bitmap在BitmapDrawable区域内的绘制方式,如平铺、拉伸填充或者保持图片原始尺寸,也可以在BitmapDrawable区域内部使用gravity指定的对齐方式。
3.GradientDrawable
GradientDrawable表示一个渐变区域,可以实现线性渐变、发散渐变和平铺渐变效果。
4.ScaleDrawable
ScaleDrawable是对一个Drawable进行缩放操作,可以根据level属性控制这个drawable的缩放比例,也可以设置它在容器中的对齐方式。
5.RotateDrawable
RotateDrawable用来控制drawable的旋转,在xml文件中使用rotate作为根元素来创建RotateDrawable
6.AnimationDrawable
AnimationDrawable是用来实现Android帧动画的,就是把一系列的Drawable按照一定的顺序一帧帧的播放;只适用于不要进行控制的帧动画,例如刷新时的进度条素材。
在xml文件中使用作为根节点来创建AnimationDrawable;相关的属性方法如下:
android:oneshot 设置是否需要循环播放,false为循环播放;
duration 帧间隔时间,通常我们会设置为300毫秒;
等等等等
然后是Drawable类的方法
Drawable类的核心是draw函数的实现,这个函数是一个抽象函数,派生类必须要实现他,函数的入参是一个Canvas画布对象,所有需要绘制的东西都最终绘制到画布上面去:
既然绘制提供了画布上下文,那么就还需要提供一个可绘制的区域,下面方法就是用来指定绘制的区域。Drawable在绘制调用draw函数之前必须要先指定绘制的区域,这个区域也是Canvas中要绘制的区域。一旦用户改变了绘制区域时会激发onBoundsChange方法,派生类可以重载onBoundsChange来实现区域变更的处理。
等等
部分参考 https://www.jianshu.com/p/578125001dc2
牛客网网易机试模拟题(Android)记录相关推荐
- 牛客网——华为机试(题17:坐标移动)(Java)
题目描述: 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: ...
- 牛客网——华为机试(题15:求int型正整数在内存中存储时1的个数)(Java)
题目描述: 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例1: 输入: 5 输出: ...
- 牛客网——华为机试(题8:合并表记录)(Java)
题目描述: 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数 然后输入成对的index和valu ...
- 删除出现次数最少字符串JAVA_牛客网——华为机试(题23:删除字符串中出现次数最少的字符)(Java)...
题目描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入描述: 字符串只包含小写英文字母, 不考虑非法输入, ...
- 牛客网华为机试考试java_牛客网——华为机试(题17:坐标移动)(Java)
题目描述: 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: ...
- 牛客网——华为机试(题25:数据分类处理)(Java)
题目描述: 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码. QQ 用户.手机号码.银行帐号等信息及活动记录. 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出. 输入 ...
- (牛客网)华为机试(二)
(牛客网)华为机试题集解答 在解题前先分享一波oj刷题的固定格式代码,方便输入时使用 import java.util.*; import java.io.*; public class Main{ ...
- JavsScript牛客网华为机试(11-20)题解
牛客网华为机试题解JavaScript版本 华为机试第11-20题解答(js) 11.数字颠倒 12.字符串反转 13.句子逆序 14.字符串排序 15.求int型数据在内存中存储时1的个数 16.购 ...
- 牛客网--华为机试在线训练10:字符个数统计
牛客网–华为机试在线训练10:字符个数统计 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在A ...
最新文章
- 揭秘罗永浩直播带货幕后之师
- 10.8 ss:查看网络状态
- php去掉最后一个,号,织梦当前位置去除最后一个''符号
- 揭开.NET 2.0配置之谜(一)
- 使用nmcli 实现 bond0 网络组 网桥三种模式
- c++ list遍历_Creo二次开发 文件循环遍历
- SharePoint 已在此服务器场中安装 ID 为 XXXXXXXXX 的功能。请使用强制属性显式地重新安装此功能。解决方法...
- 以非泛型方式调用泛型方法
- sympy 求微分方程_Sympy笔记一
- python利器的使用-python开发利器之ulipad的使用实践
- 如何编写一个项目开发文档
- 高德地图车机版缩放版_主图操作-开发指南-高德地图车机版 | 高德地图API
- 在Codeblocks下配置GoogleTest单元测试工具
- 房卡麻将分析系列之断线重连
- cutelyst教程_02 _Cutelyst基础
- 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
- ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1'
- Angular 4 Router
- C语言笔记(1.2版本,目前22000字)----未完待续
- SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW.