news 2026/4/23 12:23:47

华为OD技术面真题 - JAVA开发 - 5

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD技术面真题 - JAVA开发 - 5

文章目录

  • 抽象类和普通类的区别
  • 抽象类和接口的区别
  • 注解的作用
  • 注解的分类
  • 说说JAVA中异常类体系结构
  • throw和throws的区别
  • JAVA中创建对象的方式有哪些?
  • 如何实现深拷贝

抽象类和普通类的区别

// 普通类 class Animal { void eat() { System.out.println("Animal eats"); } } // 抽象类 abstract class Bird { abstract void fly(); // 抽象方法,没有实现 void sleep() { System.out.println("Bird sleeps"); } }
特性普通类抽象类
能否实例化可以不可以
是否可包含抽象方法可以
方法实现必须有实现可以有抽象方法,也可以有实现方法
继承用途可继承,也可直接用用于规范子类,必须被继承实现抽象方法
典型使用场景功能完整的对象框架、模板、规范类

抽象类和接口的区别

特性抽象类接口
是否可以实例化不可以不可以
定义抽象方法可以默认是抽象方法
定义普通方法可以Java 8+ 可以有 default 方法,在JDK9中允许有私有普通方法
定义静态方法可以可以(Java 8+)
成员变量可以有实例变量只能有常量public static final
构造方法可以不可以
继承方式单继承多实现
适用关系is-acan-do
使用场景复用 + 规范统一规范 + 多实现功能

注解的作用

注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它主要的作用有以下四方面:

  • 生成文档,通过代码里标识的元数据生成javadoc文档。
  • 编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证。
  • 编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。
  • 运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例。

注解的分类

  • Java自带的标准注解,包括@Override@Deprecated@SuppressWarnings,分别用于标明重写某个方法、标明某个类或方法过时、标明要忽略的警告,用这些注解标明后编译器就会进行检查。
  • 元注解,元注解是用于定义注解的注解,包括@Retention@Target@Inherited@Documented
    • @Retention用于标明注解被保留的阶段
    • @Target用于标明注解使用的范围
    • @Inherited用于标明注解可继承
    • @Documented用于标明是否生成javadoc文档
  • 自定义注解,可以根据自己的需求定义注解,并可用元注解对自定义注解进行注解。

说说JAVA中异常类体系结构

Throwable是 Java 语言中所有错误与异常的超类

  • Error及其子类:程序中无法处理的错误
  • Exception:程序本身可以捕获并且可以处理的异常
    • 运行时异常:RuntimeException类及其子类异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。编译器不会检查
    • 非运行时异常:必须进行处理的异常,如果不处理,程序就不能编译通过。

throw和throws的区别

  • throws: 若方法中存在非运行时异常,如果不对其捕获,那必须在方法头中显式声明该异常,以便于告知方法调用者此方法有异常,需要进行处理。 在方法中声明一个异常,方法头中使用关键字throws,后面接上要声明的异常。若声明多个异常,则使用逗号分割.
public static void method() throws IOException, FileNotFoundException{ //something statements }
  • throw: 如果代码可能会引发某种错误,可以创建一个合适的异常类实例并抛出它,这就是抛出异常。
public static double method(int value) { if (value == 0) { throw new ArithmeticException("参数不能为0"); } return 5.0 / vlaue; }

JAVA中创建对象的方式有哪些?

  • 使用new创建对象。User user = new User()
  • 使用反射创建对象
// 方式1:Class.newInstance()(已废弃,不推荐) Person p1 = Person.class.newInstance(); // 方式2:Constructor.newInstance() Constructor<Person> constructor = Person.class.getConstructor(); Person p2 = constructor.newInstance();
  • 使用克隆创建对象
class Person implements Cloneable { String name; public Object clone() throws CloneNotSupportedException { return super.clone(); } } Person p1 = new Person(); Person p2 = (Person) p1.clone(); // 复制对象
  • 通过序列化/反序列化创建对象
// 假设 person.ser 是序列化文件 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser")); Person p = (Person) ois.readObject(); ois.close();

如何实现深拷贝

先介绍一下深拷贝和浅拷贝

  • 浅拷贝: 对象的基本类型会被复制,但对象中的引用类型仍指向同一个实例。
  • 深拷贝:对象及其引用类型都被完整复制,互不影响。

实现深拷贝的方式:

  • 手动实现clone()方法:
    • 所有引用对象也要实现Cloneable并重写clone()
    • 逐层调用 clone,实现对象图的深度复制
  • 通过序列化反序列化实现深拷贝:
    • 将对象写入字节流,再读回来,自动生成新的对象
    • 要求对象及其引用对象都实现Serializable
  • 使用第三工具:
    • Gson / Jackson可以先序列化成 JSON 再反序列化
    • Apache Commons Lang提供SerializationUtils.clone()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:48:37

记事本加密原理

没什么加密原理&#xff0c;就是把密码保存在app独立控件里面&#xff0c;而且要求长度不能少于30位。附带提供一个随机产生30位随机密码的按钮

作者头像 李华
网站建设 2026/4/17 18:53:07

你的智能穿戴灵感,由此一键启动

在AI与物联网深度融合的浪潮中&#xff0c;端侧AI正加速向“贴身化”渗透&#xff0c;Comake Pi D2&#xff08;下称D2&#xff09;内置星宸科技AI SoC SSC309QL&#xff0c;其核心板以笔帽大小的身形&#xff0c;兼顾1.5TOPS高算力与300mW超低功耗&#xff0c;赋能开发者用最小…

作者头像 李华
网站建设 2026/4/23 12:20:20

【笔记】【股票小白入门4-K 线】

目录 一、K 线定义 二、K 线组成 三、K 线类型 1. 阳线(红色 K 线,开盘价低于收盘价,代表上涨) 2. 阴线(绿色 K 线,开盘价高于收盘价,代表下跌) 3. 特殊 K 线 四、K 线时间周期 一、K 线定义 K 线是股票价格走势的可量化语言,帮助投资者快速判断市场多空力量变…

作者头像 李华
网站建设 2026/4/22 17:53:15

提示工程架构师团队协作:跨部门沟通中的挑战与发展方向共识建立

提示工程架构师团队协作:跨部门沟通中的挑战与发展方向共识建立 引言 背景介绍 在当今数字化转型加速的时代,提示工程作为新兴且关键的领域,正广泛应用于自然语言处理、智能聊天机器人、内容生成等诸多场景。提示工程架构师团队承担着设计、优化和创新提示策略,以实现人…

作者头像 李华
网站建设 2026/4/4 2:43:47

大模型应用实践:15个精选案例详解,程序员必学收藏指南

第三届"大模型 大未来"大会公布15个"巢燧"大模型创新应用案例&#xff0c;覆盖教育、金融、医疗、文旅、城市治理等多个领域。这些案例立足真实业务场景&#xff0c;展示大模型在提升效率、优化体验和创造实际价值方面的成效&#xff0c;为行业发展和企业推…

作者头像 李华