Java基础面试题【3】
admin
2024-03-19 05:03:39
0

9. 构造器 Constructor 是否可被 override 在讲继承的时候我们就知道父类的私有属性和构造方法并不能被继承,所以 Constructor 也就不能被 override(重写),但是可以 overload(重载),所以 你可以看到一个类中有多个构造函数的情况。

10. 重载和重写的区别 重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序 不同,方法返回值和访问修饰符可以不同,发生在编译时。 重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父 类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类 方法访问修饰符为 享学课堂 private 则子类就不能重写该方法。 

11. Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法, 如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个 类没有提供给外界访问的方法,那么这个类也没有什么意义了。 继承 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加 新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过 使用继承我们能够非常方便地复用以前的代码。

关于继承如下 3 点请记住: 1. 子类拥有父类非 private 的属性和方法。 2. 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。 3. 子类可以用自己的方式实现父类的方法。(以后介绍)。 多态 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发 出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变 量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中 实现的方法,必须在由程序运行期间才能决定。 在 Java 中有两种形式可以实现多态:继承(多个子类对同一方法的重写)和接 口(实现接口并覆盖接口中同一方法)。

12. String StringBuffer 和 StringBuilder 的区别 是什么 String 为什么是不可变的 可变性 享学课堂 简单的来说:String 类中使用 final 关键字字符数组保存字符串,private final char value[],所以 String 对象是不可变的。而 StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中 也是使用字符数组保存字符串 char[]value 但是没有用 final 关键字修饰,所以 这两种对象都是可变的。 StringBuilder 与 StringBuffer 的构造方法都是调用父类构造方法也就是 AbstractStringBuilder 实现的,大家可以自行查阅源码。

AbstractStringBuilder.java abstract class AbstractStringBuilder implements Appendable, CharSequence { char[] value; int count; AbstractStringBuilder()

{ } AbstractStringBuilder(int capacity) { value = new char[capacity]; }

线程安全性 String 中的对象是不可变的,也就可以理解为常量,线程安全。 AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了 一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公 共方法。StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以 是线程安全的。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全 的。 性能 每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将 指针指向新的 享学课堂 String 对象。

StringBuffer 每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升, 但却要冒多线程不安全的风险。 对于三者使用的总结: 1. 操作少量的数据 = String 2. 单线程操作字符串缓冲区下操作大量数据 = StringBuilder 3. 多线程操作字符串缓冲区下操作大量数据 = StringBuffer

13. 自动装箱与拆箱 装箱:将基本类型用它们对应的引用类型包装起来; 拆箱:将包装类型转换为基本数据类型;

14. 在一个静态方法内调用一个非静态成员为什么是 非法的 由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非 静态变量,也不可以访问非静态变量成员。

15. 在 Java 中定义一个不做事且没有参数的构造 方法的作用 Java 程序在执行子类的构造方法之前,如果没有用 super() 来调用父类特定 的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定 义了有参数的构造方法,而在子类的构造方法中又没有用 super() 来调用父类 中特定的构造方法,则编译时将发生错误,因为 Java 程序在父类中找不到没 有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数 的构造方法。

16. import java 和 javax 有什么区别 刚开始的时候 JavaAPI 所必需的包是 java 开头的包,javax 当时只是扩展 API 包来说使用。然而随着时间的推移,javax 逐渐的扩展成为 Java API 的组 成部分。但是,将扩展从 javax 包移动到 java 包将是太麻烦了,最终会破坏 一堆现有的代码。因此,最终决定 javax 包将成为标准 API 的一部分。 所以,实际上 java 和 javax 没有区别。这都是一个名字。

相关内容

热门资讯

【苏百和酒知识】啤酒白酒一起喝... 啤酒白酒一起喝,咋就难受得快?一句话:不是酒量差,是身体被“夹攻”。 苏百和 先上结论:别混。白酒像...
小熊粥铺:服务与优势双轮驱动,... 在快节奏的现代生活中,人们越来越注重饮食的健康和品质。小熊粥铺凭借其卓越的服务和显著的优势,如同一股...
一个冰淇淋 沈珩江璇林祁雾_第... 第1章 六年后,我与沈珩破镜重圆了。 我蹲在蜜雪冰城门口时,拉住了步履匆匆的他。 圣代买一送一,凑...
寻味│吃透酱爆养生诀!夜忙族的... 锅铲碰撞的脆响里,藏着一道跨城的烟火 —— 温州的墨鱼炒猪肝,遇上了上海浇头的酱爆魂。猪肝得先经盐与...
夏日周末的正确打开方式:在菏泽... 在菏泽这座充满生活气息的城市里 甜品店宛如散落在 各个角落的甜蜜宝藏 每一家都散发着独特的魅力 它们...
歌手田震来淄博吃烧烤啦 7月25日田震发布抖音视频, 分享来淄博吃烧烤。 烤肉、大葱、蘸料、小饼一卷, “就一个字,爽!” ...
水果拌着辣椒吃 腌制凉拌水果在... “口感出乎意料!”上周末,“95后”上班族杨女士打卡了一款叫作“酸嘢”的凉拌水果,“水果拌辣椒,乍一...
西北游玩全攻略,必去景点+行程... 西北,这片广袤而神秘的土地,一直是我心中向往的远方。2025年的盛夏,我终于踏上了这段期待已久的旅程...
江苏省文化和旅游厅关于组织实施... 各设区市文化广电和旅游局: 文化和旅游部定于2025年11月22日举行2025年全国导游资格考试。为...
华夏古文明,北京好风光!这些信... 北京,这座承载着千年历史与文化的古都,以其独特的魅力吸引着无数游客前来探寻。在众多旅行社中,有几家脱...
张家界是夏日里的自然游乐园,在... 张家界从不是刻板的风景区,而是一座露天的自然游乐园,这里的峰林是巨型滑梯,溪涧是天然泳池,云雾是流动...
石榴花开 籽籽同心丨从游牧到定... 位于新疆维吾尔自治区塔城地区裕民县城以西7公里的江格斯乡阿克铁克切村坐落在绵延的巴尔鲁克山脚下,紧邻...
团建热选地!就在永泰这里→ 位于葛岭镇的房家·月亮湾营地 正凭借自身优势 逐渐成为企业团建的热门之选 它以一站式服务、山海相依的...
“好运山东”2025山东省体育... 7月25日,“好运山东”2025山东省体育消费季暨青岛时尚体育节在金沙滩啤酒城启动。 “好运山东”...
张家界五天四晚亲子避暑攻略:张... 张家界的夏天,是被山水泡透的清凉。当城市的柏油路蒸腾着热气,这里的峰林却披着浓绿的铠甲,溪涧里淌着冰...
湖南长沙网约车司机吐槽,大学生... 湖南长沙是全国十大网红人气榜旅游城市,与西安,重庆、成都一样名气大,美食多,旅游景点也多,著名景点有...
2017年饺子皮逆天新吃法,不... Mis.Cai考考你:包剩下的饺子皮怎么处理呢?有人说煮面皮汤,这也是一种方法,但是还有许多更美味的...
沸腾火锅、香甜奶茶、劲道拉面…... 央视网消息:2025年是中国和欧盟建交50周年。随着日益频繁的人员和文化交流,沸腾的火锅、香甜的奶茶...