并发编程面试题

目录

    • 并发编程的优缺点
      • 为什么要使用并发编程(并发编程的优点)
      • 并发编程有什么缺点
      • 并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?
      • 并行和并发有什么区别?
      • 什么是多线程,多线程的优劣?
    • 线程和进程区别
      • 什么是线程和进程?
      • 进程与线程的区别
      • 什么是上下文切换?
      • 守护线程和用户线程有什么区别呢?
      • 如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?
      • 什么是线程死锁
      • 形成死锁的四个必要条件是什么
      • 如何避免线程死锁
    • 创建线程的四种方式
      • 创建线程有哪几种方式?
      • 说一下 runnable 和 callable 有什么区别?
      • 线程的 run()和 start()有什么区别?
      • 为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
      • 什么是 Callable 和 Future?
      • 什么是 FutureTask
    • 线程的状态和基本操作
      • 说说线程的生命周期及五种基本状态?
      • Java 中用到的线程调度算法是什么?
      • 线程的调度策略
      • 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?
      • 请说出与线程同步以及线程调度相关的方法。
      • sleep() 和 wait() 有什么区别?
      • 你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?
      • 为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?
      • 为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
        • Thread 类中的 yield 方法有什么作用?
      • 为什么 Thread 类的 sleep()和 yield ()方法是静态的?
      • 线程的 sleep()方法和 yield()方法有什么区别?
        • 如何停止一个正在运行的线程?
      • Java 中 interrupted 和 isInterrupted 方法的区别?
      • 什么是阻塞式方法?
      • Java 中你怎样唤醒一个阻塞的线程?
      • notify() 和 notifyAll() 有什么区别?
      • 如何在两个线程间共享数据?
      • Java 如何实现多线程之间的通讯和协作?
      • 同步方法和同步块,哪个是更好的选择?
      • 什么是线程同步和线程互斥,有哪几种实现方式?
      • 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?
      • 如果你提交任务时,线程池队列已满,这时会发生什么
      • 什么叫线程安全?servlet 是线程安全吗?
      • 在 Java 程序中怎么保证多线程的运行安全?
      • 你对线程优先级的理解是什么?
      • 线程类的构造方法、静态块是被哪个线程调用的
      • Java 中怎么获取一份线程 dump 文件?你如何在 Java 中获取线程堆栈?
      • 一个线程运行时发生异常会怎样?
      • Java 线程数过多会造成什么异常?
    • 并发理论
      • Java内存模型
        • Java中垃圾回收有什么目的?什么时候进行垃圾回收?
        • 如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
        • finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
      • 重排序与数据依赖性
        • 为什么代码会重排序?
        • as-if-serial规则和happens-before规则的区别
    • 并发关键字
      • synchronized
        • synchronized 的作用?
        • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗
        • 说一下 synchronized 底层实现原理?
        • 什么是自旋
        • 多线程中 synchronized 锁升级的原理是什么?
        • 线程 B 怎么知道线程 A 修改了变量
        • 当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象的 synchronized 方法 B?
        • synchronized、volatile、CAS 比较
        • synchronized 和 Lock 有什么区别?
        • synchronized 和 ReentrantLock 区别是什么?
      • volatile
        • volatile 关键字的作用
        • Java 中能创建 volatile 数组吗?
        • volatile 变量和 atomic 变量有什么不同?
        • volatile 能使得一个非原子操作变成原子操作吗?
        • volatile 修饰符的有过什么实践?
        • synchronized 和 volatile 的区别是什么?
      • final
        • 什么是不可变对象,它对写并发应用有什么帮助?
    • Lock体系
      • Lock简介与初识AQS
        • Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?
        • 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
        • 什么是 CAS
        • CAS 的会产生什么问题?
        • 什么是死锁?
        • 产生死锁的条件是什么?怎么防止死锁?
        • 死锁与活锁的区别,死锁与饥饿的区别?
        • 多线程锁的升级原理是什么?
      • AQS(AbstractQueuedSynchronizer)详解与源码分析
        • AQS 介绍
        • AQS 原理分析
      • ReentrantLock(重入锁)实现原理与公平锁非公平锁区别
        • 什么是可重入锁(ReentrantLock)?
      • 读写锁ReentrantReadWriteLock源码分析
        • ReadWriteLock 是什么
      • Condition源码分析与等待通知机制
      • LockSupport详解
    • 并发容器
      • 并发容器之ConcurrentHashMap详解(JDK1.8版本)与源码分析
        • 什么是ConcurrentHashMap?
        • Java 中 ConcurrentHashMap 的并发度是什么?
        • 什么是并发容器的实现?
        • Java 中的同步集合与并发集合有什么区别?
        • SynchronizedMap 和 ConcurrentHashMap 有什么区别?
      • 并发容器之CopyOnWriteArrayList详解
        • CopyOnWriteArrayList 是什么,可以用于什么应用场景?有哪些优缺点?
      • 并发容器之ThreadLocal详解
        • ThreadLocal 是什么?有哪些使用场景?
        • 什么是线程局部变量?
        • ThreadLocal内存泄漏分析与解决方案
        • ThreadLocal造成内存泄漏的原因?
        • ThreadLocal内存泄漏解决方案?
      • 并发容器之BlockingQueue详解
        • 什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
      • 并发容器之ConcurrentLinkedQueue详解与源码分析
      • 并发容器之ArrayBlockingQueue与LinkedBlockingQueue详解
    • 线程池
      • Executors类创建四种常见线程池
        • 什么是线程池?有哪几种创建方式?
        • 线程池有什么优点?
        • 线程池都有哪些状态?
        • 什么是 Executor 框架?为什么使用 Executor 框架?
        • 在 Java 中 Executor 和 Executors 的区别?
        • 线程池中 submit() 和 execute() 方法有什么区别?
        • 什么是线程组,为什么在 Java 中不推荐使用?
      • 线程池之ThreadPoolExecutor详解
        • Executors和ThreaPoolExecutor创建线程池的区别
        • 你知道怎么创建线程池吗?
        • ThreadPoolExecutor构造函数重要参数分析
        • ThreadPoolExecutor饱和策略
        • 一个简单的线程池Demo:`Runnable`+`ThreadPoolExecutor`
      • 线程池之ScheduledThreadPoolExecutor详解
        • FutureTask详解
    • 原子操作类
      • 什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?
      • 说一下 atomic 的原理?
    • 并发工具
      • 并发工具之CountDownLatch与CyclicBarrier
        • 在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
      • 并发工具之Semaphore与Exchanger
        • Semaphore 有什么作用
        • 什么是线程间交换数据的工具Exchanger
        • 常用的并发工具类有哪些?
    • 并发实践

并发编程的优缺点

为什么要使用并发编程(并发编程的优点)

在这里插入图片描述

并发编程有什么缺点

在这里插入图片描述

并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?

在这里插入图片描述

并行和并发有什么区别?

在这里插入图片描述

什么是多线程,多线程的优劣?

在这里插入图片描述

线程和进程区别

什么是线程和进程?

在这里插入图片描述

进程与线程的区别

在这里插入图片描述

什么是上下文切换?

在这里插入图片描述

守护线程和用户线程有什么区别呢?

在这里插入图片描述

如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?

在这里插入图片描述

什么是线程死锁

在这里插入图片描述
在这里插入图片描述

形成死锁的四个必要条件是什么

在这里插入图片描述

如何避免线程死锁

在这里插入图片描述

创建线程的四种方式

创建线程有哪几种方式?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

说一下 runnable 和 callable 有什么区别?

在这里插入图片描述

线程的 run()和 start()有什么区别?

在这里插入图片描述

为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?

在这里插入图片描述

什么是 Callable 和 Future?

在这里插入图片描述

什么是 FutureTask

在这里插入图片描述

线程的状态和基本操作

说说线程的生命周期及五种基本状态?

在这里插入图片描述
在这里插入图片描述

Java 中用到的线程调度算法是什么?

在这里插入图片描述

线程的调度策略

在这里插入图片描述

什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?

在这里插入图片描述

请说出与线程同步以及线程调度相关的方法。

在这里插入图片描述

sleep() 和 wait() 有什么区别?

在这里插入图片描述

你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?

在这里插入图片描述

为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?

在这里插入图片描述

为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?

在这里插入图片描述

Thread 类中的 yield 方法有什么作用?

在这里插入图片描述

为什么 Thread 类的 sleep()和 yield ()方法是静态的?

在这里插入图片描述

线程的 sleep()方法和 yield()方法有什么区别?

在这里插入图片描述

如何停止一个正在运行的线程?

在这里插入图片描述

Java 中 interrupted 和 isInterrupted 方法的区别?

在这里插入图片描述

什么是阻塞式方法?

在这里插入图片描述

Java 中你怎样唤醒一个阻塞的线程?

在这里插入图片描述

notify() 和 notifyAll() 有什么区别?

在这里插入图片描述

如何在两个线程间共享数据?

在这里插入图片描述

Java 如何实现多线程之间的通讯和协作?

在这里插入图片描述

同步方法和同步块,哪个是更好的选择?

在这里插入图片描述

什么是线程同步和线程互斥,有哪几种实现方式?

在这里插入图片描述

在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

在这里插入图片描述

如果你提交任务时,线程池队列已满,这时会发生什么

在这里插入图片描述

什么叫线程安全?servlet 是线程安全吗?

在这里插入图片描述

在 Java 程序中怎么保证多线程的运行安全?

在这里插入图片描述

你对线程优先级的理解是什么?

在这里插入图片描述

线程类的构造方法、静态块是被哪个线程调用的

在这里插入图片描述

Java 中怎么获取一份线程 dump 文件?你如何在 Java 中获取线程堆栈?

在这里插入图片描述

一个线程运行时发生异常会怎样?

在这里插入图片描述

Java 线程数过多会造成什么异常?

在这里插入图片描述

并发理论

Java内存模型

Java中垃圾回收有什么目的?什么时候进行垃圾回收?

在这里插入图片描述

如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

在这里插入图片描述

finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

在这里插入图片描述

重排序与数据依赖性

为什么代码会重排序?

在这里插入图片描述

as-if-serial规则和happens-before规则的区别

在这里插入图片描述

并发关键字

synchronized

synchronized 的作用?

在这里插入图片描述

说说自己是怎么使用 synchronized 关键字,在项目中用到了吗

在这里插入图片描述

说一下 synchronized 底层实现原理?

在这里插入图片描述

什么是自旋

在这里插入图片描述

多线程中 synchronized 锁升级的原理是什么?

在这里插入图片描述

线程 B 怎么知道线程 A 修改了变量

在这里插入图片描述

当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象的 synchronized 方法 B?

在这里插入图片描述

synchronized、volatile、CAS 比较

在这里插入图片描述

synchronized 和 Lock 有什么区别?

在这里插入图片描述

synchronized 和 ReentrantLock 区别是什么?

在这里插入图片描述

volatile

volatile 关键字的作用

在这里插入图片描述

Java 中能创建 volatile 数组吗?

在这里插入图片描述

volatile 变量和 atomic 变量有什么不同?

在这里插入图片描述

volatile 能使得一个非原子操作变成原子操作吗?

在这里插入图片描述

volatile 修饰符的有过什么实践?

在这里插入图片描述

synchronized 和 volatile 的区别是什么?

在这里插入图片描述

final

什么是不可变对象,它对写并发应用有什么帮助?

在这里插入图片描述

Lock体系

Lock简介与初识AQS

Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?

在这里插入图片描述

乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

在这里插入图片描述

什么是 CAS

在这里插入图片描述

CAS 的会产生什么问题?

在这里插入图片描述

什么是死锁?

产生死锁的条件是什么?怎么防止死锁?

在这里插入图片描述

死锁与活锁的区别,死锁与饥饿的区别?

在这里插入图片描述

多线程锁的升级原理是什么?

在这里插入图片描述

AQS(AbstractQueuedSynchronizer)详解与源码分析

AQS 介绍

在这里插入图片描述

AQS 原理分析

在这里插入图片描述
在这里插入图片描述

ReentrantLock(重入锁)实现原理与公平锁非公平锁区别

什么是可重入锁(ReentrantLock)?

在这里插入图片描述

读写锁ReentrantReadWriteLock源码分析

ReadWriteLock 是什么

在这里插入图片描述

Condition源码分析与等待通知机制

LockSupport详解

并发容器

并发容器之ConcurrentHashMap详解(JDK1.8版本)与源码分析

什么是ConcurrentHashMap?

在这里插入图片描述

Java 中 ConcurrentHashMap 的并发度是什么?

在这里插入图片描述

什么是并发容器的实现?

在这里插入图片描述

Java 中的同步集合与并发集合有什么区别?

在这里插入图片描述

SynchronizedMap 和 ConcurrentHashMap 有什么区别?

在这里插入图片描述

并发容器之CopyOnWriteArrayList详解

CopyOnWriteArrayList 是什么,可以用于什么应用场景?有哪些优缺点?

在这里插入图片描述

并发容器之ThreadLocal详解

ThreadLocal 是什么?有哪些使用场景?

在这里插入图片描述

什么是线程局部变量?

在这里插入图片描述

ThreadLocal内存泄漏分析与解决方案

ThreadLocal造成内存泄漏的原因?

在这里插入图片描述

ThreadLocal内存泄漏解决方案?

在这里插入图片描述

并发容器之BlockingQueue详解

什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

并发容器之ConcurrentLinkedQueue详解与源码分析

并发容器之ArrayBlockingQueue与LinkedBlockingQueue详解

在这里插入图片描述

线程池

Executors类创建四种常见线程池

什么是线程池?有哪几种创建方式?

在这里插入图片描述

线程池有什么优点?

在这里插入图片描述

线程池都有哪些状态?

在这里插入图片描述

什么是 Executor 框架?为什么使用 Executor 框架?

在这里插入图片描述

在 Java 中 Executor 和 Executors 的区别?

在这里插入图片描述

线程池中 submit() 和 execute() 方法有什么区别?

在这里插入图片描述

什么是线程组,为什么在 Java 中不推荐使用?

在这里插入图片描述

线程池之ThreadPoolExecutor详解

Executors和ThreaPoolExecutor创建线程池的区别

在这里插入图片描述

你知道怎么创建线程池吗?

在这里插入图片描述

ThreadPoolExecutor构造函数重要参数分析

在这里插入图片描述

ThreadPoolExecutor饱和策略

在这里插入图片描述

一个简单的线程池Demo:Runnable+ThreadPoolExecutor

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线程池之ScheduledThreadPoolExecutor详解

FutureTask详解

原子操作类

什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?

在这里插入图片描述

说一下 atomic 的原理?

在这里插入图片描述

并发工具

并发工具之CountDownLatch与CyclicBarrier

在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

在这里插入图片描述

并发工具之Semaphore与Exchanger

Semaphore 有什么作用

在这里插入图片描述

什么是线程间交换数据的工具Exchanger

在这里插入图片描述

常用的并发工具类有哪些?

在这里插入图片描述

并发实践

https://blog.csdn.net/ThinkWon/article/details/104863992

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

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

相关文章

html:(35):缩进和行高

段落排版--缩进 中文文字中的段前习惯空两个文字的空白&#xff0c;这个特殊的样式可以用下面代码来实现&#xff1a; p{text-indent:2em;} <p>1922年的春天&#xff0c;一个想要成名名叫尼克卡拉威&#xff08;托比?马奎尔Tobey Maguire 饰&#xff09;的作家&#x…

new/delete与malloc/free

C语言中使用malloc/calloc/realloc用来在堆上分配空间&#xff0c;free将申请的空间释放掉。 malloc&#xff1a; 原型&#xff1a;extern void *malloc(unsigned int num_bytes)。 功能&#xff1a;分配长度为num_bytes字节的内存块。 1 int *p(int*)malloc(sizeof(int));…

Java学习笔记5-1——多线程

目录前言核心概念线程创建继承Thread类实现Runnable接口上述两个方法小结实现Callable接口并发问题简介静态代理模式线程状态线程停止&#xff08;stop&#xff09;线程休眠&#xff08;sleep&#xff09;线程礼让&#xff08;yield&#xff09;线程强制执行&#xff08;join&a…

[Leedcode][JAVA][第128题][最长连续序列][Hash]

【问题描述】[困难] 给定一个未排序的整数数组&#xff0c;找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。【解答思路】 1. SortCompare 先排序&#xff0c;题意要求连…

html:(36):间距和对齐

段落排版--中文字间距、字母间距 中文字间隔、字母间隔设置&#xff1a; 如果想在网页排版中设置文字间隔或者字母间隔就可以使用 letter-spacing 来实现&#xff0c;如下面代码&#xff1a; h1{letter-spacing:50px; } ... <h1>了不起的盖茨比</h1>注意&…

二维凸包 Graham's Scan

凸包是啥&#xff1f;&#xff1f; 凸包就是&#xff1a; 给定二维平面上的点集&#xff0c;凸包就是将最外层的点连接起来构成的凸多边型&#xff0c;它能包含点集中所有的点。 外层的红线 就是凸包 一般题目会让你求利用最外层凸包的一些性质如下面这道题 来看一道模板题…

[Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]

【问题描述】[中等] 给定一个无序的整数数组&#xff0c;找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101]&#xff0c;它的长度是 4。 说明:可能会有多种最长上升子序列的组合&#xff0c;你只需要输出对应的…

html:(38):元素分类和块级元素

元素分类 在讲解CSS布局之前&#xff0c;我们需要提前知道一些知识&#xff0c;在CSS中&#xff0c;html中的标签元素大体被分为三种不同的类型&#xff1a;块状元素、内联元素(又叫行内元素)和内联块状元素。 常用的块状元素有&#xff1a; <div>、<p>、<h1…

html:(39):块级元素和内联块级元素

元素分类--内联元素 在html中&#xff0c;<span>、<a>、<label>、 <strong> 和<em>就是典型的内联元素&#xff08;行内元素&#xff09;&#xff08;inline&#xff09;元素。当然块状元素也可以通过代码display:inline将元素设置为内联元素。…

[剑指offer][JAVA]面试题第[15]题[二进制中1的个数][位运算]

【问题描述】[简单] 请实现一个函数&#xff0c;输入一个整数&#xff08;无符号数&#xff09;&#xff0c;输出该数二进制表示中 1 的个数。例如&#xff0c;把 9 表示成二进制是 1001&#xff0c;有 2 位是 1。因此&#xff0c;如果输入 9&#xff0c;则该函数输出 2。示例…

极角排序的几种方法

转载自http://www.cnblogs.com/aiguona/p/7248311.html&#xff01;&#xff01; 关于极角排序&#xff1a; 在平面内取一个定点O&#xff0c;叫极点&#xff0c;引一条射线Ox&#xff0c;叫做极轴&#xff0c;再选定一个长度单位和角度的正方向&#xff08;通常取逆时针方向&a…

[剑指offer][JAVA]面试题第[16]题[数值的整数次方][位运算][二分法]

【问题描述】[中等] 实现函数double Power(double base, int exponent)&#xff0c;求base的exponent次方。不得使用库函数&#xff0c;同时不需要考虑大数问题。示例 1:输入: 2.00000, 10 输出: 1024.00000 示例 2:输入: 2.00000, -2 输出: 0.25000 解释: 2-2 1/22 1/4 0.…

玩转oracle 11g(50):rman备份脚本

D盘新建一个文件夹backup_file&#xff0c;里面新建一个文件夹logs 一个文件叫auto_full_one_rman.bat 修改这三处 set oracle_sidwiicare rman cmdfile D:/backup_file/level_full_one_rman.rman msglog D:/backup_file/logs/full_one_%date:~0,4%%date:~5,2%%date:~8,2%…

Java学习笔记7-2——注解与反射

目录理解 Class 类并获取 Class 实例Class类获取 Class 类的实例哪些类型可以有Class对象所有类型的Class对象从内存角度分析类加载【重点】类加载的过程什么时候会发生类的初始化类加载器获取运行时类的完整结构有了Class对象能做什么性能对比分析通过反射操作泛型通过反射操作…

python实战学习之matplotlib绘图续

学习完matplotlib绘图可以设置的属性&#xff0c;还需要学习一下除了折线图以外其他类型的图如直方图&#xff0c;条形图&#xff0c;散点图等&#xff0c;matplotlib还支持更多的图&#xff0c;具体细节可以参考官方文档&#xff1a;https://matplotlib.org/gallery/index.htm…

Spring MVC面试题

目录概述什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f;Spring MVC的优点核心组件Spring MVC的主要组件&#xff1f;什么是DispatcherServlet什么是Spring MVC框架的控制器&#xff1f;Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决…

5.应用服务器简介

应用服务器简介 Tomcat

NOI-砝码称重v2 多重背包 生成函数

描述 设有1g、2g、3g、5g、10g、20g的砝码各若干枚&#xff08;其总重<100,000&#xff09;&#xff0c;要求&#xff1a;计算用这些砝码能称出的不同重量的个数&#xff0c;但不包括一个砝码也不用的情况。 输入 一行&#xff0c;包括六个正整数a1,a2,a3,a4,a5,a6&#x…

数字图像与数字图像处理

数字图像与数字图像处理 1、基本概念 &#xff08;1&#xff09;图&#xff1a;是物体反射或者透射电磁波的分布。 &#xff08;2&#xff09;像&#xff1a;是人的视觉系统对接收的图信息在大脑 中形成的印象。 &#xff08;3&#xff09;图像(image)&#xff1a;是“图”和…

[剑指offer][JAVA]面试题第[46]题[把数字翻译成字符串][递归][逆推]

【问题描述】[中等] 给定一个数字&#xff0c;我们按照如下规则把它翻译为字符串&#xff1a;0 翻译成 “a” &#xff0c;1 翻译成 “b”&#xff0c;……&#xff0c;11 翻译成 “l”&#xff0c;……&#xff0c;25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函…