Android之Java笔试题基础知识

1. 静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它?

静态内部类:使用static修饰的内部类

内部类:就是在某个类的内部又定义了一个类,内部类所嵌入的类称为外部类

匿名内部类:使用new生成的内部类

因为内部类的产生依赖于外部类,持有的引用是类名.this

2.Java 中try catch finally的执行顺序

先执行try中代码,如果发生异常执行catch中代码,最后一定会执行finally中代码

3.equals与==的区别:

==是判断两个变量或实例是不是指向同一个内存空间 equals是判断两个变量或实例所指向的内存空间的值是不是相

4.Object有哪些公用方法?

方法equals测试的是两个对象是否相等

方法clone进行对象拷贝

方法getClass返回和当前对象相关的Class对象

方法notify,notifyall,wait都是用来对给定对象进行线程同步的

5.String、StringBuffer与StringBuilder的区别

String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象 StringBuffer和StringBuilder底层是 char[]数组实现的 StringBuffer是线程安全的,而StringBuilder是线程不安全的

6.Java的四种引用的区别

强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM 也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象

软引用:在使用软引用时,如果内存的空间足够,软引用就能继续被使用,而不会被垃圾回收器回收,只有在内存不足时,软引用才会被垃圾回收器回收。

弱引用:具有弱引用的对象拥有的生命周期更短暂。因为当 JVM 进行垃圾回收,一旦发现弱引用对象,无论当前内存空间是否充足,都会将弱引用回收。不过由于垃圾回收器是一个优先级较低的线程,所以并不一定能迅速发现弱引用对象

虚引用:顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它相当于没有引用,在任何时候都可能被垃圾回收器回收。

7.介绍垃圾回收机制

标记回收法:遍历对象图并且记录可到达的对象,以便删除不可到达的对象,一般使用单线程工作并且可能产生内存碎片

标记-压缩回收法:前期与第一种方法相同,只是多了一步,将所有的存活对象压缩到内存的一端,这样内存碎片就可以合成一大块可再利用的内存区域,提高了内存利用率

复制回收法:把现有内存空间分成两部分,gc运行时,它把可到达对象复制到另一半空间,再清空正在使用的空间的全部对象。这种方法适用于短生存期的对象,持续复制长生存期的对象则导致效率降低。

分代回收发:把内存空间分为两个或者多个域,如年轻代和老年代,年轻代的特点是对象会很快被回收,因此在年轻代使用效率比较高的算法。当一个对象经过几次回收后依然存活,对象就会被放入称为老年的内存空间,老年代则采取标记-压缩算法

8.你用过哪些集合类

数据结构中用于存储数据的有哪些

数组

数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;

链表

链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。

9.说说hashMap是怎样实现的

哈希表:由数组+链表组成的

当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值,根据hash值得到这个元素在数组中的位置(即下标),如果数组该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾。如果数组该位置上没有元素,就直接将该元素放到此数组中的该位置上。

10.ArrayList,LinkedList的区别

ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

11.ArrayList和Vector的主要区别是什么?

ArrayList 和Vector底层是采用数组方式存储数据

Vector:

线程同步

当Vector中的元素超过它的初始大小时,Vector会将它的容量翻倍,

ArrayList:

线程不同步,但性能很好

当ArrayList中的元素超过它的初始大小时,ArrayList只增加50%的大小

12.HashMap和 HashTable 的区别:

HashTable比较老,是基于Dictionary 类实现的,HashTable 则是基于 Map接口实现的

HashTable 是线程安全的, HashMap 则是线程不安全的

HashMap可以让你将空值作为一个表的条目的key或value

13.wait()和sleep()的区别

sleep来自Thread类,和wait来自Object类

调用sleep()方法的过程中,线程不会释放对象锁。而 调用 wait 方法线程会释放对象锁

sleep睡眠后不出让 系统资源,wait让出系统资源其他线程可以占用CPU

sleep(milliseconds)需要指定一个睡眠时间,时间一到会自动唤醒

14.TCP三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

15.为什么TCP是可靠的,UDP早不可靠的?为什么UDP比TCP快?

TCP/IP协议高,因为其拥有三次握手双向机制,这一机制保证校验了数据,保证了他的可靠性。

UDP就没有了,udp信息发出后,不验证是否到达对方,所以不可靠。

但是就速度来说,还是UDP协议更高,毕竟其无需重复返回验证,只是一次性的

16.http协议了解多少,说说里面的协议头部有哪些字段?

http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议;http请求由三部分组成,分别是:请求行、消息报头、请求正文。

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头

17.https了解多少

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此 加密的详细内容就需要SSL。

18.谈谈 HTTP 中Get 和 Post 方法的区别

GET - 从指定的服务器中获取数据,明文发送内容

POST - 提交数据给指定的服务器处理

(1)POST请求不能被缓存下来

(2)POST请求不会保存在 浏览器浏览记录中

(3)以POST请求的URL无法保存为浏览器书签

(4)POST请求没有长度限制

19.推送心跳包是TCP包还是UDP包或者HTTP包

心跳包的实现是调用了socket.sendUrgentData(0xFF)这句代码实现的,所以,当然是TCP包。

android java笔试题_Android之Java基础知识笔试题相关推荐

  1. 搜索用计算机弹奏9277的数字,计算机基础知识参考试题(含答案)

    计算机基础知识参考试题(含答案) 计算机基础知识参考试题及答案解析 一.单选题 1.1946年诞生的世界上公认的第一台电子计算机是( ENIA). 2.第一台计算机在研制过程中采用了哪位科学家的两点改 ...

  2. 超详细的Java面试题总结之JavaWeb基础知识总结

    超详细的Java面试题总结之JavaWeb基础知识总结 Java互联网架构师08-29 16:01 打开网易新闻 查看更多精彩图片 Servlet总结: 在Java Web程序中,Servlet主要负 ...

  3. 计算机基础知识 笔试,计算机基础知识笔试题

    计算机基础知识笔试题 如对你有帮助,请购买下载打赏,谢谢! 计算机基础知识笔试题 1.第一台电子计算机使用的逻辑部件是(). A.集成电路 B.大规模集成电路 C.晶体管 D.电子管 2.微型计算机系 ...

  4. java高手之路上的必备基础知识

    其实Java也就这么回事,重要的还是坚持,不能三天打鱼两天晒网.每一个分支下都是一门专业的技术,重要的是证明学精,熟练运用各项软件语言. 下面和大家分享java高手之路上的必备基础知识: 1.面向对象 ...

  5. (硅谷课堂项目)Java开发笔记4:前端基础知识(二)

    文章目录 (硅谷课堂项目)Java开发笔记4:前端基础知识(二) 一.NPM 1.NPM简介 1.1.什么是NPM 1.2.NPM工具的安装位置 2.使用npm管理项目 2.1.创建文件夹npm 2. ...

  6. 最高级的在线计算机,计算机基础知识笔试题完整版.doc

    计算机基础知识笔试题 1.第一台电子计算机使用的逻辑部件是(?D???). A.集成电路???? ???B.大规模集成电路?? ??C.晶体管????? ?D.电子管 2.微型计算机系统由(B)组成. ...

  7. 自动化的计算机知识,2009年自动化部计算机基础知识理论试题

    1 2009年自动化部计算机基础知识理论试题 得分: 单项选择题(共100分,前125题,每题0.6分,后25题,每题1分) 1.在Windows 中,使用鼠标的______功能,可以实现文件或文件夹 ...

  8. 一年级计算机知识竞赛,2016一年级语文下册基础知识竞赛试题

    一.看拼音写汉字. jiào shēng hé miáo huā cǎo qīng sè chéng zhǎng ( 叫声 ) ( 禾苗 ) (花草 ) ( 青色 ) ( 成长 ) hóng huā ...

  9. 计算机基础知识考试模拟试题,计算机基础知识模拟试题及答案

    计算机基础知识模拟试题及答案 1.下列四个无符号十进制整数中,能用八个二进制位表示的是__________. A.257 B.201 C.313 D.296 2.下列关于系统软件的四条叙述中,正确的一 ...

  10. 计算机专业技能知识,2017年度计算机专业技能知识资料基础知识资料试题'及其答案...

    2017年度计算机专业技能知识资料基础知识资料试题'及其答案 (19页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 ''第一部分   一 ...

最新文章

  1. python线上培训多少钱-Python人工智能在线培训班学费多少钱?
  2. python基础语法手册format-Python format 格式化函数
  3. apigw鉴权分析(1-2)腾讯开放平台 - 鉴权分析
  4. python画图角度_Python画图
  5. 阿里云知位停车:让车主好停、车场好管
  6. 服务器响应时间过长_网站响应时间过长怎么回事 解决方法都有哪些
  7. 独立看门狗---STM32----HAL
  8. linux下的Apache2 + mysql5 + php5 源码完整安装详解
  9. 我新买的GTX1050为何装上去一直是黑屏
  10. 【职业】大一规划、体验生活、故事里
  11. sql语句中遇到“被零除错误”提示的解决方法
  12. iOS - 数组字典模型根据模型属性key排序
  13. QTQuick控件基础(1)
  14. MAVEN实战 整理 笔记
  15. 2022 年面试工具篇 Jmeter 接口面试题及答案
  16. 北理工团队在不同注意力状态下肢体运动意图的鲁棒神经解码方面取得重要研究进展...
  17. Lvgl(V8.2)自定义字体实现多国语言切换功能
  18. html修改img图片颜色,html中img图片设置透明度的方法
  19. 阿里巴巴 29 个屌炸天的开源项目
  20. HTML5期末大作业:个人网页设计——作家三毛6页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计

热门文章

  1. SAP BW:0FI_GL_4 的特殊增强
  2. 修改YUM源为本地光驱
  3. 解决排列组合问题的通用算法(转)
  4. [经验]自定义ASP.NET服务器控件属性的状态不能保存的问题
  5. 27.卷1(套接字联网API)---IP选项
  6. 14. Controller
  7. 120. strtotime()
  8. 0. PSR-0 --- 自动加载
  9. rms归一化_将FFT频谱幅度归一化为0dB
  10. [LeetCode] 47. Permutations II_Medium tag: DFS, backtracking