java偏功能实现的面试题,教你如何做面霸_公司面试实现功能

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文


3. 介绍一下内部类(>4)



内部类包括:成员内部类,局部内部类,静态内部类,匿名内部类
使用内部类的原因:
1.可以实现多重继承。(不同的内部类可以继承不同的类)。
2.内部类可以更好的隐藏。
3.当我们不想写接口的实现或只是用一次对象时可以使用匿名内部类。(+)
4.每个内部类都是一个单独的个体。


4. 介绍一下什么时候使用== 什么时候使用equals(>4)



==:比较的是地址也就是栈。ps 或是一些常量放在方法区。
equals:比较的是值,也就是堆。一般都是封装类型。


5. 说说int和integer(>4)



int:基本类型,放于方法区,使用==可以比较。
integer:封装类型。使用equals比较,在对象传值时(非计算情况),一般建议使用integer,因为integer有
0与null可以表示不同含义


6. 说说常用的工具类(>5)



commons包,fastjson包等


7. 描述一下集合类 list map hash的区别(>5)



collection
collect为存储数据的集合类的顶级接口。所以不能实例化,只能实现collection,
长度可变,集合为引用类型
list和set是collection的实现类

list
list有序,可以重复,可以为空,实现类有ArrayList、LinkedList 和 Vector。
linklist以链表的方式存储增删更快,线程不安全,效率高。
arraylist以数组的方式存储,查询更快 ,效率高,线程不安全。
vector线程安全,效率低,增长率为100%,数据量较大的数据

set
不可以重复,无序,treeset,hashset,linkhashset为set的实现类。
hashset 数据结构是哈希表,按照hash值排序,不存在重复值,通过hashcode和equals判断。线程安全,存取
快。元素的哈希值是通过元素的hashcode方法 来获取的, HashSet首先判断两个元素的哈希值,如果哈希值一
样,接着会比较equals方法 如果 equls结果为true ,HashSet就视为同一个元素。如果equals 为false就不
是同一个元素。哈希值相同equals为false的元素是怎么存储呢,就是在同样的哈希值下顺延(可以认为哈希值相
同的元素放在一个哈希桶中)。也就是哈希一样的存一列。
treeset 可以自然排序。不可重复。
LinkedHashSet 会保存插入的顺序

map
map是map的接口的实现类,为键值对的,包括hashmap,treemap,hashtable,linkedtreetable
hashmap 且键唯一,键 值 可为空,线程不同步。
treeMap 可以对集合中的键进行排序
LinkedHashMap 保存了记录的插入顺序
hashtable key和value的值均不允许为null;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也
导致了Hashtale在写入时会比较慢。

线程安全问题
linklist arraylist hashset linkhashset线程不安全
vector hashtable为线程安全
stringbuild为线程不安全 stringbuffer为线程安全

ArrayXxx:底层数据结构是数组,查询快,增删慢
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序



> 
> 在小公司,回答上这些已经非常好了,
> 
> 
> 


8. integer使用什么比较数值(>7)



使用equals比较,但是-128-127之间 也可以使用==比较,因为直接使用了int (这个是重点考察哒)


9. 介绍一下bigdecimal(>7)



在金额数值计算时使用,避免精度丢失


10. 说说java内存模型(>8)



JVM就是java虚拟机,每一个JVM都包括堆,栈,本地方法栈、方法区,指令计数器及其他隐含寄存器。
堆:负责存储对象实例。
栈:存储基本类型和对象的引用。
方法区:存放着类的静态变量,常亮,类的信息等。
本地方法栈:与栈相类似,只不过存放的是方法。



> 
> 这个网上比较多,篇幅有限,请自行百度吧。
> 
> 
> 


11. 说说gc(>8)



如果内存空间满了改怎么办,JVM提供了GC-也就是垃圾回收机制。当内存溢出自动进行垃圾处理。一般都是堆发生垃
圾回收。而堆被分为了三部分分别是新生代 ,年老代,持久带,新生代又被分为Eden、Survivor1、Survivor2这
三块,当一个对象被新建后会被放入eden中较大的直接放入年老代中),当eden被存满后会发生minor GC,此时
eden会将内存中不用的空间清除并把剩余的数据放入Survivor1,当下一次eden被存满后,重复上次操作,eden
和Survivor1中数据会一起存放进Survivor2中,直到Survivor1或Survivor2存放满,这时会把存放满
的Survivor1或Survivor2数据存进年老代中,而当年老代被存满后会发生full gc此时会清理年老代的内存。



> 
> 这个网上比较多,篇幅有限,请自行百度吧。
> 
> 
> 


12. 说说java的反射,private的类或方法是否能反射到(>8)



private类型能够反射到


13. 通过了解内存模式和gc 说说自己的理解(>9)



集合类使用时要谨慎,防止内存泄漏,因为gc使系统短暂停止。
减少new次数,因为对多次占用堆内存
等 篇幅有限,请自行百度吧


14. 两个integer类型 值都是127 a=b 返回值,两个integer类型 值都是128 a=b 返回值 (>10)



127返回true
128返回false



> 
> java基础肯定是必不可少的问题,对于初中级开发,问的比较多,这是会伴随你职业生涯的技能,而且没有太难的知识点,需要大量准备。
> 
> 
> 


### 二.数据库


1. 简单的sql编写 如两表关联(>4k)



不多说


2. 左连接与右连接(>5k)



左连接 left join on 以左表数据为主
右连接 right join on 以右表数据为主


3. 为什么索引能提高查询速度(>7k)



因为不适用索引全表搜索,这样会产生多次读取磁盘的行为,是物理行为,所以比较慢。(io)
使用索引3次io即可实现查询,所以会提高速度。



> 
> 此处只提供简单概括,具体自行百度
> 
> 
> 


4. 什么情况会不走索引(>7k)



1.查询列为varchar类型 但是where后没有添加‘’(隐式转换)
2.<>、IN,NOT IN、exists,not exists等关键字
3.使用like时通配符在前(like在后索引不失效)
4.or会使索引失效(可以在每个or中都加入索引)
5.索引列进行函数计算
6.对索引进行运算会使索引失效


5. 是否了解rbac权限模型 介绍一下表(>7)



用户,角色,菜单,用户角色,角色菜单表


6. 描述一下怎么实现分页(>7)



limit语法


7. sql优化经验或者sql编写技巧(>9k)



可以参考适当的背一些,但是都不如掌握explain语法。建议掌握。


8. 描述mysql的两种搜索引擎(>9k)


![image.png](https://img-blog.csdnimg.cn/img_convert/ee3b189e929258c98620d2fbcdd53877.png)


9. 聚集索引与非聚集索引区别(>10)



如果想了解“聚集索引和非聚集索引”那么可以先看看B树和B+树
下面说说他们的区别
聚集索引:1.属于Innodb。
2.按照主键B+树的排列方式存放,子节点存放的就是数据。(如果没有主键,以第一列为聚集索引)
3.只有一个聚集索引。
4.普通索引指向聚集索引

非聚集索引:1.属于MyIsam。
2.普通索引和非聚集索引没什么区别。
3.存放的是地址。


10. 说一下mysql的事务隔离级别(>10)



未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据。
提交读(Read Committed):只能读取到已经提交的数据。
可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL
标准中,该隔离级别消除了不可重复读,但是还存在幻读。
串行化(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞,效率最低,可以避
免脏读,幻读,不可重复读。
这四种隔离等级从上向下依次变低


11. b tree与b+tree (>12k)



篇幅有限请自行百度



> 
> 同样,必备技能,但是小公司没有问的那么深,能熟练的书写sql语句,掌握常用语法就已经达标。在sql优化方面explain可以说是必杀技了,建议了解。
> 
> 
> 


### 三.设计模式


1. 说说了解哪些设计模式 (在我这,一般到这就结束了。。)(>5)



根据了解扩展


2. 详细描述一下工厂模式,代理模式。(>7)



概念:委托一个代理类对另一个类进行控制(代理类中有被代理类的对象,同时可以在代理类中增强)
使用场景:aop(可以控制被代理类是否被调用,是否被代理)。
优点: 1.确保被代理类的隐秘性
2.降低耦合性(不用挨个加需要增强的方法)
分静态代理,jdk代理,CGLib动态代理



> 
> 篇幅有限 具体的请自行了解
> 
> 
> 


3. 说说在日常编码中使用过哪些设计模式(>7)



代理模式,工厂模式,外观模式,策略模式。
请自行扩展。


4. 介绍一下外观模式(>8)



它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。(体现为service和dao,
一个service可以调用多个dao)


5. 代理模式,装饰者模式,适配器模式三者类图相同 说说三者区别 (>9)



适配器模式:主要强调适配,在不使用继承的情况下,可以调用其他不同的接口。
代理模式:主要强调控制,被代理的类不一定执行,可能不允许被代理。
装饰者模式:主要强调增强,目的是在原类中加入需要装饰。而被装饰者一般情况下都会被执行


6. 介绍策略模式和状态模式的区别(>10)



这个也比较常问,所以好好理解 建议仔细研究一下:https://www.zhihu.com/question/23693088



> 
> 设计模式在日常使用中使用的不多,但是也需要了解一些基础来扩宽以后的视野。现在阶段可以适当了解应付一下面试。
> 
> 
> 


### 四.mybatis


1. #{}与%{}区别(>5)



{}是预编译处理,${}是字符串替换。

Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值;
Mybatis 在处理 时,就是把 {}时,就是把 时,就是把{}替换成变量的值。
使用#{}可以有效的防止 SQL 注入,提高系统安全性


2. 说说sql注入(>5)



账号密码输入‘’ or 1=1
查询语句变成以下形式
SELECT * FROM Users WHERE username=‘’ or 1=1 AND password=‘’ or 1=1;


3. 说说常用标签(>5)



foreach,where,if,sql,set,include,sql,choose,curd不多说


4. mysql自增主键怎么返回(>6)



标签加入keyProperty=“id” useGeneratedKeys=“true”


5. 说说mybatis的一级缓存和二级缓存 (>7)



一级缓存是自动开启的。是sqlSession级别的缓存。个人理解就是同一个事务之内,调取两次相同sql.
二级缓存是mapper级别的,只要是对一个mapper调用就可以使用二级缓存。


6. mybatis的实现原理(>9)



一言难尽,请自行百度。



> 
> 必备技能,但是以上基础部分需要重点掌握。根据自己的薪资可以自行提升难度。
> 
> 
> 


### 五.分布式


1. 介绍一下分布式,说说对分布式的理解(>5)



分布式侧重将一个系统拆分成多个业务单元,例如一个门户网站里面可能有登录、视频、图片等,每一个都可以拆分出
来独立部署,而且每一个都可以弄成集群,视频服务集群,图片服务集群,主系统可以对这些子系统进行调用,子系统
之间可以有调用关系也可以没有,看实际业务情况。
网上很多,请自己总结


2. 分布式事务(>10)



tcc,seata等,篇幅原因请自行查看


3. 分布式锁(>10)



Redission等,篇幅原因请自行查看



> 
> 分布式事务分布式锁等小公司使用并不多,初级,中级了解即可,如果想拿到一个更高的薪资(装b)建议掌握。
> 
> 
> 


### 六.spring全家桶(吃饭的家伙)


#### 6.1 spring


1. 介绍一下spring的理解(>5)



提供了ioc,aop,用于解耦。


2. spring的依赖注入和控制反转是什么意思(>5)



依赖注入与控制反转是一回事
依赖注入:被注入对象依赖IoC容器配置依赖对象。
控制反转:bean的控制交于工厂。


3. 和new()相比,spring有什么优点(>6)



1.bean交于容器统一管理
2.节省堆内存


4. ioc与aop的实现原理(>7)



ioc工厂模式
aop代理模式
涉及源码,篇幅有限 请自行百度


5. 说一下自己了解spring注入失败的原因(>6)



1.bean重名
2.bean起名为set或get(其他关键字可能也会有问题)
3.循环依赖


6. 能介绍一下spring的循环依赖吗 (>10)



循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A


7. 说一下spring的事务传播级别(>10)



PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY–支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW–新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED–以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER–以非事务方式执行,如果当前存在事务,则抛出异常。


8. bean的初始化流程 (>10)



涉及源码,篇幅有限 请自行百度。


#### 6.2 spring cloud


1. 是否使用过微服务,说说对微服务的理解 (>5)



1.按照业务拆分服务,方便于管理开发。
2.更加方便集群化建设。
3.更加容易容器化建设。


2. 在项目中使用过哪些微服务组件(>6)(根据不同微服务生态)



Netflix和爸爸版生态 需要了解一个


3. 说说微服务生态的各组件的选型(>7)



建议选型爸爸版
注册与配置:nacos
服务间调用:dubbo/openfeign
网关:getway
监控:sentinel
优点
1.还在持续开源,未来或许还有其他功能
2.nacos比eureka更加强大,有命名空间,组等功能呢。
3.性能更加优越。
4.中文文档齐全。


4. 说说对网关的理解(>7)



在没有API网关作为统一出口的情况下,需要调用方自己组合各种服务,而且容易让调用方感知后端各种服务的存在,
加入网关后,客户端调用服务需要通过网关来进行,并且网关可以处理路由,安全,限流,缓存,日志,监控,重试,
熔断等事务,使业务开发更纯净。


5. 说说对熔断的理解(>7)



由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻
塞,此时若有大量的请求涌入,Servlet 容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故
障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的 “雪崩” 效应。为了解决这个问题,业界提
出了 熔断器模型。


6. 在微服务体系中 服务的注册和暴露的过程 (>8)



服务向注册中心发送请求,注册中心获取到服务信息后,保存在本地,当需要服务间需要调用时,服务会拉取注册中心
的服务列表,获取被调用服务信息,执行调用。
并且有着心跳的概念,及在固定时间内服务向注册中心发送请求,表明自己还活着。


7. 服务间调用如果响应时间过慢造成无响应怎么办(>9)



可以加大调用允许保持连接的时间,但是如果是响应过慢,对用户体验特别差,所以不建议。所以需要以下
1.排查被调用服务器是否有优化余地,如sql等。
2.如果是少部分请求,加入熔断,提升用户体验,
3.如果允许可以使用异步或者mq。以异步的方式获取数据。


#### spring mvc(如果简历写过)


1. spring mvc的原理 (>7)



(1)客户端(浏览器)发送请求,直接请求到DispatcherServlet。
(2)DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。
(3)解析到对应的Handler后,开始由HandlerAdapter适配器处理。
(4)HandlerAdapter会根据Handler来调用真正的处理器开处理请求,并处理相应的业务逻辑。
(5)处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。
(6)ViewResolver会根据逻辑View查找实际的View。
(7)DispaterServlet把返回的Model传给View。
(8)通过View返回给请求者(浏览器)
详细答案请自行百度


2. 介绍一下dispatchservlet (>8)



  1. 请求会首先发送到DispatchServlet,这是spring的前置Servlet,它会接收请求并转发给spring的MVC
    controller,也就是业务controller
  2. DispatchServlet通过HandlerMapping(处理器映射)确定将请求转发给哪个controller,HandlerMapping主
    要通过请求中的URL确定映射关系的
  3. DispatchServlet将请求转发给确定的controller之后,DispatchServlet卸下请求的负载,controller负责处
    理这个请求,一般会通过调用service层进行业务逻辑处理
  4. 当controller处理完请求后,它会把业务处理结果封装成model,为了使处理结果的model在页面上更好的展示,
    controller还会指定展示model对应的view(比如一个JSP页面),当controller确定了model和view之后,会把它们
    以请求的形式再转发给DispatchServlet
  5. DispatchServlet通过查询ViewResolver(视图解析器)找到view对应的页面
  6. DispatchServlet最终把model交给页面进行渲染
  7. 页面对model进行渲染,将结果展示到客户端,整个请求结束

3. 说说对上下文的理解(>8)



context就是“容器”,放的就是应用程序的所有资源,要用时候就访问它,所以context里面的东西,在同一个应用程
序里面是全局的;web上下文可以看成web应用的运行环境,一般用context名字来修饰,里面保存了web应用相关的一
些设置和全局变量


4. 说说与spring boot的区别(>10)



spring mvc需要大量xml配置,spring boot遵守着约定大于配置,springboot具体实现可以参考下文


#### 6.3 spring boot


1. 介绍一下编写接口的注解(>5)



@RestController,@RequestMapping,@RequestParam,@Service,@RequestBody,@requestmapping等


2. 介绍一下spring boot事务(>5)



一个接口内,数据全部处理完成或者处理失败,防止一部分失败一部分成功。
使用@Transactional(rollbackFor = Exception.class)


3. 描述一下restful风格(>7)



一种软件架构风格、设计风格,增删改查接口全部使用一个命名,使用请求类型来(get,post,put,delete)确定调
用的那个接口。


4. springboot的启动原理(>8)



1.运行 SpringApplication.run()方法
2.SpringApplicationRunListeners listeners = this.getRunListeners(args);获取监听器
3.listeners.starting()触发applicationStartedEvent 启动监听器
4.准备好环境environment 触发applicationEnvironmentPrepareEvent
5.创建一个spring上下文createApplicationContext()
6.初始化上下文
1):获取要启动类包的地址
2):转为BeanDefinitionRegistry
3):通过注解扫描出bean
4):调用BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder,
this.registry);将启动类BeanDefinition注册到IoC容器的beanDefinitionMap中
7.刷新上下文refreshContext(注入各种需要的bean 以下是bean的生命周期 !!关键)
//设置BeanFactory的后置处理. 空方法,留给子类拓展用。
(1)postProcessBeanFactory(beanFactory);
//调用BeanFactory的后处理器, 这些后处理器是在Bean定义中向容器注册的.
(2)invokeBeanFactoryPostProcessors(beanFactory);
(3)实现自动化配置
//注册Bean的后处理器, 在Bean创建过程中调用.
(4)registerBeanPostProcessors(beanFactory);
//初始化上下文中的消息源,即不同语言的消息体进行国际化处理
(5)initMessageSource();
//初始化ApplicationEventMulticaster bean,应用事件广播器
(6)initApplicationEventMulticaster();
//初始化其它特殊的Bean, 空方法,留给子类拓展用。
(7)onRefresh();
//检查并向容器注册监听器Bean
(8)registerListeners();
//实例化所有剩余的(non-lazy-init) 单例Bean.
(9)finishBeanFactoryInitialization(beanFactory);
//发布容器事件, 结束refresh过程.
(10)finishRefresh();
7.ApplicationRunner和CommandLineRunner启动


5. spring boot是怎么实现约定大于配置的(>8)



涉及源码,请自行百度。


6. 描述一下spring boot中的异步(>8)



@EnableAsync使异步调用@Async注解生效
调用后立即返回固定对象,释放线程,程序在后台执行。前台无感知。


7. 描述一下跨域是如何处理(>8)



添加cors配置。指定后台地址允许访问。


8. 介绍一下自定义注解(>9)



1.基于aop
2.拦截器
3.ConstraintValidator注解实现验证


9. 介绍一下@resource和@Autowired区别(>9)



@Autowired注解由Spring提供,只按照byType注入;@resource注解由J2EE提供,默认按照byName自动注入2、
@Autowired默认按类型进行装配,@Resource默认按照名称进行装配。”



> 
> 对于小公司,技能要求真心不多,数据结构算法,完全用不上,那么最重要的还是springboot的使用,如果你能熟练的书写接口,熟练掌握ssh,那么找个一个理想的工作是不难的。所以,springboot接口编写一定要6。
> 
> 
> 


## 一线互联网大厂Java核心面试题库

![image](https://img-blog.csdnimg.cn/img_convert/c7c21b68c34f68481722b0cc5df2e39a.webp?x-oss-process=image/format,png)

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)**
![img](https://img-blog.csdnimg.cn/img_convert/23239f2a735167f918b65db4520d9242.jpeg)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
跨域是如何处理(>8)



添加cors配置。指定后台地址允许访问。


8. 介绍一下自定义注解(>9)



1.基于aop
2.拦截器
3.ConstraintValidator注解实现验证


9. 介绍一下@resource和@Autowired区别(>9)



@Autowired注解由Spring提供,只按照byType注入;@resource注解由J2EE提供,默认按照byName自动注入2、
@Autowired默认按类型进行装配,@Resource默认按照名称进行装配。”



> 
> 对于小公司,技能要求真心不多,数据结构算法,完全用不上,那么最重要的还是springboot的使用,如果你能熟练的书写接口,熟练掌握ssh,那么找个一个理想的工作是不难的。所以,springboot接口编写一定要6。
> 
> 
> 


## 一线互联网大厂Java核心面试题库

[外链图片转存中...(img-LkbZ6L5M-1713410425126)]

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)**
[外链图片转存中...(img-WniWUOo2-1713410425127)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值