判断题
1. 原生类中的数据类型均可任意转换。「错误」
解析
原生类是指Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。那么原生类为基本数据类型,有八种,这样转换的时候就有表达范围问题。
1、所占位数少的可以转换为所占位数多的类型,比如byte转char,char转int等;
2、而所占位数多的转为所占位数少的默认情况下不能实现转换,需要强制类型转换,这样可能会丢失一部分原始数据;
3、此外,boolean类型数据和其他七种不能互相转换备注:
八种基本数据类型:byte、short、int、long、float、double、boolean、char。
1、byte型,8位、有符号的以二进制补码表示的整数;
2、short型,16位、有符号的以二进制补码表示的整数;
3、int型,32位、有符号的以二进制补码表示的整数;
4、long型,64位、有符号的以二进制补码表示整数;
5、float单精度、32位、符合IEEE 754标准的浮点数
6、double双精度、64位、符合IEEE 754标准的浮点数;
7、char类型是一个单一的 16 位 Unicode 字符;
8、booleanboolean数据类型表示一位的信息;
2.用overridePendingTransition修改Activity的进入和退出动画 「正确」
解析
有两种方式设置Activity的进入和退出动画:
1.直接在代码中设置,需要使用到Activity的overridePendingTransition方法,该函数必须在调用startActivity()或者finish()后立即调用,且只有效一次;
2.通过自定义Activity的主题来实现。
由于在代码中设置窗口的进入和退出动画会受到诸多限制,比如在非Activity类中调用startActivity()方法的情况。因此第二种方式更加适用。
备注:
Android中有三种动画 帧动画、补间动画、属性动画「属性动画3.0加入」
帧动画 是通过连续播放已经排列好的图片来实现动画效果,类似于放电影;
补间动画 开发者只需指定动画开始和结束"关键帧", 而动画变化的"中间帧"则由系统计算并补齐。
补间动画效果有如下这五种,第五种是前面几种的组合
- AlphaAnimation:透明度渐变效果,创建时许指定开始以及结束透明度,还有动画的持续 时间,透明度的变化范围(0,1),0是完全透明,1是完全不透明;对应<alpha/>标签!
- ScaleAnimation:缩放渐变效果,创建时需指定开始以及结束的缩放比,以及缩放参考点, 还有动画的持续时间;对应<scale/>标签!
- TranslateAnimation:位移渐变效果,创建时指定起始以及结束位置,并指定动画的持续 时间即可;对应<translate/>标签!
- RotateAnimation:旋转渐变效果,创建时指定动画起始以及结束的旋转角度,以及动画 持续时间和旋转的轴心;对应<rotate/>标签
- AnimationSet:组合渐变,就是前面多种渐变的组合,对应<set/>标签
3.广播的种类可以分为标准广播,有序广播,本地广播「错误」
解析
广播主要分为两种:标准广播和有序广播。
标准广播: 完全异步执行,所有广播接收器都可以接收到,没有先后顺序。 效率高,无法截断。
有序广播:同步执行的广播,在广播发出后,同一时间只有一个广播接收器可以接收到,当这个广播接收器的逻辑执行完毕后,广播才会继续传递。 此时的广播接收器是有顺序的,优先级高的广播可以先接收到消息。前面的广播器可以截断正在传递的广播,后面广播就无法收到。备注: 广播的注册有两种实现方式 :静态注册和动态注册
有序广播 无序广播 方法调用 Content
sendOrderedBroadcast()Content
sendBroadcast()特点 按优先级的不同,优先Receiver可对数据进行处理 Receiver优先级不确定 可以被拦截
可以被终止
可以被修改不可以被拦截
不可以被终止
不可以被修改接收者可以将结果传递给下一个receiver,也可终止广播传播 接收者不能将处理结果传递给下一个接收者,也无法终止广播传播 效率 低 高
静态注册: 通过AndroidManifest.xml中注册,可以让程序在未启动的情况下也能接收广播;
动态注册:在代码中通过registerReceiver()手工注册,调用unregisterReceiver()进行销毁,可以自由地控制注册和注销,在灵活性方面有很大优势,存在的缺点是 在程序启动之后才能接收广播
在Android系统8.0以后,所以隐式广播都不允许使用静态注册的方式来接受
隐式广播:指的是没有具体指定发送给哪个应用程序的广播,大多数系统广播属于隐式广播,少数特殊广播仍然使用静态注册方式接收
4. 软件测试的目的是尽可能多的找出软件的错误/缺陷 「正确」
解析
软件测试是为了发现程序中的错误而执行程序的过程,所以软件测试的目的是尽可能多地发现软件系统中的错误,而不是证明程序或软件的正确性。一个成功的测试应该是发现了至今为止尚未发现的错误。
5. 直接选择排序算法在最好情况下的时间复杂度为 O(n)「正确」
解析
算法的时间复杂度定义
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度。记作:T(n)=O(f(n))。它表示随问题n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中,f(n)是问题规模n的某个函数
6. JVM是操作系统「错误」
解析
JVM是Java虚拟机,是承上启下的作用,上承开发语言,下接操作系统,它的中间接口就是字节码
。
7. MD5是加密算法 「错误」
解析
密码散列函数MD5信息摘要算法,使用了密码散列函数,用于确保信息完整一致性。
1996年该算法被证实MD5可被破解,不适用于安全性认证