- 博客(34)
- 收藏
- 关注
原创 Spring面试
(1条消息) Spring常见面试题总结(超详细回答)_张维鹏的博客-优快云博客_spring面试题IOC控制反转:控制是指将所有的类都托管给Spring创建和管理反转是指通过依赖注入的方式,给对象的属性赋值,包括基本属性和引用属性AOP面向切面编程:本质是动态代理模式(类似于装饰者模式)通过横切的方式在原有的业务代码之上添加公共功能,而不改变原有业务代码扩展:代理模式和装饰者模式代理模式:代理模式包含代理对象,被代理对象静态代理:代理对象Proxy和被代理对象Re
2021-09-17 09:04:34
262
原创 SpringMVC完整笔记(什么是SpringMVC执行原理、HelloSpringMVC执行过程(+RestFul风格+结果跳转+数据处理)、SSM整合、JSON+AJAX、拦截器)
SpringMVCssm:Mybatis+Spring+SpringMVCSpringMVC+Vue+SpringBoot+SpringCloud+LinuxSSM:JavaWeb做项目Spring:IOC+AOPSpringMVC:SpringMVC的执行流程(理论,面试要点)SpringMVC:SSM框架整合(实践)1 回顾MVC1.1 回顾MVCMVC:模型(dao,service) 视图(jsp)控制器(Servlet)dao层:连接数据库service层:调用dao层,执行一
2021-09-09 12:55:44
1985
原创 力扣新刷题
☆25 K个一组翻转链表(找到待翻转链表的前面一个节点,后面一个节点,第一个节点,最后一个节点+链表尾指针置空链表翻转再连接;当待翻转链表长度小于k时直接返回) /*1.找到待翻转链表的前面一个节点,后面一个节点,第一个节点,最后一个节点待翻转链表需要先断开,再翻转,再连接;2.当待翻转链表长度小于k时,直接返回 */class Solution { public ListNode reverseKGroup(ListNode head, int k) { ListNod
2021-09-07 01:12:24
172
原创 SpringMVC笔记
SpringMVCssm:Mybatis+Spring+SpringMVCSpringMVC+Vue+SpringBoot+SpringCloud+LinuxSSM:JavaWeb做项目Spring:IOC+AOPSpringMVC:SpringMVC的执行流程(理论,面试要点)SpringMVC:SSM框架整合(实践)1 回顾MVC1.1 回顾MVCMVC:模型(dao,service) 视图(jsp)控制器(Servlet)dao层:连接数据库service层:调用dao层,执行一
2021-09-06 21:54:36
334
原创 Redis和消息队列
Redis一、Redis数据类型、Redis数据结构、Redis使用场景Redis数据类型键的类型只能是字符串值支持5种数据类型:字符串String,可以存储字符串、整数、浮点数列表list集合set散列表hash,包含键值对的无序散列表有序集合zsetRedis具体数据结构字典:是集合的一种,集合中每个元素都是key-value键值对跳跃表:是有序集合的底层实现之一,是基于多指针有序链表实现的,可以看成多个有序链表。对于一个单链表来说,即使
2021-09-02 17:04:48
4196
原创 面试遇到的问题
面试重难点面试知识盲点AVL平衡树和红黑树AVL平衡树:是一棵严格自平衡二叉查找树,平衡因子只可能是-1,0,1;左右子树的高度差的绝对值不超过1,并且左右子树都是一棵平衡二叉树在AVL树中插入和删除节点,只要不满足上述条件就要通过旋转来保持平衡,而旋转是非常耗时的;AVL树适用于插入和删除较少,查找多的情况红黑树:也是一棵平衡查找树,但是每个节点由一个存储位表示红色或黑色。通过对任何一条“从根到空节点路径上“各个节点的颜色的约束,红黑树可以确保没有一条路径会比其他路径长出两
2021-08-26 00:41:33
140
原创 MySQL索引详解(索引的本质 B树B+树、MyISAM和InnoDB索引实现 非聚集索引和聚集索引、索引使用策略及优化)
MySQL索引详解参考文章:MySQL索引背后的数据结构及算法原理摘要MySQL支持多种数据引擎,各种数据引擎对索引的支持各不相同;因此MySQL数据库支持多种索引类型,如B+树索引、哈希索引、全文索引等。本文只讨论B+树索引文章分为三个部分:索引的本质(B树和B+树)结合MySQL数据库中的MyISAM和InnoDB存储引擎的架构实现,讨论聚簇索引、非聚簇索引、覆盖索引讨论MySQL中高性能使用索引的策略一、索引的本质、B树与B+树(一)索引的本质概念索引是“帮助
2021-08-24 01:48:43
591
原创 7天算法刷题
算法刷题《hot100》第①天☆215 数组中的第K个最大元素(堆排序思想,快速排序双指针思想)√(注意掌握堆排序)/**【重要】堆排序1.前k个元素实现小根堆,2.后面元素与堆顶元素比较,,当大于堆顶元素,替换堆顶元素重新建堆最后堆顶元素就是第k大的元素堆排序从最后一个分支节点开始手动向下调整 */class Solution { public int findKthLargest(int[] nums, int k) { //初始建立大小为k的小根堆
2021-08-15 09:14:33
618
原创 面经基础知识
计算机网络 操作系统linux常用命令用户命令:who、su、sudo、pwd、cd、ls、cat、mancp、mv、rm、mkdir创建文件 echo、touch、cat、vimchmodfind命令 find . -name “file1”grep命令 grep -nE “k” file1head、tail、historytar打包和压缩scp命令进程和线程1.进程和线程的区别资源:进程是资源分配的基本单位,线程不独立拥有资源,但可以访
2021-08-12 23:39:08
401
原创 python网络爬虫与信息提取
python网络爬虫与信息提取学习视频链接:https://www.icourse163.org/learn/BIT-1001870001?tid=1464881473#/learn/announce知识点:工具:一、网络爬虫之规则1.requests库入门安装requests库request库的7个主要方法requests.request() 构造一个请求,支撑以下各方法的基础方法requests.get() 获取html网页的主要方法requests.post() 向网页提交
2021-07-27 01:52:45
3249
原创 Python开发简单爬虫速成教程(MongoDB Navicat、requests模块、XPath基础和lxml模块、实战当当网5星图书排行榜数据抓取+数据存储到MongoDB数据库)
Python开发简单爬虫速成教程**b站学习视频网址:**https://www.bilibili.com/video/BV1164y1m7Xb?p=1一、简介按照一定的规则,自动抓取网络信息的程序或者脚本,搜索引擎的重要组成。搜索引擎数据分析人工智能薅羊毛、抢车票爬虫产品:神箭手、八爪鱼、造数、后羿采集器数据储备:python编程基础http数据库怎么学:python语法知识python爬虫常用到的几个重要内置库Requests,用于请求网页
2021-07-25 00:15:05
6630
2
原创 JavaSE_注解与反射完整笔记(反射:Class类和Class对象+反射概念的引入、Java内存+类的加载、Class对象获取类方法字段信息+创建对象调用方法操作属性、ORM+反射读取注解)
注解与反射[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W2egJVt7-1626748561781)(C:\Users\liujie\AppData\Roaming\Typora\typora-user-images\image-20210720103518119.png)]1.注解1.1什么是注解Java.Annotation是从JDK5.0开始引入的新技术注解和反射是所有框架的底层实现机制注释是给人看的,注解不仅给人看,还能给程序看Annota
2021-07-20 10:40:05
351
原创 JavaSE_注解与反射完整笔记
注解与反射1.注解1.1什么是注解Java.Annotation是从JDK5.0开始引入的新技术注解和反射是所有框架的底层实现机制注释是给人看的,注解不仅给人看,还能给程序看Annotation的作用:不是程序本身,可以对程序做出解释(这一点和注释comment没什么区别)可以被其他程序(比如:编译器等)读取Annotation的格式:@注解名还可以添加参数值,例如@SuppressWarnings(value=“unchecked”)Annotation在哪里使
2021-07-20 00:14:57
238
原创 第9天学习打卡(JavaSE_注解与反射_反射:Java内存分析、类的加载、Class对象获取运行时类的完整结构、反射有了Class对象之后做什么、反射读取注解)
2.3Java内存分析1.Java内存栈:一般用来存放用关键字new出来的数据堆:基本数据类型局部变量(在方法代码段中定义的变量),方法调用完后JVM回收引用数据类型——即需要用关键字new出来的对象所对应的引用 也是存放在栈空间中。此时JVM在栈空间中给对象引用分配了一个地址空间,存储引用变量,指向,在堆空间给该引用指向的实际对象分配的地址空间。方法区:用于存放已被加载的类信息、常量、static静态变量、即时编译器编译后的代码等数据2.4
2021-07-20 00:01:02
119
原创 第9天学习打卡(JavaSE_注解与反射_反射:反射引入、Class类和Class对象)
2.反射Java.Reflection静态语言和动态语言:动态语言:是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗讲就是在运行时代码可以根据某些条件改变自身结构。常见动态语言:JavaScript、PHP、Python、C#、Object-C//体现动态语言的代码function test() { var x = "var a=3;var b=5;alert(a+b)"; eval(x);/
2021-07-17 23:50:54
253
原创 第9天学习打卡(JavaSE_注解与反射_注解:什么是注解、内置注解、元注解、自定义注解)
注解与反射1.注解1.1什么是注解Java.Annotation是从JDK5.0开始引入的新技术注解和反射是所有框架的底层实现机制注释是给人看的,注解不仅给人看,还能给程序看Annotation的作用:不是程序本身,可以对程序做出解释(这一点和注释comment没什么区别)可以被其他程序(比如:编译器等)读取Annotation的格式:@注解名还可以添加参数值,例如@SuppressWarnings(value=“unchecked”)Annotation在哪里使
2021-07-17 23:49:47
182
原创 Spring完整笔记(IOC依赖注入、AOP面向切面编程)整合Mybatis
Spring主要是思想的学习,核心思想是IOC和AOPIOC控制反转:控制是指将所有的类托管给Spring创建管理控制反转是指通过属性依赖注入(DI)的方式,给对象的属性赋值,包括基本属性和引用属性(将对对象的控制权剥离处理)AOP面向切面编程:本质是装饰者模式和动态代理模式通过横切的方式在原有的业务代码中添加公共功能,而不改变原有业务代码1.Spring1.1 简介Spring:春天 ==>给软件行业带来了春天2002年,Rod Jahnson首次推..
2021-07-17 11:01:38
544
原创 第8天学习打卡(Spring:Spring整合Mybatis、Spring中为Mybatis配置声明式事务)
11.Spring整合Mybatis步骤:导入相关的包<dependencies> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependen
2021-07-15 22:58:22
185
原创 第7天学习打卡(Spring:代理模式[AOP底层机制]、AOP面向切面编程)
9.代理模式(AOP底层机制)为什么要学习代理模式,因为AOP的底层机制就是动态代理!代理模式:静态代理动态代理9.1静态代理1.静态代理角色分析抽象角色:一般使用接口或者抽象类实现真实角色:被代理的角色代理角色:代理真实角色;代理真实角色后,一般会做一些附属的操作客户:使用代理角色来进行一些操作代码实现Rent.java 即抽象角色//抽象角色:租房public interface Rent { public void rent();}Host.java
2021-07-15 03:03:00
180
原创 第6天学习打卡(Spring:简介、IOC理论基础、HelloSpring、IOC创建对象的方式、Spring配置、依赖注入、引用的Bean的自动装配、使用注解开发注册bean和属性注入)
1.Spring1.1 简介Spring:春天 ==>给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架2004年,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版Rod Jahnson是悉尼大学的音乐学博士,专业不是计算机Spring理念:使现有技术更加实用,本身就是一个大杂烩,整合现有的框架技术官网:https://spring.io官方下载地址:repo.spring.ioGi
2021-07-11 11:08:22
765
原创 MyBatis完整笔记(搭建环境CURD、配置解析、单表结果集映射 多表查询一对多多对一、日志 分页 使用注解开发、动态SQL、mybatis缓存)
MyBatisSSM框架环境:JDK1.8Mysql 5.7 或者升版本maven3.6.1或者升版本IDEA回顾:JDBCMysqlJava基础MavenJunit**框架:**配置文件的。学习框架最好的方式:看官方文档;**Mybatis3官方开发文档:**https://mybatis.org/mybatis-3/zh/getting-started.html1.简介1.1 什么是MyBatisMyBatis 是一款优秀的持久层框架它支持自定义
2021-07-08 14:52:48
260
原创 第5天学习打卡(Mybatis:mybatis常用配置总结)
13.Mybatis常用配置总结13.1Mybatis流程项目结构Mapper.xml和Mapper接口放在一起Mapper.xml和Mapper接口放在相同包名下,Mapper.xml放在Resources目录下Mybatis项目构建1.新建配置文件mybatis-config.xml 核心配置文件(后续不要忘记在此注册Mappper)db.properties 数据库配置文件log4j.properties 日志配置文件2.新建工具类MybatisUtils 提取生成Sq
2021-07-08 14:47:32
108
原创 第5天学习打卡(Mybatis:缓存、mybatis项目创建错误)
11.缓存11.1简介问题:查询:连接数据库,耗费资源。一次查询的结果,给他暂存在一个可以直接取到的地方——内存:缓存我们再次查询相同数据的时候,直接走缓存,就不用走数据库了。1.什么是缓存?存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2.为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3.什么样的数据能使用缓存经常查询并
2021-07-08 14:44:38
121
原创 第4天学习打卡(Mybatis:动态SQL)
10.动态SQL10.1简介什么是动态SQL:动态SQL是指根据==不同的查询条件,拼接生成不同的Sql语句==简介:MyBatis 的强大特性之一便是它的动态 SQL如果你有使用 JDBC 或其它类似框架的经验,你 就能体会到根据不同条件拼接 SQL 语句的痛苦:拼接是要确保不能忘记 添加必要的空格第一个查询条件不要and where id=1 and name=“zhangsan” and password=“123456”去掉列名最后一个列名的逗号 insert int
2021-07-08 14:42:24
153
原创 第4天学习打卡(Mybatis:多表查询结果集映射)
9.多表查询结果集映射问题:需要多表查询,但是返回的结果集往往只能是一个实体类型;数据库多表查询结果(可能多张表的字段),与实体类(可能涉及多个实体类),但是Mybatis返回结果中,只有一个returnType——结果集映射两种情况:student表:id,name,tidtechear表:id,name多对一:需要查询所有学生,及其对应的老师姓名(s.id s.name t.name),主体是学生(查询结果存在多个学生对应一个老师)查询条件是所有的学生,学生表join
2021-07-07 10:28:49
605
原创 第4天学习打卡(Mybatis:实用注解开发)
8.使用注解开发8.1面向接口编程大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口 编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下, 各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之
2021-07-06 22:12:11
126
原创 第4天学习打卡(Mybatis:ResultMap结果集映射、日志、分页)
5.ResultMap结果集映射要解决的问题:属性名和字段名不一致5.1 实体类属性和数据库字段不匹配问题数据库字段:实体类属性:public class User { private int id; private String name; private String password; //字段和属性不一致}测试字段不一致问题:Mapper.xml<!--根据id查询用户--><select id="getUserById" para
2021-07-06 17:17:47
94
原创 第3天学习打卡(Mybatis:配置解析)
4.配置解析核心配置文件mybatis-config.xml【注意】在mybatis-config.xml的<configuration>标签中,所有配置标签有顺序4.1环境配置(enviroments)MyBatis 可以配置成适应多种环境不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。事务管理器(transactionManager)在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANA
2021-07-05 12:42:07
278
原创 第3天学习打卡(Mybatis:CURD)
3.CURDnamespace:Mapper.xml中使用的namespace中分包名,要和Dao/Mapper接口中的包名一致。过程:完成MyBatis的实现后,操作数据库:所有的操作只和“接口”和“配置文件”有关实体类、工具类、mybatis.config.xml不在需要改变mapper.xml只需要去mybatis.config.xml中配置一次,mapper.xml中只需要有一个<mapper>dao层:UserMapper接口(从UserDao改名为UserMap
2021-07-05 10:01:38
106
原创 第2天学习打卡(Mybatis:简介、第一个Mybatis程序)
MyBatisSSM框架环境:JDK1.8Mysql 5.7 或者升版本maven3.6.1或者升版本IDEA回顾:JDBCMysqlJava基础MavenJunit**框架:**配置文件的。学习框架最好的方式:看官方文档;**Mybatis3官方开发文档:**https://mybatis.org/mybatis-3/zh/getting-started.html1.简介1.1 什么是MyBatisMyBatis 是一款优秀的持久层框架它支持自定义
2021-07-04 23:21:04
130
原创 Javaweb项目 SMBMS 超市订单管理系统:准备工作、登录与注销、修改密码、用户管理
SMBMS一、准备工作1.基本架构2.在数据库中创建对应的表对应的sql代码:CREATE DATABASE `smbms`;USE `smbms`;DROP TABLE IF EXISTS `smbms_address`;CREATE TABLE `smbms_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `contact` varchar(15) COLLATE utf8_unicod
2021-07-04 01:58:11
2102
原创 第1天学习打卡(Javaweb 邮件发送:原理、发送简单文本邮件、发送带图片和附件邮件、网站注册发送邮件Servlet实现)
六、邮件收发电子邮件要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。SMTP服务器地址:一般是smtp.xxx.com, 比如163邮箱是smtp.163.com, qq邮箱是smtp.qq.com电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请。传输协议SMTP协议发送邮件:我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)
2021-07-03 17:55:22
1548
原创 第1天学习打卡(Javaweb Servlet文件上传)
五、文件上传1.准备工作idea建立空项目,选择jdk和对应版本,新建module**创建web项目:**普通Java项目添加web应用;maven通过模板创建,通过maven创建普通;再去增加一个web框架支持Javaweb之前在HttpServletResponse处讲了下载文件,此处上传文件相反操作对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的。一般选择采用apache的开源工具common-fileupload这个文件上传组件common.fileupload是依
2021-07-03 13:20:00
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人