1, 什么是面向对象?类与对象是什么关系?如果把对象理解成是一种载体,应该怎么理解?
面向对象:万物皆对象。类和对象是多对一的关系。 属性和能力
2, 面向对象的三大特征是什么?你能说说他们的实际意义吗?(应用场景)
三大特征:
(1)封装:是把对象的全部属性和目的结合在一起,如果用封装别人只能看见外部的东西,不能看见里面核心的。
(2)继承:A继承B,A有B的属性和方法不用在写代码。
(3)多态:同一属性或者是同一行为的多种不同体现。
3, 访问修饰符public,private,protected,以及默认修饰符(不写)的意义与作用?
Private:私有的没有父子关系。4
Protected:对子类相当于公开的对不是同一包中没有父子关系的相当于私有的。
Public:在同一类中相当于公开的。
4, Java的基本数据类型有几种?它们分别怎样声明?他们可以自动升级的顺序是怎样的?
他们各自占几个字节?他们的取值范围是什么?
四类八种
第一类:整形 byte short int long;
第二类:浮点型float double;
第三类:Boolean
第四种:字符型 char
byte、short、int、long、float、double、char、boolean
Byte:8short:16 char:16 int:32 float:32 double:64 long:64
Short是从32768-32767
int从-2147483648,到2147483647共10位
long从-9223372036854775808到9223372036854775807共19位
基础数据类型:
5, String是基本类型吗?数组是什么类型?
不是
引用类型 指针
6, float f=3.4;是否正确?
不正确因为3.4是双晶,变成单晶需要强转早3.4后面加个f
7, short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
第一个有 需要强转 第二个正常编译
8, int和Integer有什么区别?
Integer是int包装类
9, 什么是自动装箱和拆箱?
Int在引用类型中变成Integer叫自动装箱,Integer变成int叫自动拆箱。
10, && 运算符与||运算符的区别?&运算符与|的区别?
&&并且 ||非
11, 内存中的栈(stack)、堆(heap)和静态区(static area)分别存储哪些内容?
方法的调用、地址就是栈 堆是对象、空间 静态区就是静态方法。
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;
而通过new关键字和构造器创建的对象放在堆空间
12, Math类中有哪些常用方法?请说明它们的用途即可,不用写出具体方法名。
数学类,绝对值,加减乘除
常用类
13, Swith(expr)中的表达式可以是哪些类型?可以是long、String、枚举吗?Switch中case如果没有使用break;结束,会是什么效果?
swith是整形可以放在枚举中,不能放在long中。
能放short switch 没有break执行
case失去判断效果,程序一直执行知道结束。
基本类型,引用类型 可以case失去判断效果,程序一直执行知道结束
a) 最有效的计算5乘以2的5次方,如何写?你认为两个整数的和超出了整数类型的最大范围会怎样?
往左移5位
14, 简述一下重写equals()\hashCode()\toString()方法,都起到了什么作用?
, 重写equals方法
toString()方法:描述事物本身特性,以字符串的性质输出,不写该方法就是地址。
hashCode方法让地址相同
equals();判断两对象是否相等
hashcode();为对象在容器中添加一个标识;
toString();把对象转成字符串;
15, 简述final的作用?简述static的作用?
静态是公共的 共享区域与类共同加载
(1)修饰类:表示该类不能被继承;
(2)修饰方法:表示方法不能被重写;
(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)
16, Java中参数的传递是值传递还是引用传递?对于一个引用类型,传递到一个方法中,方法结束后,该引用类型的内部数据是否会改变?如果是基本类型,方法结束后,值得内容会否被改变?画图说明。
安值传递
17, 说出String和StringBuilder、StringBuffer的区别三者的区别于联系。
String是字符串,StringBuilder、StringBuffer是字符的缓冲区,StringBuffer安全,StringBuilder效率更快一些
18, 简述重载(Overload)和重写(Override)的概念。
重载:就是在一个类中(包括父类)方法名称相同参数列表不同就是重载。
重写:发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型
实现的是编译时的多态性,而后者实现的是运行时的多态性
19, 简述描述一下JVM加载class文件的过程?你知道有几种类加载器?它们的关系是怎样的?他们的加载路径都是什么?
虚拟机将编译生成的.class文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。
系统 类加载器
20, 如何用简单的方法判断一个字符串中有几个汉字?为什么?
,用字符数减去字节数就是几个汉字
21, 如何理解抽象类?如何理解接口?在选择使用抽象类还是接口,如何选择?
抽象类:体现了数据抽象的思想,是实现多态的一种机制,没有对应的具体概念,所以用以表征抽象概念的抽象类是不能实例化的,也可以继承。
接口:是一个比抽象类还抽象的,但它不是类,只能new它的实现类。
看抽象类能不能被实例化。
静态方法中不能调用非静态的方法,为什么?
静态是跟这类诞生的 非静态是new可new可不new。
相当于用现有的方法掉以后不一定有的
22, Java中实例变量与方法中的局部变量有什么区别?
局部变量只能用一个 实例变量是跟类存在的
23, Java中除去new 关键字产生一个新对象,你还能想到几种可以创建对象的方法?
序列化 反射
24, String s = new String(“xyz”);创建了几个字符串对象?
4
25, Java语言的有点有哪些?说一说关于垃圾回收的知识。
安全 跨平台 有垃圾回收 有指针
26, 接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
能 可以 可以
27, 一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?
可以包括多个类,但不能与主类名一致。只能有一个public
28, 简述匿名内部类的作用?内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
匿名内部类就是 new一个新的对象。可以通过接口new一个
可以
29, 说明以下程序的执行结果:
class A {
static {
System.out.print("1");
}
public A() {
System.out.print("2");
}
}
class B extends A{
static {
System.out.print("a");
}
public B() {
System.out.print("b");
}
}
public class Hello {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}
New一个父类先执行子类。
30, Error和Exception有什么区别?
Error:程序员无能为力。Exception可以通过抛出、捕获等方法让程序继续执行。
31, try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?finally的作用?
会执行 再返回调用者之前执行
32, Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
Throw、cath 是抛出和捕获异常的
33, 运行时异常与受检异常有何异同?
虚拟机的通常操作中可能遇到的异常,
可能以为使用问题引发异常。
34, 列出一些你常见的运行时异常?
编译异常、运行异常、NullPointerException (空指针异常)
35, List、Set、Map是否继承自Collection接口?
List、Set继承了Collection接口
Map没有继承和Collection是并列关系
36, 阐述ArrayList、Vector、LinkedList的存储性能、底层原理和特性
ArrayList底层是数组
LinkedList底层是链表
Vector
37, Collection和Collections的区别?
Collection是一个接口,
Collections是个一个工具类,
38, TreeMap和TreeSet在排序有几种方式?Collections工具类中的sort()方法如何比 较元素?
TreeMap是键对值对映射的键实现Comparable接口从而根据键对元素进行排序。
TreeSet要求存放的对象所属的类实现Comparable接口
39, Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
Wait让出锁 一个放弃锁一个没放弃。
40, 当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?
不可以
41, 请描述wait与notify的作用。
Wai和notify等待阻塞一一通知机制当容器元素不为空那个时得到通知等待消除线程争取锁权限等到后继续执行,必须在同步的代码块中一般要求wait在while循环里实现线程互相有序的协同工作。
一个是等一个是通知就是一个通讯。
42, synchronized关键字的意义。
可以同步方法和同步语句块。
43, 线程中run()与start()方法的区别?
Run写线程的代码 start启动线程
44, 线程的基本状态以及状态之间的关系
新建 运行 可运行 等待锁 wait
45, Java中如何实现序列化,有什么意义?
序列化是将对象写到磁盘或者写到网络中的,被序列化的类一定是实现的。
46, Java中有几种类型的流?有什么关系?
字节流:继承于Inputstream,outputstream
字符流:read write 主要是提高性能和使用方便。
47, 简述正则表达式及其用途。Java中是如何支持正则表达式的?
48, 获得一个类的Class对象有哪些方式?
(1)Class for name
(2)类点class
(3)对象点class
49, 如何通过反射获取和设置对象私有字段的值?
获取字段Setvalue
50, Query接口的list方法和iterate方法有什么区别?
51, JRE、JDK、JVM 及 JIT 之间有什么不同?
全 jre运行环境 jdk最大一个比一个小
52, volatile 类型变量提供什么保证?
不要有缓存可见
53, ArrayList 与 LinkedList 的不区别?
一个是数组,一个是列表
54, TCP 协议与 UDP 协议有什么区别?
一个可靠 一个不可靠