《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
#mermaid-svg-MgRdHnLuV07cc9sF .label{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);fill:#333;color:#333}#mermaid-svg-MgRdHnLuV07cc9sF .label text{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .node rect,#mermaid-svg-MgRdHnLuV07cc9sF .node circle,#mermaid-svg-MgRdHnLuV07cc9sF .node ellipse,#mermaid-svg-MgRdHnLuV07cc9sF .node polygon,#mermaid-svg-MgRdHnLuV07cc9sF .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-MgRdHnLuV07cc9sF .node .label{text-align:center;fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .node.clickable{cursor:pointer}#mermaid-svg-MgRdHnLuV07cc9sF .arrowheadPath{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-MgRdHnLuV07cc9sF .flowchart-link{stroke:#333;fill:none}#mermaid-svg-MgRdHnLuV07cc9sF .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-MgRdHnLuV07cc9sF .edgeLabel rect{opacity:0.9}#mermaid-svg-MgRdHnLuV07cc9sF .edgeLabel span{color:#333}#mermaid-svg-MgRdHnLuV07cc9sF .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-MgRdHnLuV07cc9sF .cluster text{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-MgRdHnLuV07cc9sF .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-MgRdHnLuV07cc9sF text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-MgRdHnLuV07cc9sF .actor-line{stroke:grey}#mermaid-svg-MgRdHnLuV07cc9sF .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-MgRdHnLuV07cc9sF .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-MgRdHnLuV07cc9sF #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-MgRdHnLuV07cc9sF .sequenceNumber{fill:#fff}#mermaid-svg-MgRdHnLuV07cc9sF #sequencenumber{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF #crosshead path{fill:#333;stroke:#333}#mermaid-svg-MgRdHnLuV07cc9sF .messageText{fill:#333;stroke:#333}#mermaid-svg-MgRdHnLuV07cc9sF .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-MgRdHnLuV07cc9sF .labelText,#mermaid-svg-MgRdHnLuV07cc9sF .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-MgRdHnLuV07cc9sF .loopText,#mermaid-svg-MgRdHnLuV07cc9sF .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-MgRdHnLuV07cc9sF .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-MgRdHnLuV07cc9sF .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-MgRdHnLuV07cc9sF .noteText,#mermaid-svg-MgRdHnLuV07cc9sF .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-MgRdHnLuV07cc9sF .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-MgRdHnLuV07cc9sF .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-MgRdHnLuV07cc9sF .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-MgRdHnLuV07cc9sF .mermaid-main-font{font-family:“trebuchet ms”, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .section{stroke:none;opacity:0.2}#mermaid-svg-MgRdHnLuV07cc9sF .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-MgRdHnLuV07cc9sF .section2{fill:#fff400}#mermaid-svg-MgRdHnLuV07cc9sF .section1,#mermaid-svg-MgRdHnLuV07cc9sF .section3{fill:#fff;opacity:0.2}#mermaid-svg-MgRdHnLuV07cc9sF .sectionTitle0{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .sectionTitle1{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .sectionTitle2{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .sectionTitle3{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-MgRdHnLuV07cc9sF .grid .tick text{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .grid path{stroke-width:0}#mermaid-svg-MgRdHnLuV07cc9sF .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-MgRdHnLuV07cc9sF .task{stroke-width:2}#mermaid-svg-MgRdHnLuV07cc9sF .taskText{text-anchor:middle;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .taskText:not([font-size]){font-size:11px}#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-MgRdHnLuV07cc9sF .task.clickable{cursor:pointer}#mermaid-svg-MgRdHnLuV07cc9sF .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-MgRdHnLuV07cc9sF .taskText0,#mermaid-svg-MgRdHnLuV07cc9sF .taskText1,#mermaid-svg-MgRdHnLuV07cc9sF .taskText2,#mermaid-svg-MgRdHnLuV07cc9sF .taskText3{fill:#fff}#mermaid-svg-MgRdHnLuV07cc9sF .task0,#mermaid-svg-MgRdHnLuV07cc9sF .task1,#mermaid-svg-MgRdHnLuV07cc9sF .task2,#mermaid-svg-MgRdHnLuV07cc9sF .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutside0,#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutside2{fill:#000}#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutside1,#mermaid-svg-MgRdHnLuV07cc9sF .taskTextOutside3{fill:#000}#mermaid-svg-MgRdHnLuV07cc9sF .active0,#mermaid-svg-MgRdHnLuV07cc9sF .active1,#mermaid-svg-MgRdHnLuV07cc9sF .active2,#mermaid-svg-MgRdHnLuV07cc9sF .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-MgRdHnLuV07cc9sF .activeText0,#mermaid-svg-MgRdHnLuV07cc9sF .activeText1,#mermaid-svg-MgRdHnLuV07cc9sF .activeText2,#mermaid-svg-MgRdHnLuV07cc9sF .activeText3{fill:#000 !important}#mermaid-svg-MgRdHnLuV07cc9sF .done0,#mermaid-svg-MgRdHnLuV07cc9sF .done1,#mermaid-svg-MgRdHnLuV07cc9sF .done2,#mermaid-svg-MgRdHnLuV07cc9sF .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-MgRdHnLuV07cc9sF .doneText0,#mermaid-svg-MgRdHnLuV07cc9sF .doneText1,#mermaid-svg-MgRdHnLuV07cc9sF .doneText2,#mermaid-svg-MgRdHnLuV07cc9sF .doneText3{fill:#000 !important}#mermaid-svg-MgRdHnLuV07cc9sF .crit0,#mermaid-svg-MgRdHnLuV07cc9sF .crit1,#mermaid-svg-MgRdHnLuV07cc9sF .crit2,#mermaid-svg-MgRdHnLuV07cc9sF .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-MgRdHnLuV07cc9sF .activeCrit0,#mermaid-svg-MgRdHnLuV07cc9sF .activeCrit1,#mermaid-svg-MgRdHnLuV07cc9sF .activeCrit2,#mermaid-svg-MgRdHnLuV07cc9sF .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-MgRdHnLuV07cc9sF .doneCrit0,#mermaid-svg-MgRdHnLuV07cc9sF .doneCrit1,#mermaid-svg-MgRdHnLuV07cc9sF .doneCrit2,#mermaid-svg-MgRdHnLuV07cc9sF .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-MgRdHnLuV07cc9sF .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-MgRdHnLuV07cc9sF .milestoneText{font-style:italic}#mermaid-svg-MgRdHnLuV07cc9sF .doneCritText0,#mermaid-svg-MgRdHnLuV07cc9sF .doneCritText1,#mermaid-svg-MgRdHnLuV07cc9sF .doneCritText2,#mermaid-svg-MgRdHnLuV07cc9sF .doneCritText3{fill:#000 !important}#mermaid-svg-MgRdHnLuV07cc9sF .activeCritText0,#mermaid-svg-MgRdHnLuV07cc9sF .activeCritText1,#mermaid-svg-MgRdHnLuV07cc9sF .activeCritText2,#mermaid-svg-MgRdHnLuV07cc9sF .activeCritText3{fill:#000 !important}#mermaid-svg-MgRdHnLuV07cc9sF .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF g.classGroup text{fill:#9370db;stroke:none;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:10px}#mermaid-svg-MgRdHnLuV07cc9sF g.classGroup text .title{font-weight:bolder}#mermaid-svg-MgRdHnLuV07cc9sF g.clickable{cursor:pointer}#mermaid-svg-MgRdHnLuV07cc9sF g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-MgRdHnLuV07cc9sF g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-MgRdHnLuV07cc9sF .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-MgRdHnLuV07cc9sF .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-MgRdHnLuV07cc9sF .dashed-line{stroke-dasharray:3}#mermaid-svg-MgRdHnLuV07cc9sF #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF .commit-id,#mermaid-svg-MgRdHnLuV07cc9sF .commit-msg,#mermaid-svg-MgRdHnLuV07cc9sF .branch-label{fill:lightgrey;color:lightgrey;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .slice{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-MgRdHnLuV07cc9sF g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-MgRdHnLuV07cc9sF g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-MgRdHnLuV07cc9sF g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-MgRdHnLuV07cc9sF .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-MgRdHnLuV07cc9sF .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-MgRdHnLuV07cc9sF .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-MgRdHnLuV07cc9sF .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-MgRdHnLuV07cc9sF .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-MgRdHnLuV07cc9sF .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-MgRdHnLuV07cc9sF .edgeLabel text{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-MgRdHnLuV07cc9sF .node circle.state-start{fill:black;stroke:black}#mermaid-svg-MgRdHnLuV07cc9sF .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-MgRdHnLuV07cc9sF #statediagram-barbEnd{fill:#9370db}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-state .divider{stroke:#9370db}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-MgRdHnLuV07cc9sF .note-edge{stroke-dasharray:5}#mermaid-svg-MgRdHnLuV07cc9sF .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{–mermaid-font-family: ‘“trebuchet ms”, verdana, arial’;–mermaid-font-family: “Comic Sans MS”, “Comic Sans”, cursive}#mermaid-svg-MgRdHnLuV07cc9sF .error-icon{fill:#522}#mermaid-svg-MgRdHnLuV07cc9sF .error-text{fill:#522;stroke:#522}#mermaid-svg-MgRdHnLuV07cc9sF .edge-thickness-normal{stroke-width:2px}#mermaid-svg-MgRdHnLuV07cc9sF .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-MgRdHnLuV07cc9sF .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-MgRdHnLuV07cc9sF .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-MgRdHnLuV07cc9sF .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-MgRdHnLuV07cc9sF .marker{fill:#333}#mermaid-svg-MgRdHnLuV07cc9sF .marker.cross{stroke:#333} :root { --mermaid-font-family: “trebuchet ms”, verdana, arial;} #mermaid-svg-MgRdHnLuV07cc9sF { color: rgba(0, 0, 0, 0.75); font: ; }
直接发送
SQL
一次数据库访问
SqlSessionFactoryBuilder
SqlSessionFactory
SqlSession
db
SqlMapper
-
SqlSessionFactoryBuilder 读取配置信息创建SQLSessionFactory,建造者模式,方法级生命周期,这个东西就是为了创造SqlSessionFactory的,所以一般放在方法内部,用完即销毁
-
SQLSessionFactory 用来创建SqlSession的,工厂单例模式(本身是单例的,用来创建SqlSession的时候体现了工厂模式),存在于程序的整个生命周期
-
SqlSession 代表一次数据库连接,一般通过调用Mapper访问数据库(其实底层也是发送SQL到数据库),也可以直接发送SQL到数据库上,非线程安全,要保证线程独享(方法级)
-
SQLMapper 由一个Java接口和XML文件组成,包含了要执行的SQL语句和结果集的映射规则。方法级生命周期
#{} 与 ${}
-
#{} 是预解析,SQL中会被解析为?,最后通过传参处理,这种参数不会有有SQL注入的问题
-
${} 是字符串拼接,一般用于动态SQL,比如动态表名、动态列名、动态排序等,但是这种参数容易出现SQL注入的问题,一定要使用拦截器做好合法性校验
BatchExecutor与foreach+value
-
BatchExecutor是批量执行SQL,但是SQL还是会一条一条的发送到数据库上,最后在数据库上批量执行。(BatchExecutor是通过SqlSession获取来的,应该说所有的Executor都是通过SqlSession获取来的)
-
foreach是动态拼接SQL,最后拼接了一个大SQL,一次性发送给数据库,相比BatchExecutor,foreach因为只有一条SQL,所以节约了网络IO,效率更高。但是也需要注意,不要因为循环过多而导致SQL过大,超过数据库SQL长度限制的SQL执行也是会报错的,建议分批执行,比如500个一批。但是,并不是所有的数据库都支持这种insert方式……
文末
我将这三次阿里面试的题目全部分专题整理出来,并附带上详细的答案解析,生成了一份PDF文档
- 第一个要分享给大家的就是算法和数据结构
- 第二个就是数据库的高频知识点与性能优化
- 第三个则是并发编程(72个知识点学习)
- 最后一个是各大JAVA架构专题的面试点+解析+我的一些学习的书籍资料
还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶等学习笔记这里就不一一列举出来
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!