java面试题题库

http://how2j.cn/k/j2se-interview/j2se-interview-java/624.html#nowhere

面向对象是什么,面向对象的特征有哪些方面?

面向对象是一种思想,万物皆可对象

模块化,方便维护

复用性强,灵活可靠可读

封装
最常见的是把属性私有化封装在一个类里面,只能通过方法去访问,隐蔽一切可以隐蔽的东西,让操作变得简单
继承
子类继承父类,从而继承了父类的方法和属性,我继承英雄类
抽象
比如一个英雄类,抽象出了name,hp这些属性,使得开发过程中更加易于理解,但是不关心具体多少数值
多态
允许不同的子类对象对同一消息进行不同的应答。 类的多态指父类引用指向子类对象,并且有继承,有重写。

覆盖(Overriding)和方法重载(Overloading)

重载,多个方法名字相同,参数不同

覆盖,子类覆盖父类,相同方法名,参数,返回值

private,final不能被覆盖

Arraylist和LinkedList

Arraylist使用数组结构,数组容量不足自动扩容1.5倍,数组查找快,但插入麻烦,非线程安全

Vector线程安全

LinkedList循环双向链表,链表插入快,但查找慢

String 和StringBuffer,StringBuilder的区别?

String是不可以发生改变。
StringBuffer 是可以变长的,内容也可以发生改变
改变的原理是StringBuffer内部采用了字符数组存放数据,在需要增加长度的时候,创建新的数组,并且把原来的数据复制到新的数组这样的办法来实现。

Stringbuilder在单线程使用,效率高于StringBuffer

Collection 和 Collections的区别。

Collection 接口,是List和Set的父接口

Collections提供排序等方法,例如Collections.sort()

HashMap和的区别Hashtable

都是Map接口,键值对

HashMap可存放null,非线程安全

Hashtable不可以存放空,线程安全

final, finally, finalize的区别

final不能被修改,类,方法,变量,引用

finally 是try catch finally肯定执行

finalize垃圾回收时调用,一般不修改

Overload和Override的区别,即重载和重写的区别。 Overloaded的方法是否可以改变返回值的类型?

重载,同一个类里,方法名一样,但参数不一样

重写,继承父类方法并重写了一遍

重载本质上是不同的方法,所以可以

Error和Exception有什么区别?

都实现了Throwablefangfa

Error是JVM层面的错误,例如内存溢出

Exception是代码逻辑错误,例如数组越界。

有什么区别?abstract class和interface

抽象类可以有构造方法,可以包含静态方法,引用多个接口

抽象类需要被继承使用,接口则必须通过实现使用。

抽象类可以提供实现,接口要用Default

heap和stack有什么区别

堆和栈

堆是存放对象的,栈是存放基本类型,对象地址等

堆自动增加大小,不需要制定,所以存取较慢。栈固定长度,较快

GC是什么? 为什么要有GC?

Garbage Collection 垃圾回收,不在被使用的对象,回收,让程序员专心于代码逻辑开发,业务功能,资源回收工作交给更专业的GC

垃圾回收

1.标记,标记哪些内存正在使用哪些内存未被使用

2.清除未引用项

3.压缩,删除后把引用的放在一起,方便后续的内存分配

JVM分代新生代,老年代,永久代

新生代eden,然后满了清除eden进入缓冲区1轻微垃圾回收,

缓冲区1和新生代都满了,清除所有并进入缓冲区2再次垃圾回收,

都满了或者到达一定的年龄阈值就进入老年代,在这里进行主要的GC

short s1 = 1; s1 = s1 + 1;有什么错?

后边一个1是Integer,有强制类型转换错误

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”

java文件转化为能被java虚拟机识别的字节码。java虚拟机是执行这些字节码的进程。

java虚拟机能与底层进行沟通,每个平台都有对应的Java虚拟机

简述你所知道的Linux

pwd显示当前目录,主流的服务器操作系统,互联网,云计算,智能手机,只有一个root根目录。

JDK、JRE、JVM关系是什么

jdk开发工具包(编译javac运行jvm,jre){包含jre运行环境丰富的库,【包含jvm,virtual machine虚拟机执行.class文件】}

什么是自动拆装箱ratatype

首先String是final修饰的,是引用类型不是基本类型,基本类型包括整数,字符,浮点,布尔。

拆装箱就是引用与基本类型的转换,基本转引用就可以使用对象的方法,引用转基本可以进行一些运算什么的。

接口和抽象类的区别是什么

抽象是对类的抽象,接口是对方法的抽象

类只能继承一个抽象类,但可以继承多个接口

接口中所有的方法都是抽象的,抽象类中包含抽象和非抽象

接口中都是final。抽象类可以不包含final。

Java集合框架是什么?说出一些集合框架的优点

Vector,Hashtable,Stack,Array,降低开发成本,减少开发时间,代码质量,复用性提高

集合框架中的泛型有什么优点?

添加任意类型不会报Class的错,不会产生类型检查的字节码指令

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值