Android——面试题之java基础

1.内存溢出和内存泄露:
答:溢出:充满某个容器并向外流出。
内存溢出:内存已经满了,所以程序申请内存时,有足够的空间供其使用。
泄露:将消息或者秘密告诉别人
内存泄露:程序分配出去的内存不再使用,无法进行回收
2.线程和进程

答:
进程:系统进行资源分配和调度的基本单位,是操作系统结构的基础;
一个程序就可以看成一个进程,相互独立,可包含多个线程;
进程间通信通过IPC机制;进程是资源分配单位
线程:是操作系统能够进行运算调度的最小单位,包含在进程中的,是进程中的实际运作单位;
线程间共享进程资源,某进程内的线程在其他进程内不可见;
线程间通信通过数据段(如:全局变量)的读写,需要进程同步和互斥手段的辅助,以保证数据的一致性;
线程是cpu调度单位,跟cpu真正打交道的是线程,线程上下文切换比进程上下文切换要快得多。

java语音的特性
答:封装:把客观事物进行封装成抽象类,该类的数据和方法只让可信的类操作,对不可信的类隐藏。封装分为属性的封装和方法的封装
继承:子类继承父类的的共有属性或者特点
多态:同一个行为具有多个不同表现形式或形态的能力,多态的前提是类与类之间必须存在关系,要么继承,要么实现
抽象:把现实生活某一类东西提取出来,成为该类东西的共有特性

面向对象和面向过程
答:
面向对象:优点:易维护、易复用、易拓展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的程序
缺点:性能比面向过程低
面向过程:优点:性能比面向对象高,因为类的调用需要实例化,开销比较大
缺点:没有面向对象的易维护、易复用、易拓展

装修和拆箱
装箱:将基本数据类型包装成它们的引用类型
拆箱:将包装类型转换成基本数据类型

String、StringBuffer和StringBuilder
可变性:
String对象不可变,StringBuffer与StringBuilder对象是可变的
线程安全性:
a.String对象不可变线程安全
b.StringBuffer加了同步锁线程安全
c.StringBuilder可变不安全
性能:
String类进行改变的时候,都会产生新的String对象,然后将指针指向新的String对象,性能低
StringBuffer进行改变的时候,都会复用自身对象,性能比String高
StringBuilder行改变的时候,都会复用自身对象,相比StringBuffer能获得10%~15%左右的性能提升,但是得承担多线程的不安全的风险

HashMap,HashSet,HashTable,LinkedHashSet,LinkedHaseMap

image

总结:Linked是有序的,非同步
Table是同步的,简直不允许null 容量11

其他java复习

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 所有知识点已整理成app app下载地址 J2EE 部分: 1.Switch能否用string做参数? 在 Jav...
    侯蛋蛋_阅读 7,353评论 1 4
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,948评论 0 62
  • 转自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帅199207阅读 12,762评论 3 93
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,895评论 1 14
  • 清晨,我从睡梦中缓缓醒来。啊,抻个大大的懒腰,再次拥抱我的床:谢谢你,我的床,我醒了。昨晚我睡的很好! ...
    爱我青春阅读 3,255评论 2 2

友情链接更多精彩内容