Java基础的总结问题(第一篇)

  1. JDK和JRE的区别?

    1. JRE是Java运行环境(Java Runtime Environment),包含了JVM和Java核心类库
    2. JDK是Java开发工具包(Java Developer's  Kit),包含了JRE和Java常见的开发工具
  2.  ==与equals的区别?

    1. ==可以用来比较基本数据类型,也可以用来比较引用数据类型
      1. 当==用来比较基本数据类型时比较的是数值的大小
      2. 当==用来比较引用数据类型时比较的是地址
    2. equals只能用来比较引用数据类型:因为equals是Object的一个方法,要调用方法必须通过对象调用,而对象就是引用数据类型
      1. 默认的时候比较的是对象的地址值
      2. 可以通过重写Object类中的equals方法,来实现比较对象的属性
  3. 如果两个对象的hashCode值一样的时,用equals方法比较的时候也是true吗?

    不是

    hashCode和equals都是Object类中的两个独立的方法,这两个方法都可以通过子类重写,来实现子类自定义的逻辑

  4. final的作用

    1. 修饰变量上---叫常量,该常量必须初始化,且初始化后不能被修改
    2. 修饰方法上---该方法不能被重写
    3. 修饰类上---该类不能被继承 
  5.  String是基本数据类型吗?

    1. String是引用数据类型
    2. 基本数据类型有8种:int, short,byte,long, float, double,boolean, char
  6.  对字符串操作的有哪些类,有什么区别?

    1. 对字符串操作的有String,StringBuffer, StringBuilder
    2. 区别:
      1. String不可变,StringBuffer和StringBuilder可变
      2. StringBuffer线程安全,效率低StringBuilder线程不安全,效率高
  7.  String str="abc"与 String str = new String("abc")的 定义方法一样吗?

    1. 不一样 
    2. String str="abc"是创建一个字符串对象到常量池里。
    3. String str = new String("abc")是创建了两个对象,"abc"字符串在常量池里,new String("")又创建一个对象
  8.  普通for和增强for的区别

    1. 作用与应用场景
      1. 普通for:可以用在所有需要重复执行的某些语句的场景
      2. 增强型for:只能用在数组和Collection集合
    2. 使用区别
      1. 如果使用普通for循环,需要用下标,可以修改数组的元素。
      2. 如果使用增强型for,不需要使用下标,但是不能修改数组的元素
      3. 另外,增强for循环只是一种语法糖,增强for循环遍历数组时编译器仍然会将对应代码转换为普通 for循环;增强for循环遍历Collection集合时编译器会将对应代码转换为Iterator迭代器遍历集合的代 码。
  9. 方法的重载(Overload)与重写(Override)的区别

    1. 方法的位置 :
      1. 重载:在同一个类中,或者在父子类中
      2. 重写:在子类中---->只有子类才能实现重写
    2. 权限修饰符
      1. 重载:跟权限修饰符无关
      2. 重写:
        1. private修饰的方法不能重写。
        2. 重写的权限修饰符要>=被重写方法的权限修饰符
    3. 其他修饰符
      1. 重载:无关
      2. 重写:final和static修饰的方法也不能被重写
    4. 返回值类型
      1. 重载:无关
      2. 重写:
        1. 基本数据类型和void必须相同
        2. 引用数据类型:重写的方法的返回值类型<=被重写的方法的返回值类型
      3. 方法名:
        1. 重载:必须相同
        2. 重写:必须相同
      4. 形参列表
        1. 重载:必须不同
        2. 重写:必须相同
      5. throws异常列表
        1. 重载:无关
        2. 重写:
          1. 被重写的方法如果没有throws异常,重写的方法也不能throws异常
          2. 如果被重写的方法throws异常,重写的方法throws异常类型必须<=被重写的方法
      6. 什么时候确认调用哪个方法
        1. 重载:在编译时期根据形参的不同确定调用的是哪一个方法
        2. 重写:在运行时期确定调用哪一个方法,这依赖于对象的实际类型
  10. 抽象类和接口的区别 

    1. 抽象类:
      1. 继承限制:单继承
      2. 成员限制:
        1. 抽象类可以有多种类型的成员变量,包括静态变量和实例变量
        2. 抽象类中可以有构造方法,这有助于子类的初始化
        3. 抽象类可以包含代码块(静态代码块/非静态代码块)
        4. 抽象类可以包含抽象方法和普通方法
    2. 接口:
      1. 多实现:一个类可以实现多个接口
      2. 成员:
        1. 接口的成员变量默认是public,static,final的即常量
        2. 接口不允许有构造方法和代码块
        3. 接口的方法默认是public的。jdk9之后运行有private的方法
        4. jdk8之前接口的方法都默认是抽象的,jdk8之后可以包含默认方法和静态方法
  11.  谈谈你对面向对象三大特性的理解

    1. 面向对象的三大特性分别是:封装,继承和多态
      封装:
      将对象的属性和行为隐藏到类的内部只能通过方法的调用来访问属性。提高了代码的安全性和稳定性同时也提高了代码的可维护性
      继承:
      子类继承父类可以复用父类的属性和方法,也可以之际扩展父类的行为。减少了代码的重复。
      多态:
    2. 同一个对象以不同的角度(类型)展现不同的行为方法。使用父类或接口类型的引用指向子类对象,然后调用方法时,会根据对象的实际类型来决定调用哪个方法的实现。这样可以编写出更加灵活和可扩展的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914751.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[智能算法]MOEA/D算法的Python实现

一、初始化不同于NSGA-II&#xff0c;MOEA/D在进行迭代之前需要先进行初始化&#xff0c;初始化的主要内容是计算个体向量权重之间的欧氏距离&#xff0c;并得出其邻域集合。# 计算T个邻居 def cpt_W_Bi_T(moead):# 设置的邻居个数错误(自己不能是自己的邻居)if moead.T_size &…

Java设计模式之-组合模式

什么是组合模式&#xff1f; 组合模式允许你将对象组合成树形结构来表示"部分-整体"的层次结构。它让客户端能够以统一的方式处理单个对象和对象组合。 简单来说&#xff0c;就像公司的组织结构&#xff1a; 公司有部门部门有小组小组有员工但无论是对公司、部门还是…

2021-10-29 C++与反转数的和

缘由输入一个三位数 与它倒过来的数相加&#xff0c;输出和-编程语言-CSDN问答 直接写 int n0,nn0,nnn0; cin>>n;nnn; while(nn)nnn*10,nnnnn%10,nn/10; cout<<nnnn<<endl; 缘由https://ask.csdn.net/questions/7552128 int 反转数(int n) { int nn 0…

论安全架构设计(威胁与措施)

安全架构威胁与措施摘要2021年4月&#xff0c;我有幸参与了某保险公司的“优车险”项目的建设开发工作&#xff0c;该系统以车险报价、车险投保和报案理赔为核心功能&#xff0c;同时实现了年检代办、道路救援、一键挪车等增值服务功能。在本项目中&#xff0c;我被安排担任架构…

022_提示缓存与性能优化

提示缓存与性能优化 目录 缓存技术概述缓存工作原理实现方法详解成本优化策略性能优化实践高级应用场景最佳实践指南 缓存技术概述 什么是提示缓存 提示缓存是Claude API的一项优化功能&#xff0c;允许缓存提示的特定部分以便重复使用&#xff0c;从而显著减少处理时间和…

【AI交叉】地理:人工智能如何推动地理科学的智能转型?

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;越来越多的传统学科开始与之融合&#xff0c;催生出一系列跨学科的新研究方向和应用场景。地理科学作为研究地球表层自然与人文现象的综合性学科&#xff0c;也在这一浪潮中迎来转型契机。 AI与地理学的交叉正…

iOS高级开发工程师面试——关于网络

iOS高级开发工程师面试——关于网络 一、谈谈对 HTTP、HTTPS 的理解1. HTTP协议:2. HTTPS 协议二、TCP、UDP 和 SocketTCPUDPTCP 和 UDP 的区别?Socket一、谈谈对 HTTP、HTTPS 的理解 1. HTTP协议: 超文本传输协议,他是基于TCP应用层协议。 是无连接 无状态 的,需要通过…

跟着Nature正刊学作图:回归曲线+散点图

&#x1f4cb;文章目录复现目标图片绘图前期准备绘制左侧回归线图绘制右侧散点图组合拼图 (关键步骤&#xff01;)跟着「Nature」正刊学作图&#xff0c;今天挑战复现Nature文章中的一张组合图–左边为 回归曲线、右边为 散点图。这种组合图在展示相关性和分组效应时非常清晰有…

LVS集群调度器

目录 集群和分布式 LVS运行原理 LVS概念 LVS的集群类型 实验配置 安装LVS ipvsadm命令参数 1.管理集群服务中的增删改 2.管理集群服务中的RS增删改 3.lvs调度策略的备份与恢复 4.lvs调度策略的开机启动 LVS-NAT模式 LVS-DR模式 集群和分布式 集群&#xff08;Clu…

【React Natve】NetworkError 和 TouchableOpacity 组件

NetworkError公共组件 import SimpleLineIcons from "expo/vector-icons/SimpleLineIcons"; import { StyleSheet, Text, View } from "react-native";export default function NetworkError() {return (<View style{styles.container}><SimpleL…

Linux 驱动中 Timer / Tasklet / Workqueue 的作用与对比

Linux 驱动中 Timer / Tasklet / Workqueue 的作用与对比 &#x1f9e9; 1. 使用场景概览&#xff08;对比表&#xff09;机制执行上下文是否可睡眠使用场景常用接口Timer中断上下文❌ 不可睡眠延迟执行&#xff08;如防抖、超时处理&#xff09;add_timer() 等Tasklet软中断上…

JavaScript中关于proxy的作用以及和Object.defineProperty的区别

之前写了一篇介绍 Object.defineProperty的&#xff0c;提到proxy&#xff0c;二者有一些共性&#xff0c;也都是前端框架Vue的核心机制&#xff0c;所以再写一篇介绍一下proxy的基础原理和使用。 在 JavaScript 中&#xff0c;Proxy 是 ES6 引入的一个元编程特性&#xff0c;用…

HTTP性能优化实战技术

HTTP性能优化实战技术文章大纲 理解HTTP性能优化的核心指标 关键指标&#xff1a;延迟、吞吐量、TTFB&#xff08;Time To First Byte&#xff09;、页面加载时间影响性能的因素&#xff1a;网络延迟、服务器响应时间、资源大小、协议效率 减少HTTP请求数量 合并资源文件&#…

ubuntu(22.04)系统上安装 MuJoCo

在 Linux 系统上安装 MuJoCo 的完整步骤如下&#xff1a; ​​1. 下载 MuJoCo​​ 访问 MuJoCo 官方 GitHub下载最新 Linux 版本&#xff08;如 mujoco-3.3.4-linux-x86_64.tar.gz&#xff09;获取对应的 SHA256 校验值&#xff08;在发布页面可以找到,&#xff0c;文件名后面…

理解大模型的对话和检索能力

RAG和联网搜索均通过“检索生成”模式扩展模型能力&#xff0c;但RAG基于内部知识库&#xff08;如企业文档&#xff09;&#xff0c;适合专业领域问答&#xff1b;联网搜索实时检索互联网&#xff0c;解决时效性问题&#xff08;如新闻、股价&#xff09;。RAG响应快且可控&am…

跟着Carl学算法--回溯【2】

IP复原&#xff08;难&#xff09; 力扣链接&#xff1a;IP复原 题目&#xff1a;有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201"…

PyTorch生成式人工智能(17)——变分自编码器详解与实现

PyTorch生成式人工智能(17)——变分自编码器详解与实现 0. 前言1. 潜空间运算2. 变分自编码器2.1 自编码器与变分自编码器对比2.2 模型训练流程3. 构建变分自编码器3.1 模型构建3.2 模型训练3.3 生成图像4. 向量运算小结系列链接0. 前言 虽然自编码器 (AutoEncoder, AE) 在重…

SpringMVC2

一、接口声明的稳定性- 接口声明不能轻易变&#xff1a;接口是前后端、服务间通信的约定。要是接口的 URL、请求方法、参数、返回值变了&#xff0c;调用方&#xff08;比如前端、其他服务&#xff09;就得跟着改&#xff0c;容易出问题。所以设计接口要谨慎&#xff0c;别老变…

LVS集群实践

一、LVS概念VS: Virtual Sever &#xff08;调度器&#xff09;RS: Real Sever &#xff08;资源主机&#xff09;CIP: Client IP &#xff08;用户IP&#xff09;VIP: Virtual sever IP &#xff08;VS外网的IP&#xff0c;客户访问的IP&#xff09;DIP: Director IP &#xf…

使用Django框架构建Python Web应用

前言Django个高级Python Web框架&#xff0c;遵循MTV&#xff08;Model-Template-View&#xff09;设计模式&#xff1a;模型(Model)&#xff1a;数据层&#xff0c;定义数据结构模板(Template)&#xff1a;表现层&#xff0c;处理用户界面视图(View)&#xff1a;业务逻辑层&am…