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)记录相关推荐

  1. 牛客网——华为机试(题17:坐标移动)(Java)

    题目描述: 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: ...

  2. 牛客网——华为机试(题15:求int型正整数在内存中存储时1的个数)(Java)

    题目描述: 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例1: 输入: 5 输出: ...

  3. 牛客网——华为机试(题8:合并表记录)(Java)

    题目描述: 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数 然后输入成对的index和valu ...

  4. 删除出现次数最少字符串JAVA_牛客网——华为机试(题23:删除字符串中出现次数最少的字符)(Java)...

    题目描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入描述: 字符串只包含小写英文字母, 不考虑非法输入, ...

  5. 牛客网华为机试考试java_牛客网——华为机试(题17:坐标移动)(Java)

    题目描述: 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. 输入: ...

  6. 牛客网——华为机试(题25:数据分类处理)(Java)

    题目描述: 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码. QQ 用户.手机号码.银行帐号等信息及活动记录. 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出. 输入 ...

  7. (牛客网)华为机试(二)

    (牛客网)华为机试题集解答 在解题前先分享一波oj刷题的固定格式代码,方便输入时使用 import java.util.*; import java.io.*; public class Main{ ...

  8. JavsScript牛客网华为机试(11-20)题解

    牛客网华为机试题解JavaScript版本 华为机试第11-20题解答(js) 11.数字颠倒 12.字符串反转 13.句子逆序 14.字符串排序 15.求int型数据在内存中存储时1的个数 16.购 ...

  9. 牛客网--华为机试在线训练10:字符个数统计

    牛客网–华为机试在线训练10:字符个数统计 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在A ...

最新文章

  1. 揭秘罗永浩直播带货幕后之师
  2. 10.8 ss:查看网络状态
  3. php去掉最后一个,号,织梦当前位置去除最后一个''符号
  4. 揭开.NET 2.0配置之谜(一)
  5. 使用nmcli 实现 bond0 网络组 网桥三种模式
  6. c++ list遍历_Creo二次开发 文件循环遍历
  7. SharePoint 已在此服务器场中安装 ID 为 XXXXXXXXX 的功能。请使用强制属性显式地重新安装此功能。解决方法...
  8. 以非泛型方式调用泛型方法
  9. sympy 求微分方程_Sympy笔记一
  10. python利器的使用-python开发利器之ulipad的使用实践
  11. 如何编写一个项目开发文档
  12. 高德地图车机版缩放版_主图操作-开发指南-高德地图车机版 | 高德地图API
  13. 在Codeblocks下配置GoogleTest单元测试工具
  14. 房卡麻将分析系列之断线重连
  15. cutelyst教程_02 _Cutelyst基础
  16. 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
  17. ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1'
  18. Angular 4 Router
  19. C语言笔记(1.2版本,目前22000字)----未完待续
  20. SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW.

热门文章

  1. 如何在支付宝开直播,这篇入驻教程不要错过,看完你就会了
  2. 成为高薪的AI人工智能工程师的条件
  3. 什么是 Razor?
  4. 优秀网页设计微博汇总
  5. 服务器重启后jar包自动重启
  6. 浙江大学机械系制造所2010届毕业生…
  7. 【素描黑白】精致的IU手绘素描源码文件一键领取哦~
  8. android studio 微信登录界面,如何使用Android Studio开发用户登录界面
  9. 高中数学相关的专业术语
  10. Jmeter如何分析压测结果