如果当时这20道题能答好,现在应该已经被录取了(记一次面试的亲身经历 2024-8-27)

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

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

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

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

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

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

正文

一般来说索引应该建在常用于join、where、order by的字段上。尽量不要对数据库中含有大量重复的值得字段建立索引。

8、优化的查询语句

在索引的字段上尽量不要使用函数进行操作。

尽量不要使用like关键字和通配符,这样做法很简单,但却是以牺牲性能为代价的。

避免在查询中进行自动类型转换,因为类型转换也会使索引失效。

三、项目中会有生产环境、测试环境等,问配置文件中该怎么配置


四、怎么的处理service的事务传播


Spring事务传播机制详解

五、说一下事务的隔离级别


数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。

六、Object常用方法


getClass、equals、hashcode、clone、wait、notify、notifyAll、

七、在线人员统计


通过监听session对象的方式来实现在线人数的统计和在线人信息展示,并且让超时的自动销毁。

对session对象实现监听,首先必须继承HttpSessionListener类,该程序的基本原理就是当浏览器访问页面的时候必定会产生一个session对象,当关闭该页面的时候必然会删除session对象。所以每当产生一个新的session对象就让在线人数+1,当删除一个session对象就让在线人数-1。

还要继承一个HttpSessionAttributeListener,来实现对其属性的监听。分别实现attributeAdded方法,attributeReplace方法以及attributeRemove方法。

sessionCreated//新建一个会话的时候触发,也可以说是客户端第一次喝服务器交互时触发。

sessionDestroyed//销毁会话的时候,一般来说只有某个按钮触发进行销毁,或者配置定时销毁。

HttpSessionAttributeListener有三个方法需要实现

  • attributeAdded//在session中添加对象时触发此操作 笼统的说就是调用setAttribute这个方法时候会触发的

  • attributeRemoved//修改、删除session中添加对象时触发此操作  笼统的说就是调用 removeAttribute这个方法时候会触发的

  • attributeReplaced//在Session属性被重新设置时

八、单点登录


  1. cookie方式,线程不安全、不跨域

  2. jsonp方式,线程安全,不跨域

  3. 重定向方式,线程安全,跨域,较繁琐

九、项目时如何发布的


  1. IDEA打包成jar包

  2. cmd命令打包成jar包

  3. 通过java -jar target/service_edu.jar命令启动springboot启动类。

【Spring Boot 21】Spring Boot 项目如何部署

十、Redis有哪些应用


  1. 用于缓存

  2. 高速读写场合,如秒杀,抢红包等高并发场景

十一、SpringMVC和SpringBoot的区别


  1. SpringMVC和SpringBoot都是Spring的衍生产品;

  2. Spring MVC是基于servlet的一个MVC框架,主要应用于web开发。

  3. Spring Boot解决的是Spring配置繁琐的问题,为简化开发而生;

十二、Spring IOC和AOP


IOC可以称为控制反转或依赖注入,通过引入IOC容器,利用依赖注入的方式,实现对象之间的解耦。

AOP是面向切面编程,在不改变原有逻辑的基础上,增加一些额外功能。

AOP适用于解决日志、事务、权限方面的问题,这种散布在各处的无关的代码称为横切,在OOP的设计中,它导致了大量代码的重复,而不利于各个模块的重用。

AOP是面向切面编程,将影响多个类的共同行为封装到一个可重用的模块,并将其命名为“Aspect”,即切面。

关于切面是将那些与业务无关,却被业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

十三、beanFactory和factoryBean的区别


beanFactory是Spring关于容器的父接口,用来管理bean的接口,管理bean的注入和销毁;

factoryBean是Spring用来对beanFactory中的bean进行修饰的类,相当于装饰器模式;

十四、springboot项目中分为哪几个模块


  1. 公共方法模块

  2. 人员基本信息系统

  3. 安全监控模块

  4. 应急广播模块

  5. gis地图模块

  6. 视频监控模块

  7. 统计模块

十五、JSP取值的方式


  1. 通过表单提交,前台往后台传值,在后台使用set,get方法,可以直接获取。如果通过request.getParameter(paramName)去获取前台传过来的请求参数值。有name属性的表单才会生成请求参数,如果某个表单设置了disable=“disabled”,则该表单不会生成请求参数。

  2. EL表达式${param}

  3. jsp输出表达式 :

① 参数:<%=request.getParameter(paramName)%>

② 属性值:<%=request.getAttribute(“attributeName”)%>

十六、分页sql


无排序的版本:

SELECT * FROM (SELECT rownum AS rowno,w.* FROM ct_worker w WHERE rownum <=20) worker WHERE worker.rowno>10

有排序的版本:

SELECT * FROM (SELECT rownum AS rowno,w.* FROM (SELECT ctw.* FROM CT_WORKER ctw ORDER BY capid desc) w WHERE rownum <=20) worker WHERE worker.rowno>10

十七、分组sql


where使用在group by之前,where子句不能有分组函数;

group by 进行分组,having进行分组之后的过滤,having中可以使用聚合函数;

select t1.name 学生姓名,

sum(t2.score) 总分,

avg(t2.score) 平均分,

max(t2.score) 最高分,

min(t2.score) 最低分

from t_student t1, t_score t2

where t1.studentid = t2.studentid

group by t1.name having sum(t2.score)>250;

十八、索引怎么定义,分哪几种


  1. b-tree索引,如果不建立索引的情况下,oracle就自动给每一列都加一个B 树索引;

  2. normal:普通索引

  3. unique:唯一索引

  4. bitmap:位图索引,位图索引特定于只有几个枚举值的情况,比如性别字段;

  5. 基于函数的索引

十九、Java多线程


1、线程的实现方式

(1)继承Thread类;

(2)实现Runnable接口;

该方式的优点:

可以避免由于java单继承带来的局限性,适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码、数据有效分离,较好的体现了面向对象的设计思想。

2、线程生命周期

创建、就绪、运行、阻塞、死亡

3、线程控制

线程休眠sleep、线程加入join、线程礼让yield

二十、easyExcel如何实现


异步读取

新建一个  ExcelModelListener 监听类出来,并且 继承 AnalysisEventListener 类

package com.zh.oukele.listener;

import com.alibaba.excel.context.AnalysisContext;

读者福利

由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

更多笔记分享

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

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

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

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

[外链图片转存中…(img-rUJpRcMv-1713117880217)]

[外链图片转存中…(img-5TnrTl2K-1713117880217)]

更多笔记分享

[外链图片转存中…(img-nIBvnjn6-1713117880217)]

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

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

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

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值