比亚迪真的有担当,985废物硕也给offer了

牛客上刷到一条帖子,挺有代表性的,楼主说自己是个 985 废物硕,秋招和春招都一败涂地,目前只有一个比亚迪的 offer,虽然网上有很多声音都在劝退比亚迪,但自己还是决定去了,不想毕业后出现空窗期。

c0f3733a1b6217f3650e2d06a20bd264.jpeg
截图来自牛客的房子着火我拍照

这一看就是 24 届的同学,如果是我,这个时候比亚迪出手把我捞走,我会跪下磕三十个响头(😂)。

确实没必要把自己架在火堆上烤了,尤其是马上毕业的 24 届同学,先拿 offer 再说,网上哪家公司没有负面信息!

帖子的评论区也有牛友留言说,“比亚迪真的有担当,简单粗暴,甚至没有笔试,而且面试只有一轮,希望今年秋招依然能加大力度,这样自己最起码有个保底 offer”。

讲真,我对比亚迪的招聘力度一直挺欣赏的,不像互联网大厂难度那么高,对技术不是特别有天赋的同学来说,友好太多。

今天我们就以《Java 面试指南》中收录的《比亚迪面经同学 2》 技术面为例,来看看比亚迪的面试官都喜欢问哪些问题,好做到知彼知己百战不殆。

d8f5d6872bbea6a70de7102527887982.png
让天下所有的面渣都能逆袭 😁

能看得出来,比亚迪的面试题相对很多互联网大厂来说还是非常友好的,简直不要太简单,都是一些非常基础的 Java 后端四大件的题目,难度不大。

比亚迪面经

说说final关键字的作用

①、当 final 修饰一个类时,表明这个类不能被继承。比如,String 类、Integer 类和其他包装类都是用 final 修饰的。

630f1dac0a6097cffcfe4ea87c59b9bd.png
二哥的 Java 进阶之路:final 修饰类

②、当 final 修饰一个方法时,表明这个方法不能被重写(Override)。也就是说,如果一个类继承了某个类,并且想要改变父类中被 final 修饰的方法的行为,是不被允许的。

③、当 final 修饰一个变量时,表明这个变量的值一旦被初始化就不能被修改。

如果是基本数据类型的变量,其数值一旦在初始化之后就不能更改;如果是引用类型的变量,在对其初始化之后就不能再让其指向另一个对象。

cb49950f28e9291bdebcdd0e4afc2e45.png
二哥的 Java 进阶之路:不能更改

但是引用指向的对象内容可以改变。

4d8286a909ade1690b7264e272f725f2.png
三分恶面渣逆袭:final修饰变量

基本数据类型有哪些

  • 数值型

    • 整数类型(byte、short、int、long)

    • 浮点类型(float、double)

  • 字符型(char)

  • 布尔型(boolean)

Java 基本数据类型的默认值和占用大小:

数据类型默认值大小
booleanfalse1字节或 4 字节
char'\u0000'2 字节
byte01 字节
short02 字节
int04 字节
long0L8 字节
float0.0f4 字节
double0.08 字节

说说String的常用方法

我自己常用的有:

  1. length() - 返回字符串的长度。

  2. charAt(int index) - 返回指定位置的字符。

  3. substring(int beginIndex, int endIndex) - 返回字符串的一个子串,从 beginIndexendIndex-1

  4. contains(CharSequence s) - 检查字符串是否包含指定的字符序列。

  5. equals(Object anotherObject) - 比较两个字符串的内容是否相等。

  6. indexOf(int ch)indexOf(String str) - 返回指定字符或字符串首次出现的位置。

  7. replace(char oldChar, char newChar)replace(CharSequence target, CharSequence replacement) - 替换字符串中的字符或字符序列。

  8. trim() - 去除字符串两端的空白字符。

  9. split(String regex) - 根据给定正则表达式的匹配拆分此字符串。

抽象类和普通类有什么区别

抽象类使用 abstract 关键字定义,不能被实例化,只能作为其他类的父类。普通类没有 abstract 关键字,可以直接实例化。

抽象类可以包含抽象方法和非抽象方法。抽象方法没有方法体,必须由子类实现。普通类智能包含非抽象方法。

说说 io 流

Java IO 流的划分可以根据多个维度进行,包括数据流的方向(输入或输出)、处理的数据单位(字节或字符)、流的功能以及流是否支持随机访问等。

按照数据流方向如何划分?
  • 输入流(Input Stream):从源(如文件、网络等)读取数据到程序。

  • 输出流(Output Stream):将数据从程序写出到目的地(如文件、网络、控制台等)。

按处理数据单位如何划分?
  • 字节流(Byte Streams):以字节为单位读写数据,主要用于处理二进制数据,如音频、图像文件等。

  • 字符流(Character Streams):以字符为单位读写数据,主要用于处理文本数据。

826988b08819e7a4e2a5db6d238d3a97.png
二哥的 Java 进阶之路
按功能如何划分?
  • 节点流(Node Streams):直接与数据源或目的地相连,如 FileInputStream、FileOutputStream。

  • 处理流(Processing Streams):对一个已存在的流进行包装,如缓冲流 BufferedInputStream、BufferedOutputStream。

  • 管道流(Piped Streams):用于线程之间的数据传输,如 PipedInputStream、PipedOutputStream。

说说 bio 和 nio 的区别

Java 提供了多种 IO 模型来处理输入和输出操作,包括传统的阻塞 IO、非阻塞 IO 和异步 IO。

fddef2c1e8f392c46f155694fca8f786.png
二哥的 Java 进阶之路:IO 分类

BIO(Blocking I/O):采用阻塞式 I/O 模型,线程在执行 I/O 操作时被阻塞,无法处理其他任务,适用于连接数较少的场景。

NIO(New I/O 或 Non-blocking I/O):采用非阻塞 I/O 模型,线程在等待 I/O 时可执行其他任务,通过 Selector 监控多个 Channel 上的事件,适用于连接数多但连接时间短的场景。

Java 的集合框架有哪些?

Java 集合框架可以分为两条大的支线:

①、Collection,主要由 List、Set、Queue 组成:

  • List 代表有序、可重复的集合,典型代表就是封装了动态数组的 ArrayList 和封装了链表的 LinkedList;

  • Set 代表无序、不可重复的集合,典型代表就是 HashSet 和 TreeSet;

  • Queue 代表队列,典型代表就是双端队列 ArrayDeque,以及优先级队列 PriorityQueue。

②、Map,代表键值对的集合,典型代表就是 HashMap。

6fa5bdc3b06c882225ee30cb26e4c94c.png
二哥的 Java 进阶之路:Java集合主要关系

HashMap 和 hashtable 的区别

在 Java 中,有 3 种线程安全的 Map 实现,最常用的是ConcurrentHashMap和Collections.synchronizedMap(Map)包装器。

Hashtable 也是线程安全的,但它的使用已经不再推荐使用,因为 ConcurrentHashMap 提供了更高的并发性和性能。

①、HashTable 是直接在方法上加 synchronized 关键字,比较粗暴。

be7daa0b9902e09f2310a39b38632fe8.png
二哥的 Java 进阶之路:HashTable

ArrayList 和 vector 的区别

Vector 属于 JDK 1.0 时期的遗留类,已不推荐使用,仍然保留着是因为 Java 希望向后兼容。

ArrayList 是在 JDK 1.2 时引入的,用于替代 Vector 作为主要的非同步动态数组实现。因为 Vector 所有的方法都使用 synchronized 关键字进行了同步,单线程环境下效率较低。

4a559003edd73e8dad8b26d14dd5f9b8.png
二哥的 Java 进阶之路:Vector源码

aop 在 Spring中的应用

AOP,也就是面向切面编程,是一种编程范式,旨在提高代码的模块化。比如说可以将日志记录、事务管理等分离出来,来提高代码的可重用性。

AOP 的核心概念包括切面(Aspect)、连接点(Join Point)、通知(Advice)、切点(Pointcut)和织入(Weaving)等。

① 像日志打印、事务管理等都可以抽离为切面,可以声明在类的方法上。

② 在 Spring AOP 中,连接点总是表示方法的执行。

③ Spring AOP 支持五种类型的通知:前置通知、后置通知、环绕通知、异常通知、最终通知等。

④ 在 AOP 中,切点用于指定我们想要在哪些连接点上执行通知的规则。

⑤ 织入是指将切面应用到目标对象并创建新的代理对象的过程。Spring AOP 默认在运行时通过动态代理方式实现织入。

@Transactional 注解,就是一个典型的 AOP 应用,它就是通过 AOP 来实现事务管理的。我们只需要在方法上添加 @Transactional 注解,Spring 就会在方法执行前后添加事务管理的逻辑。

Redis 的数据类型有哪些

Redis 有五种基本数据类型,这五种数据类型分别是:string(字符串)、hash(哈希)、list(列表)、set(集合)、sorted set(有序集合,也叫 zset)。

0a781551f83f8d59b8d6c33af8683dea.png
三分恶面渣逆袭:Redis基本数据类型

set 和 zset 的区别

集合是字符串的无序集合,集合中的元素是唯一的,不允许重复。和 Java 集合框架中的 Set 有相似之处。

集合主要有以下两个使用场景:

  • 标签(tag)

  • 共同关注

Zset,有序集合,比 set 多了一个排序属性 score(分值)。

9d640e8a7a1e347f1ef4c7794ee00e35.png
二哥的 Java 进阶之路

主要应用场景有:

  • 用户点赞统计

  • 用户排序

比如技术派实战项目中,我们就使用 Zset 来实现了用户月度活跃排行榜。

ef55ce462cc616e231e0d9e2a2c1f9ea.png
技术派用户活跃榜

内容来源

  • 星球嘉宾三分恶的面渣逆袭:https://javabetter.cn/sidebar/sanfene/nixi.html

  • 二哥的 Java 进阶之路(GitHub 已有 12000+star):https://javabetter.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值