Java面试题(自用-持续更新)

news2024/12/25 12:23:29

本文目录如下:

  • Java面试题
    • 一、基础知识
      • JDK 和 JRE 有什么区别?
      • String 属于基础的数据类型吗?基础类型有哪些?
      • String str="xqz"与 String str=new String("xqz")一样吗?
      • java 中操作字符串都有哪些类?它们之间有什么区别?
      • 如何将字符串反转?
      • String 类的常用方法都有那些?
      • == 和 equals 的区别是什么?
      • final 在 java 中有什么作用?
      • java 中的 Math.round() 方法的用法?
      • try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
      • 常见的异常类有哪些?
    • 二、面向对象
      • 如何理解面向对象编程?
      • 普通类和抽象类有哪些区别?
      • 浅谈一下抽象方法?
      • 接口和抽象类有什么区别?
      • 什么是 java 序列化?什么情况下需要序列化?
      • 为什么要使用克隆?
      • 如何实现对象克隆?
    • 三、容器
      • java 容器都有哪些?
      • Collection 和 Collections 有什么区别?
      • ArrayList 和 LinkedList 的区别是什么?
      • 如何实现数组和 List 之间的转换?
      • ArrayList 和 Vector 的区别是什么?
      • Array 和 ArrayList 有何区别?
      • HashMap 和 Hashtable 有什么区别?
      • 如何决定使用 HashMap 还是 TreeMap?
      • 简单说一下 HashMap 的实现原理?
      • 说一下 HashSet 的实现原理?
      • 在 Queue 中 poll()和 remove()有什么区别?
      • Iterator 怎么使用?有什么特点?
    • 四、并发编程
      • 线程和进程的区别?
      • 守护线程是什么?
      • 创建线程有哪几种方式?
      • 线程有哪些状态?
      • sleep() 和 wait() 有什么区别?
      • 线程的 run()和 start()有什么区别?
      • 在 java 程序中怎么保证多线程的运行安全?
      • 什么是死锁?
    • 五、IO
      • Java 中 IO 流分为几种?
      • BIO、NIO、AIO 有什么区别?
      • Files的常用方法都有哪些?
    • 六、设计模式
      • 说几个常用的设计模式?
    • 七、通信/网络
      • 简述 tcp 和 udp的区别?
      • OSI 的七层模型都有哪些?
      • get 和 post 请求有哪些区别?
    • 八、Spring Boot
      • session 和 cookie 有什么区别?
      • 为什么使用Spring Boot?
      • Spring Boot 核心配置文件是什么?
      • Spring Boot 有哪些方式可以实现热部署
      • 解释一下什么是面向切片编程AOP?
      • @RequestMapping 的作用是什么?
      • @Autowired 的作用是什么?
      • 什么是 Spring Cloud?
    • 九、Mybatis
      • 什么是 ORM 框架?
      • Mybatis 有几种分页方式?
      • Mybatis 逻辑分页和物理分页的区别是什么?
    • 十、MySQL
      • 数据库的三范式是什么?
      • MySQL常用的存储引擎有哪些?
      • MySQL中char 和 varchar 的区别是什么?
      • MySQL的内连接、左连接、右连接有什么区别?
      • MySQL索引是怎么实现的?
      • 说一下 MySQL 的行锁和表锁?
      • MySQL 问题排查都有哪些手段?
      • 如何做 mysql 的性能优化?
    • 十一、Redis
      • Redis 是什么?都有哪些使用场景?
      • Redis 支持的数据类型有哪些?
      • Redis 有哪些功能?
      • Redis 和 Memecache 有什么区别?
      • Redis 为什么是单线程的?
      • 什么是缓存穿透?怎么解决?
      • Jedis 和 Redisson 有哪些区别?
      • 怎么保证缓存和数据库数据的一致性?
      • Redis 持久化有几种方式?
    • 十二、JVM
      • 说一下 jvm 的主要组成部分?及其作用?
      • 说一下堆和栈的区别?

Java面试题


一、基础知识

JDK 和 JRE 有什么区别?

  • JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
  • JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。

String 属于基础的数据类型吗?基础类型有哪些?

点击查看

String不是基本数据类型,而是一个类(class)
基础类型有 8 种:

  • 整数类: byte, short, int, long
  • 浮点类: double, float
  • 逻辑类: boolean
  • 文本类: char

String str="xqz"与 String str=new String(“xqz”)一样吗?

点击查看

不一样

  • String str=“xqz”: java虚拟机会把它分配到常量池中。
  • String str=new String(“i”): 创建了一个对象,会被分到堆内存中。

java 中操作字符串都有哪些类?它们之间有什么区别?

  • String 声明的是不可变的对象,每次操作都会生成新的 String 对象。而 StringBufferStringBuilder 可以在原有对象的基础上进行操作。
  • StringBufferStringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的。
  • StringBuilder 的性能高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer

如何将字符串反转?

使用 StringBuilder 或者 StringBufferreverse() 方法。


String 类的常用方法都有那些?

查看更多

  • length():返回字符串长度。
  • indexOf():返回指定字符的索引。
  • charAt():返回指定索引处的字符。
  • split():分割字符串,返回一个分割后的字符串数组。
  • substring():截取字符串。

== 和 equals 的区别是什么?

点击查看

  • == 对于基本类型来说是比较,对于引用类型来说是比较的是引用
  • equals 比较的是是否相等。

final 在 java 中有什么作用?

点击查看

  • final修饰变量
    当final修饰的是一个基本数据类型数据时, 这个数据的值在初始化后将不能被改变。(常量)
  • final修饰方法(如:Object的getClass方法)
    首要作用是锁定方法, 不让任何继承类对其进行修改。
  • final修饰(如:String、System类等)
    表示类不可被继承。修饰的类所有成员方法都将被隐式修饰为final方法。

java 中的 Math.round() 方法的用法?

查看更多案例

Java中的 Math.round() 方法是将浮点型进行“四舍五入”转换为int类型的一个方法。

  • 例1: Math.round(-11.5) -> 输出为 -11
  • 例2: Math.round(11.5) -> 输出为 12

try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

会执行,在 return 前执行。


常见的异常类有哪些?

  • NullPointerException:当应用程序试图访问空对象时,则抛出该异常。
  • IndexOutOfBoundsException:指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。
  • IOException:当发生某种I/O异常时,抛出此异常。此类是失败或中断的I/O操作生成的异常的通用类。

二、面向对象

如何理解面向对象编程?

1、万物皆对象,任何事物都可以在代码中用对象表达出来。
2、对象包含自己的属性和行为。创建对象,就是创建对象的描述,设计对象的行为。
3、编程的过程,就是不断的创建对象,并设计对象的行为。


普通类和抽象类有哪些区别?

  • 普通类不能包含抽象方法,抽象类可以包含抽象方法。
  • 抽象类不能直接实例化,普通类可以直接实例化。

浅谈一下抽象方法?

  • Abstract 关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体,具体实现由它的子类确定。
  • 抽象方法只能在抽象类中进行创建。且子类必须重写父类的抽象方法(抽象类除外)。

接口和抽象类有什么区别?

  • 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
  • 构造函数:抽象类可以有构造函数;接口不能有。
  • main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。
  • 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
  • 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

什么是 java 序列化?什么情况下需要序列化?

序列化是为了保存内存中的各种对象的状态,并且可以把保存的对象状态再读出来。


为什么要使用克隆?

对克隆出来的对象进行操作,不会影响原来的对象。

如何实现对象克隆?

实现Cloneable接口并重写Object类中的 clone() 方法;

三、容器

java 容器都有哪些?

 java 容器

Java中Set(集合), List(列表)与Map(映射)的区别: 查看详情 (注:Set集合中没有重复值)


Collection 和 Collections 有什么区别?

点击查看

  • Collection 是集合的顶层接口,本身是一个Interface接口,里面包含了一些集合的基本操作,需要实例化Collection下的list、set、map、vector接口才能调用里面的方法。
  • Collections 类是Java中集合的工具类,服务于Collection框架,不能实例化。Collections 类中的方法都是静态方法,要调用内部方法直接用类名调用(Collections.sort)。

ArrayList 和 LinkedList 的区别是什么?

  • ArrrayList底层的数据结构是数组, 支持随机访问
  • LinkedList 的底层数据结构是双向循环链表,不支持随机访问。
  • ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)

如何实现数组和 List 之间的转换?

  • List转换成为数组:调用ArrayListtoArray 方法。
  • 数组转换成为List:调用ArraysasList 方法。

ArrayList 和 Vector 的区别是什么?

  • Vector 是线程安全的。
  • ArrayList 不是线程安全的。

Array 和 ArrayList 有何区别?

点击查看

  • Array:只可存储基本数据类型对象; ArrayList:只能存储对象。
  • Array:被设置为固定大小; ArrayList:是一个可变数组,大小可自动调整。
  • Array所包含的方法没有ArrayList多。

HashMap 和 Hashtable 有什么区别?

点击查看

  • 线程安全性:Hashtable是线程安全的。HashMap是线程不安全的。
  • 是否允许存在null:Hashtable中key和value都不允许出现null值。HashMap:null可以作为键和值(只能有一个null键)。
  • 是否提供contains方法:HashMap:它去掉了Hashtable的contains方法,保留了containsKey和containsValue。而Hashtable包含这三种方法。

如何决定使用 HashMap 还是 TreeMap?

  • HashMap:基于哈希表实现。
  • TreeMap:基于红黑树实现。(注:TreeMap默认是按照Key值升序排序)。
  • 对比:对于在Map中插入、删除和定位元素这类操作,HashMap是最好的选择。然而,假如你需要对一个有序的key集合进行遍历,TreeMap是更好的选择。

简单说一下 HashMap 的实现原理?

  • HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。
  • 链表中的节点数超过8个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)O(logn)

说一下 HashSet 的实现原理?

  • HashSet底层由HashMap实现。
  • HashSet的值存放于HashMapkey上。

在 Queue 中 poll()和 remove()有什么区别?

poll()remove() 都是从队列中取出一个元素:

  • poll() 在获取元素失败的时候会返回null
  • remove() 失败的时候会抛出异常

Iterator 怎么使用?有什么特点?

Java中的Iterator功能比较简单,并且只能单向移动:

  • (1) 使用next()获得序列中的下一个元素。
  • (2) 使用hasNext()检查序列中是否还有元素。
  • (3) 使用remove()将迭代器新返回的元素删除。

四、并发编程

线程和进程的区别?

  • 进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。
  • 线程是进程的一个实体,是cpu调度和分派的基本单位,多个线程共享内存资源,减少切换次数,从而效率更高。

守护线程是什么?

  • 守护线程(即daemon thread),是个服务线程,准确地来说就是服务其他的线程。

创建线程有哪几种方式?

  • 1.继承Thread类创建线程类: 定义Thread类子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。
  • 2.通过Runnable接口创建线程类: 定义runnable接口实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。

线程有哪些状态?

  • 线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。

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

  • sleep():**sleep()**是线程类 (Thread类) 的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程。休眠但不会释放锁
  • wait()wait()Object类的方法,当一个线程执行到wait方法时,它就它就进入该对象相关的等待池,同时释放对象的机锁,使得其他线程能够访问,可以通过notifynotifyAll方法来唤醒等待的线程。

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

  • run(): 线程体。它包含了线程要执行的内容。
  • start(): 用于启动线程。

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

查看实现方式

线程安全在三个方面体现:

  • 原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic+synchronized);
  • 可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized+volatile);
  • 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序(volatile)。

什么是死锁?

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态。


五、IO

Java 中 IO 流分为几种?

  • 按功能来分:输入流(input)输出流(output)
  • 按类型来分:字节流字符流
  • 字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

BIO、NIO、AIO 有什么区别?

查看原理

  • BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
  • NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道) 通讯,实现了多路复用。
  • AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了 异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

Files的常用方法都有哪些?

  • Files.exists():检测文件路径是否存在。
  • Files.createFile():创建文件。
  • Files.createDirectory():创建文件夹。
  • Files.read():读取文件。
  • Files.write():写入文件。
  • Files.delete():删除一个文件或目录。

六、设计模式

说几个常用的设计模式?

点击查看

  • 单例模式: 一个应用程序中,某个类的实例对象只能有一个。
  • 观察者模式: 对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。(本质就是调用其他对象的函数)
  • 装饰者模式: 对已有的业务逻辑进一步的封装,使其增加额外的功能。(依赖继承实现, 不断加料)
  • 适配器模式: 把一个类的接口变换成客户端所期待的另一种接口。(创建一个中间类来解决无法调用的问题)

七、通信/网络

简述 tcp 和 udp的区别?

  • TCP面向连接; UDP是无连接的。
  • TCP提供可靠的服务。保证数据无差错,不丢失,不重复,且按序到达; UDP尽最大努力交付,不保证可靠交付。
  • UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信。

OSI 的七层模型都有哪些?

  • 应用层:网络服务与最终用户的一个接口。
  • 传输层:定义传输数据的协议端口号,以及流控和差错校验。
  • 网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。
  • 数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。
  • 物理层:建立、维护、断开物理连接。

get 和 post 请求有哪些区别?

  • GET参数通过URL传递,POST放在Request body中。
  • GET请求在URL中传送的参数是有长度限制的,而POST没有。
  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

八、Spring Boot

session 和 cookie 有什么区别?

点击查看

  • session保存在服务器端(客户端仅保存一个sessionID),Cookie保存在客户端。
  • session保存的是对象,Cookie保存的是字符串。cookie的存储限制数据量不大于4KB,而session的容量则是无限量的。
  • session在会话结束后就会关闭,但是Cookie可以经过持久化而长期保存在客户端的本地硬盘上。所以session也更安全。

为什么使用Spring Boot?

  • 零配置。无冗余代码生成和XML 强制配置,遵循“约定大于配置” 。
  • 内嵌容器: 省去了配置Tomcat的繁琐。
  • 与主流框架集成简单: 大量第三方库开箱即用。

  • Spring是一个轻量级的 控制反转(IoC)面向切面(AOP) 的容器框架。
  • SpringBoot是一个服务于框架的框架,服务范围是简化配置文件

Spring Boot 核心配置文件是什么?

Spring Boot提供了两种常用的配置文件:

  • properties文件
  • yml文件

Spring Boot 有哪些方式可以实现热部署

点击查看

Spring Boot热部署实现有两种方式:

  • 1.使用spring-boot-devtools
  • 2.使用spring loaded

解释一下什么是面向切片编程AOP?

  • 所谓切片,其实就是: 将那些与业务无关,却为业务模块所共同调用的逻辑或方法封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
  • AOP的核心思想就是“将应用程序中的商业逻辑同对其提供支持的通用服务进行分离。

@RequestMapping 的作用是什么?

  • RequestMapping是一个用来处理请求地址映射的注解,可用于方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@Autowired 的作用是什么?

  • @Autowired 是一个注解,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。
  • @Autowired 默认是按照类去匹配,配合 @Qualifier 指定按照名称去装配 bean。

什么是 Spring Cloud?

  • Spring Cloud 就是致力于分布式系统、云服务的框架。
  • Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具。

九、Mybatis

什么是 ORM 框架?

对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

Mybatis 有几种分页方式?

点击查看

  • LIMIT关键字: 缺点: 实现复杂。
  • RowBounds实现分页: 缺点: DB压力比较大,因为将结果暂存在db了。

Mybatis 逻辑分页和物理分页的区别是什么?

点击查看

  • 逻辑分页:同时逻辑分页是先查询出所有的数据,再根据代码块的所需。
  • 物理分页:通过LIMIT实现分页。(更侧重于sql语句)

十、MySQL

数据库的三范式是什么?

  • 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。
  • 第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。
  • 第三范式:任何非主属性不依赖于其它非主属性。

MySQL常用的存储引擎有哪些?

点击查看

MyISAM

  • 优点:查询数据相对较快,适合大量的select,可以全文索引。
  • 缺点:不支持事务,不支持外键,并发量较小,不适合大量update。

InnoDB

  • 优点:支持事务,支持外键,并发量较大,适合大量update。
  • 缺点:查询数据相对较慢,不适合大量的select。

MyISAM和InnoDB对比

MySQL中char 和 varchar 的区别是什么?

  • char(n) :缺点:占用空间;适用场景:存储密码的 md5 值。
  • varchar(n) :可变长度,存储的值是每个值占用的字节再加上一个用来记录其长度的字节的长度。

总结:从空间上考虑 varcahr 比较合适;从效率上考虑 char 比较合适。


MySQL的内连接、左连接、右连接有什么区别?

  • 内连接关键字:inner join左连接left join右连接right join
  • 内连接是把匹配的关联数据显示出来;左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;右连接正好相反。

MySQL索引是怎么实现的?

主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,所以索引的性能也是更好的。


说一下 MySQL 的行锁和表锁?

  • MyISAM 只支持表锁InnoDB 支持表锁行锁,默认为行锁
  • 表级锁:开销小,加锁快,不会出现死锁。锁粒度大,发生锁冲突的概率高,并发量低。
  • 行级锁:开销大,加锁慢,会出现死锁。锁粒度小,发生锁冲突的概率小,并发度高。

MySQL 问题排查都有哪些手段?

  • 使用 show processlist 命令查看当前所有连接信息
  • 使用 explain 命令查询 SQL 语句执行计划
  • 开启慢查询日志,查看慢查询的 SQL

如何做 mysql 的性能优化?

  • 为搜索字段创建索引。
  • 避免使用 select *,列出需要查询的字段。
  • 选择正确的存储引擎。

十一、Redis

Redis 是什么?都有哪些使用场景?

Redis是一个开源的、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。


Redis 使用场景:

  • 海量数据的读写
  • 数据高并发的读写
  • 扩展性要求高的数据

Redis 支持的数据类型有哪些?

点击查看

  • string(字符串)
  • hash(哈希): string 类型的字段(key)值(value) 的映射表,通常用来存储对象使用。
  • list(列表): string列表; 一般用于消息队列缓存列表等场景下。
  • set(集合): string类型的无序集合,集合中不能出现重复的数据。
  • zset(sorted set:有序集合): string类型的有序集合。

Redis 有哪些功能?

  • 数据缓存功能
  • 分布式锁的功能
  • 支持数据持久化
  • 支持消息队列

Redis 和 Memecache 有什么区别?

  • Memcached所有的值均是简单的字符串,Redis支持更为丰富的数据类型。
  • Redis的速度比Memcached快很多。
  • Redis可以持久化其数据。

Redis 为什么是单线程的?

因为 cpu 不是 Redis 的瓶颈,Redis 的瓶颈最有可能是机器内存或者网络带宽。

什么是缓存穿透?怎么解决?

缓存穿透:指查询数据库中没有的数据,缓存无法命中,每次请求都要到数据库去查询,造成缓存穿透。


解决方案:最简单的方法如果一个查询返回的数据为空,我们就把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。


Jedis 和 Redisson 有哪些区别?

JedisRedisJava实现的客户端,其API提供了比较全面的Redis命令的支持。
RedissonJedis相比,功能较为简单,不支持排序、事务、管道、分区等Redis特性。


怎么保证缓存和数据库数据的一致性?

  • 合理设置缓存的过期时间。
  • 新增、更改、删除数据库操作时同步更新 Redis。

Redis 持久化有几种方式?

Redis 的持久化有两种方式:

  • RDB(Redis Database):指定的时间间隔能对你的数据进行快照存储。
  • AOF(Append Only File):每一个收到的写命令都通过write函数追加到文件中。

十二、JVM

说一下 jvm 的主要组成部分?及其作用?

  • 类加载器(ClassLoader)
  • 运行时数据区(Runtime Data Area)
  • 执行引擎(Execution Engine)
  • 本地库接口(Native Interface)

说一下堆和栈的区别?

  • 栈内存存储的是局部变量。堆内存存储的是实体。
  • 栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短。
  • 栈内存存放的变量在生命周期结束时释放。堆内存存放的实体会被垃圾回收机制不定时的回收。

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

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

相关文章

王佩丰 Excel 基础24讲 | 学习笔记(全)

第一讲:认识Excel 1.简介 excel能做什么? 数据存储 → 数据处理 → 数据分析 → 数据呈现 excel界面 补充:Excel数据分析步骤 ①提出问题:明确自己需要通过数据分析解决什么问题 ②理解数据:理解数据各个字段的含义…

【手写 Promise 源码】第十五篇 - 了解 generator 生成器

一,前言 上一篇,实现了 promisify 和应用场景介绍,主要涉及以下几个点: promisify 简介和测试;promisify 功能的实现:promisify、promisifyAll; 目前,Promise 部分已基本完成&…

FPGA实现图像任意位置显示,串口协议控制显示位置,提供工程源码和技术支持

目录1、图像任意位置显示理论基础2、设计思路和架构3、OV5640图像采集4、图像DDR3三帧缓存5、图像任意位置输出显示6、串口协议控制显示位置7、vivado工程介绍8、上板调试验证9、福利:工程源码获取1、图像任意位置显示理论基础 图像任意位置显示指的是在显示屏上的…

Linux新手渣渣上路史

时至2022年,IT行业的迅速发展大家也有目共睹,IT行业在社会的发展中起着举足轻重的作用。其中一角Linux系统,从诞生到开源,再到现在受大众的欢迎,是一个很好的例子。Linux和windows类似,是一个操作系统&…

java 微服务高级之分布式事务 Seata框架 CAP定理 BASE理论 XA模式 AT模式 TCC模式 SAGA模式

分布式事务问题 1.1.本地事务 1.2.分布式事务 一旦有一个失败了,其他两个不知情失败的情况,还是执行并成功 在分布式系统下,一个业务跨越多个服务或数据源,每个服务都是一个分支事务,要保证所有分支事务最终状态一致…

【JavaEE】线程安全的集合类

引言 在Java标准库中,大部分集合类都是线程不安全的。Vector(比ArrayList多了同步化机制就变得线程安全了);Stack(继承Vector);Hashtable(只比Hashmap多了线程安全);以Concurrent开头的集合类:ConcurrentHashMap、Con…

Echarts 用图形纹理来填充颜色(color - pattern)

第006个点击查看专栏目录在上一篇文章中已经讲过 ECharts线性渐变色示例演示(2种渐变方式),这个示例的颜色使用纹理来做填充,纹理填充: pattern color:{ //纹理填充 image: patternImg, repeat: ‘repeat’ } 示例效果…

禾川HCQ ModBUS+485主从站调试

硬件,485转usb,如果主站是plc,不需要这个线,我现在主站是电脑,调试用。 HCQ0 禾川控制器。 软件 modbus tools 调试软件,自行下载吧,社区传不上去。 硬件连接时注意交叉连接,HCQ0 A端…

MATLAB 逻辑数组

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

Java⽇志框架学习笔记

目录 1.⽇志概述 1.1 ⽇志是⽤来做什么的? 1.2 为什么要⽤到⽇志框架? 1.3 现有的⽇志框架有哪些? 1.4 ⽇志⻔⾯技术 2.logback 2.1 logback介绍 2.1.1 logback 模块 2.1.2 logback 组件 2.1.3 logback 配置 2.1.4 logback.xml 配…

2023网络爬虫 -- 获取动态数据

一、网站的正常界面1、网址https://movie.douban.com/typerank?type_name%E5%8A%A8%E4%BD%9C%E7%89%87&type5&interval_id100:90&action2、正常的页面二、爬取数据1、源代码import requests头{"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64…

首屏加载速度慢怎么解决?

一、什么是首屏加载 首屏时间(First Contentful Paint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容 首屏加载可以说是…

分享156个ASP源码,总有一款适合您

ASP源码 分享156个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 156个ASP源码下载链接:https://pan.baidu.com/s/1Mc-zWjUyk9Lx8TXv5cvZTg?pwds2qi 提取码&#x…

Office 365用户登录审核

黑客访问端点设备,以窃取公司特定数据、员工个人数据或任何其他可能对他们有任何用处的有价值的信息。 为了帮助您防止这种攻击,我们编写了一个参数列表,可以帮助您识别异常日志,这通常是攻击的第一个标志。异常登录活动是安全漏洞…

Vue使用ElementUI的确认框进行删除操作(包含前后端代码)

前言 今天做自己项目的时候,有一个删除的业务,正好遇到了确认框,在此纪念一下。 这里我是使用的ElementUI的确认框! 首先ElementUI的确认框是这么说明的: 从场景上说,MessageBox 的作用是美化系统自带的 …

Java程序员跳槽,三面全过,面试官:你这样的,我们招不起

程序员小李在沿海城市工作了8年,那里涨幅飞快的房价限制了程序员小李在一线城市安家的想法,再加上突然发生的疫情暴露了远在他乡工作的不便,在种种因素下,程序员小李决定回家工作。 既然已经下定决心告别一线城市回家乡发展&…

数据分析面试-sql练习

SQL汇总1. SQL执行顺序2. 开窗函数3. 经典SQL题3.0 数据准备3.1 ☆ 查询‘01’课程比‘02’课程成绩高的学生3.2 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩3.3 查询在SC表存在成绩的学生信息3.4 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总…

Github每日精选(第96期):微软的机器学习课程ML-For-Beginners

12 周,26 节课,52 道测验,适合所有人的经典机器学习。 添加链接描述 初学者机器学习 - 课程 Microsoft 的 Azure Cloud Advocates 很高兴提供为期 12 周、26 节课的全部关于机器学习的课程。在本课程中,您将了解有时称为经典机器…

【C++】面向对象:继承

🐱作者:傻响 🐱专栏:《C语法》 🔥格言:你只管努力,剩下的交给时间! 目录 C中的继承 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.3 继承关系和访问限定符 1.4 继承基类成…

ES6中扩展运算符的9种用法

1. 拷贝数组对象 const years [2018, 2019, 2020, 2021]; const copyYears [...years];console.log(copyYears); // [ 2018, 2019, 2020, 2021 ]扩展运算符拷贝数组,只有第一层是深拷贝,即对一维数组使用扩展运算符拷贝就属于深拷贝 2. 合并数组 先…