1、JRE和JDK的区别
- JRE可以支撑Java程序的运行,包括JVM虚拟机(java.exe等)和基本的类库(rt.jar等),JDK可以支持Java程序的开发,包括编译器(javac.exe)、开发工具(javadoc.exe、jar.exe、keytool.exe、jconsole.exe)和更多的类库(如tools.jar)。
2、this关键字和super关键字
1)this关键字
1. this关键字用于引用隐藏变量,如方法名与参数名一致,使用this显示调用;
2. this关键字用于调用本类其它构造方法,方式:this(参数名),用在第一行
3. this关键字不能用在静态方法中;
2)super关键字
1. 子类中访问父类的方法和属性;(super.属性名)
2. 子类中访问父类的构造方法(super(参数),用在第一行)
3)二者的区别
1)代表事物不一样:this代表的是当前函数对应的对象,super代表的是父类空间的引用;
2)使用前提不一致:this不需要继承关系,super需要在继承中使用;
3)调用构造方法区别:this用于调用本类中其它构造方法,super用于调用父类的构造方法,都在第一行。
4)this和super不能同时出现在同一个构造方法中去调用其它构造方法;
3、重写(Overriding)和重载(Overloading)
关注点:参数列表、返回类型、异常和访问四个方面来进行区分。
对于重载:同一个类中(包括继承而来的)方法,参数列表必须修改,返回类型可以修改,异常和访问均可以修改。
对于重写:具有继承关系,参数列表、返回类型必须一致,异常可以减少或删除,但一定不能抛出新的或者更广的异常,访问一定不能做更严格的限制(可以降低限制)。
实际些代码的时候,重写的方法强烈建议添加上注解@Override。@Override 系统可以帮你检查方法的正确性。
4、==和equals的区别
关注点:对象类型、比较的对象和运行速度
对于equals,它是Object(超类)中的方法,用于两个对象的内容是否相等,没有==运行速度快。
对于==,它是操作符,对于基础数据类型比较的是他们的值是否相等,对于引用数据类型比较的是引用的地址是否相同,运行速度比equals()快。
5、抽象类和接口的区别是什么?
关注点:继承、变量、构造方法和方法。
类的继承只能是单重继承,即一个类只能继承一个父类,抽象类可以任何变量,抽象类有构造方法,抽象类的方法没有限制。
对接口的继承允许多重继承,即一个类可以继承多个接口,接口只能public final static常量,接口不包含构造方法,接口的方法必须是public abstract
的实例方法。
6、什么是自动装箱和自动拆箱?
将基本数据类型的值转换为包装对象,称为装箱。将包装对象转换为基本数据类型的值,称为拆箱。
6、throw和throws关键字的区别;
- 1)throw用在方法体中,后边接异常对象(new xxx()),throws用在方法声明后面,后边接异常类名;
- 2)throw表示抛出某个异常(一定出现了异常),throws表示程序可能出现异常,也可能没有异常;
- 3)throw后边只能跟一个异常,throws后边可跟多个异常,用逗号隔开;
- 4)throw抛出异常,由方法体内的语句处理,throws抛出异常,由方法的调用者处理异常!
7、列举五种 Java 常见的异常类型
- NullPointerException:空指针异常。
- ArrayIndexOutOfBoundsException:数组下标越界异常。
- ArithmeticException:算术运算异常。
- NumberFormatException:数字格式异常。
- IOException:输入输出异常。
8、哪一块内存区域不会出现 OutOfMemoryError?
程序计数器。
9、虚拟机栈描述的是什么?存放什么内容?
虚拟机栈描述的是Java 方法执行的内存模型。当一个方法被执行时会创建栈帧存入栈内,栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息。
10、虚拟机栈可能出现哪两种异常,分别在什么情况下出现?
- 虚拟机栈可能出现的两种异常是StackOverflowError 和 OutOfMemoryError。
- 如果虚拟机栈不可以动态扩展,当线程请求的栈深度大于虚拟机所允许的深度时,将抛出StackOverflowError异常;
- 如果虚拟机栈可以动态扩展,当无法申请到足够的内存时,将抛出 OutOfMemoryError 异常。
11、堆的特点是什么?存放什么内容?
堆中存的是对象 vs 栈中存的是基本数据类型和堆中对象的引用。堆是 Java 虚拟机管理的内存中最大的一块,其目的是存放对象实例,几乎所有的对象实例都在堆中分配内存。
12、静态变量存放在哪一块内存区域?
静态变量存放在方法区。
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容