【尚硅谷】第05章:随堂复习与企业真题(数组)

来源:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)

基本都是宋老师发的资料里面的内容,只不过补充几个资料里没直接给出答案的问题的答案。
不想安装markdown笔记的app所以干脆在这里发一遍。

第05章:随堂复习与企业真题(数组)


一、随堂复习

1. 数组的概述

  • 数组,就可以理解为多个数据的组合。
  • 是程序中的容器:数组、集合框架(第12章,List、Set、Map)
  • 数组存储的数据的特点:依次紧密排列的、有序的、可以重复的
  • 此时的数组、集合框架都是在内存中对多个数据的存储。
  • 数组的其它特点:一旦初始化,其长度就是确定的、不可更改的

2. 一维数组的使用(重要)

> 数组的声明和初始化int[] arr = new int[10];String[] arr1 = new String[]{"Tom","Jerry"};
> 调用数组的指定元素:使用角标、索引、index>index从0开始!
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 一维数组的内存解析(难)前提:在main()中声明变量:int[] arr = new int[]{1,2,3};> 虚拟机栈:main()作为一个栈帧,压入栈空间中。在main()栈帧中,存储着arr变量。arr记录着数组实体的首地址值。> 堆:数组实体存储在堆空间中。

3. 二维数组的使用(难点)

  • 二维数组:一维数组的元素,又是一个唯一数组,则构成了二维数组。
> 数组的声明和初始化
> 调用数组的指定元素
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 二维数组的内存解析(难)

4. 数组的常用算法(重要)

  • 数值型数组的特征值的计算:最大值、最小值、总和、平均值等
  • 数组元素的赋值。比如:杨辉三角;彩票随机生成数(6位;1-30;不能重复);回形数
  • 数组的复制、赋值
  • 数组的反转
  • 数组的扩容、缩容
  • 数组的查找
    • 线性查找
    • 二分法查找(前提:数组有序)
  • 数组的排序
    • 冒泡排序:最简单
    • 快速排序:最常用

5. Arrays工具类的使用

  • 熟悉一下内部的常用的方法
    • toString() / sort() / binarySearch()

6. 数组中的常见异常

  • ArrayIndexOutOfBoundsException
  • NullPointerException

二、企业真题

1. 数组有没有length()这个方法? String有没有length()这个方法?(*蓝)

数组没有length(),是length属性。

String有length()

2. 有数组int[] arr,用Java代码将数组元素顺序颠倒(闪*购)

3. 为什么数组要从0开始编号,而不是1(中*支付)

数组的索引,表示了数组元素距离首地址的偏离量。因为第1个元素的地址与首地址相同,所以偏移量就是0。所以从0开始。

4. 数组有什么排序的方式,手写一下(平*保险)

冒泡。

快排。(讲完递归方法以后,大家就可以练习一下)

5. 常见排序算法,说下快排过程,时间复杂度?(5*到家)

见课件。

快排:O(nlogn)

6. 二分算法实现数组的查找(神舟*天软件)

7. 怎么求数组的最大子序列和(携*)

/** 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。* 求所有子数组的和的最大值。要求时间复杂度为O(n)。例如:输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。* @author 尚硅谷-宋红康*/
public class ArrDemo {public static void main(String[] args) {int[] arr = new int[]{1, -2, 3, 10, -4, 7, 2, -5};int i = getGreatestSum(arr);System.out.println(i);}public static int getGreatestSum(int[] arr){int greatestSum = 0;if(arr == null || arr.length == 0){return 0;}int temp = greatestSum;for(int i = 0;i < arr.length;i++){temp += arr[i];if(temp < 0){temp = 0;}if(temp > greatestSum){greatestSum = temp;}}if(greatestSum == 0){greatestSum = arr[0];for(int i = 1;i < arr.length;i++){if(greatestSum < arr[i]){greatestSum = arr[i];}}}return greatestSum;}
}

8. Arrays 类的排序方法是什么?如何实现排序的?(阿*、阿*校招)

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

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

相关文章

ChatGPT AIGC 一键总结SQL优化所有知识点

SQL优化一直是程序员非常关注的内容,使用ChatGPT AIGC结合思维导图进行总结SQL优化的所有知识点内容。 非常简单实用的操作,就得到了如何进行SQL优化的所有细节。 更多内容见: AIGC ChatGPT ,BI商业智能, 可视化Tableau, PowerBI, FineReport, 数据库Mysql Oracle, Off…

Flink CDC 菜鸟教程 -环境篇

本教程将介绍如何使用 Flink CDC 来实现这个需求, 在 Flink SQL CLI 中进行,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE。 系统的整体架构如下图所示: 环境篇 1、 准备一台Linux 2、准备教程所需要的组件 下载 flink-1.13.2 并将其解压至目录 flink-1.13.2 …

阿里后端开发:抽象建模经典案例【文末送书】

文章目录 写作前面1.抽象思维2.软件世界中的抽象3. 经典抽象案例4. 抽象并非一蹴而就&#xff01;需要不断假设、验证、完善5. 推荐一本书 写作末尾 写作前面 在互联网行业&#xff0c;软件工程师面对的产品需求大都是以具象的现实世界事物概念来描述的&#xff0c;遵循的是人…

微信小程序父子组件通讯方法

自定义方法中发送命令 const app getApp() Component({options: {styleIsolation: isolated},data: {},properties: {},attached() {this.init()},methods: {init() {console.log(父组件执行子组件)},clickBtn() {this.triggerEvent(changeRoute, 发送数据到父组件, {})},} }…

typeScript--[函数定义]

一.TypesScript 函数的定义 函数的定义包括两种类型&#xff1a;函数声明和函数表达式。 1.函数声明 function hello(): string {return "hello" } 2.函数表达式 var hello1 function (): string {return "hello" } 二.函数之可选参数 参数后面的限…

Android Studio导入aosp源码

1、在 Ubuntu 系统下&#xff0c;进入源码根目录&#xff0c;运行如下命令&#xff1a; source build/envsetup.sh # 初始化环境变量。 lunch sdk_phone_x86_64 make idegen -j6 # 六核编译 idegen 模块 忽略此命令&#xff1a;mmm development/tools/idegen/ # 此命令可…

XL-LightHouse 与 Flink 和 ClickHouse 流式大数据统计系统

一个Flink任务只能并行处理一个或少数几个数据流&#xff0c;而XL-LightHouse一个任务可以并行处理数万个、几十万个数据流&#xff1b; 一个Flink任务只能实现一个或少数几个数据指标&#xff0c;而XL-LightHouse单个任务就能支撑大批量、数以万计的数据指标。 1、XL-LightHo…

2023计算机毕设选题 python毕业设计如何选题

文章目录 一、python 毕设 选题推荐二、选题注意事项2.1 难度怎么把控&#xff1f;2.2 题目名称怎么取&#xff1f; 三、开题指导3.1 起因3.2 如何避坑(重中之重)3.3 为什么这么说呢&#xff1f; 四、最后 一、python 毕设 选题推荐 以下为学长手动整理python 毕业设计 项目&a…

自动驾驶的区块链结合价值所在

区块链结合自动驾驶的价值所在 1.责任判定 车辆行驶发生事故时&#xff0c;需要进行责任判定&#xff0c; 目前的事故组合方式&#xff1a; 普通车-----普通车 自动驾驶车&#xff08;处于自动驾驶状态&#xff09;--------普通车 自动驾驶车&#xff08;人工驾驶状态&#x…

预测多基因扰动的转录结果

了解细胞对基因扰动的反应是许多生物医学应用的核心&#xff0c;从识别癌症中涉及的基因相互作用到开发再生医学方法。然而&#xff0c;可能的多基因扰动数量的组合爆炸严重限制了实验验证。在这里&#xff0c;作者提出了图增强的基因激活和抑制模拟器&#xff08;GEARS&#x…

06-mq

1、消息队列有什么优点和缺点? 优点&#xff1a; 解耦、异步、削峰填谷。 缺点&#xff1a; 系统可用性降低 系统复杂性提高 一致性问题 2、常见消息队列的比较 3、Kafka的特性 1.消息持久化 2.高吞吐量 3.扩展性强&#xff08;动态&#xff09;4集群&#xff0b;4台集群…

硬件【10】运放-1-理想运放与虚断虚短的来源

1 概述 今天开始&#xff0c;聊一聊运放吧&#xff0c;之前很多兄弟们也提了这个要求。正好我最近也想深入看看运放方面的&#xff0c;那么就借这个机会一步一步再搞一搞吧。 运放这个器件相对于电阻&#xff0c;电容&#xff0c;三极管&#xff0c;MOS管等器件算是比较复杂的…

Docker进阶:Docker Compose(容器编排) 管理多容器应用—实战案例演示

Docker进阶&#xff1a;Docker Compose&#xff08;容器编排&#xff09; 管理多容器应用—实战案例演示 一、Docker Compose简介二、Docker Compose安装三、Docker Compose卸载四、Docker Compose核心概念4.1、一文件原则&#xff08;docker-compose.yml&#xff09;4.2、服务…

CC2530中文数据手册

分享一下cc2530的中文数据手册 下载地址&#xff1a;【免费】CC2530中文数据手册完全版资源-CSDN文库 最近在学习ZigBee的开发&#xff0c;使用的是cc2530芯片&#xff0c;在网上找参考手册的时候&#xff0c;发现就各种收费&#xff0c;找到一个免费的太难了&#xff0c;就在这…

大数据课程M1——ELK的概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解ELK的定义; ⚪ 掌握ELK的使用; 一、什么是ELK 1. 简介 ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是 ElasticSearch、Logstash…

vue交互

目录 交互 指有人参与的&#xff0c;程序并非按照一定的顺序去执行&#xff0c;可以人为介入&#xff0c;让程序或应用去根据输入选择执行流程&#xff0c;提供给我们需要的信息。 前、后端 前端&#xff1a;指客户端&#xff0c;浏览器 用户可以直接看到、操作&#xff0c;可…

t-SNE——高维特征可视化分析

无监督学习之t-SNEhttps://github.com/SarthakV7/Clustering-Barron-s-333-word-list-using-unsupervised-machine-learning

ChatGPT:怎么用Java调出来文件选择器,然后返回文件的位置和名称?Swing 组件和 AWT 组件:Java GUI 编程的不同之处

ChatGPT&#xff1a;怎么用Java调出来文件选择器&#xff0c;然后返回文件的位置和名称&#xff1f;Swing 组件和 AWT 组件&#xff1a;Java GUI 编程的不同之处 怎么用Java调出来文件选择器&#xff0c;然后返回文件的位置和名称 ChatGPT&#xff1a; 在Java中&#xff0c;你…

【大数据之Kafka】十二、Kafka之offset位移及漏消费和重复消费

1 offset的默认维护位置 Kafka0.9版本之前&#xff0c; consumer默认将offset保存在Zookeeper中。从0.9版本开始&#xff0c;consumer默认将offset保存在Kafka一个内置的topic中&#xff0c;该topic为 consumer_offsets。   consumer_offsets 主题里面采用 key 和 value 的方…

【网络教程】记一次使用Docker手动搭建BT宝塔面板的全过程(包含问题解决如:宝塔面板无法开启防火墙,ssh,nginx等)

文章目录 准备安装安装宝塔面板开启ssh和修改ssh的密码导出镜像问题解决宝塔面板无法开启防火墙无法启动ssh设置密码nginx安装失败设置开机启动相关服务准备 演示的系统环境:Ubuntu 22.04.3 LTS更新安装/升级docker到最新版本升级docker相关命令如下# 更新软件包列表并自动升级…