自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Spring框架学习(十)SSM框架整合

目录构建项目(IDEA版本)环境搭建Spring框架搭建SpringMVC框架搭建Spring整合SpringMVCMybatis框架搭建Spring整合Mybatis构建项目(IDEA版本)点击 create new Project选择Maven工程,并点击Create from archetype,选择webapp工程解决创建项目过慢的问题(加入新的键值对archetypeCatalog,internal)最后一步finish,创建完成环境搭建创建JAVA文件夹和resour

2020-06-26 14:57:19 2818 4

原创 Spring学习笔记(九)常用注解

目录常用注解使用注解前提用于创建对象的注解:``用于注入数据的:`` ``用于改变作用范围的:` scope=""`和生命周期相关的:` init-method="" destroy-method=""`新注解常用注解使用注解前提导入JAR包用注解配置管理资源创建 spring 的 的 xml 配置 文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sc

2020-06-24 11:22:22 205

原创 Spring学习笔记(八)程序解耦和IOC详解

目录程序解耦什么是程序耦合解耦的思路控制反转IOC前期准备环境搭建基于 XML 的配置Spring基于XML的IOC的细节程序解耦什么是程序耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。耦合性存在于各个领域,而非软件设计中独有的,但是我们

2020-06-22 20:47:14 262

原创 SpringMVC框架学习(五)异常处理和拦截器

目录异常异常处理的思路异常处理实现步骤拦截器拦截器的概述自定义拦截器步骤HandlerInterceptor接口中的方法配置多个拦截器异常异常处理的思路思路:Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理。异常处理实现步骤编写 异常类 和错误页面public class SysException extends Exception { private String mes

2020-06-20 21:13:01 229

原创 SpringMVC框架学习(四)文件上传

目录

2020-06-20 11:57:48 229

原创 SpringMVC框架学习(三)响应数据和结果视图

目录返回值分类转发和重定向ResponseBody响应json数据返回值分类字符串controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。 @RequestMapping("/hello") public String hello(){ System.out.println("Welcome to SpringMVC!!"); return "success"; }void如果控制器的方法返回

2020-06-19 21:17:24 213

原创 LeetCode题目:134. 加油站

题目题目链接: https://leetcode-cn.com/problems/gas-station/题目解析:问在何处出发时,可以环绕一周。第一种方法:暴力解法(两次循环):直接看代码第二种方法:直接将每段路车最终能剩下的油算出来,如果加起来大于等于0则这段路就可以走的通,如果小于0则走不通解决了走不走得通的问题,那就开始找,从哪里开始走。如果A到不了B,那就从下一个加油站开始,遍历一遍数组找到一个可以走的地点。代码第一种:class Solution { publi

2020-06-19 16:29:34 197

原创 LeetCode题目:1414. 和为 K 的最少斐波那契数字数目

题目题目链接:https://leetcode-cn.com/problems/find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k/题目解析:就是利用最少的斐波那契数字去变成K,题目很简单代码class Solution { public int findMinFibonacciNumbers(int k) { //创建数组来存放斐波那契数字 int[] arr = new int[1001];

2020-06-19 15:24:09 221

原创 SpringMVC框架学习(二)请求参数的绑定和常用注解学习

目录SpringMVC的组件Request注解SpringMVC的组件DispatcherServlet :前端控制器用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。HandlerMapping :处理器映射器HandlerMapping 负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器

2020-06-19 11:41:39 160

原创 LeetCode题目:1400. 构造 K 个回文字符串

题目题目链接:https://leetcode-cn.com/problems/construct-k-palindrome-strings/题目解析:这题主要是找范围,找给你的字符串最少能拆成几个回文串,最多能拆成几个回文串。最多回文串,就是字符串的大小,每个字母都一个回文串,所以不用求。所以重点还是找最小回文串。那就数每个字母的个数。如果为偶数,他套哪个回文串都可以,但是为奇数就不行,所以我们主要就是找奇数个的字母。然后看要求划分k个字符串的k在不在最大最小范围之内。比如:“leetcode

2020-06-18 17:51:08 232

原创 LeetCode题目:1094. 拼车

题目题目链接:https://leetcode-cn.com/problems/car-pooling/题目解析:题目比较好理解,给一个二维数组,每一个数组里面放着三个数据,上车人数,上车地点,下车地点,此外路线是一条直线。我一开始准备用暴力,但是发现越写越复杂就违背了贪心的思想。所以我还是去后面看看别人的思路,理解了一个思路。将路程变成一个数组,然后将上车地点作为数组的索引,然后数组里面存放的是车上减少或者增加的座位。遍历完数组之后,开始遍历路程数组,然后中间有座位过多的化就返回false代码

2020-06-17 20:36:43 364

原创 SpringMVC框架学习(一)简介及入门程序

目录三层架构SpringMVC是什么?SpringMVC 的优势与Struts2的区别入门案例入门案例流程总结三层架构在 B/S架构中,系统标准的三层架构,包括:表现层、业务层、持久层。表现层:也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求web 层,web 需要接收 http 请求,完成 http 响应。表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并

2020-06-17 19:55:24 312

原创 LeetCode题目:1433. 检查一个字符串是否可以打破另一个字符串

题目题目连接:https://leetcode-cn.com/problems/check-if-a-string-can-break-another-string/题目解析:给两个字母集合,找出使得两个字母集合按照顺序都有一个集合的字母始终比另一个字母大的顺序。就比如{a,b,c}<{a,x,y},因为a跟a一样大,x比b大,y比c大,所以可以打破题目方法:第一种是我的方法,直接暴力解法,实在是慢的不行将两个字符串按照字母排序然后两个字符串一一比对如果中间的一对字母比较跟前两个不一

2020-06-17 15:52:09 133

原创 面试题目(三)编码,注释,访问修饰符,关键字

目录Java语言采用何种编码方案?有何特点?什么是Java注释访问修饰符 public,private,protected,以及不写(默认)时的区别&和&&的区别final 有什么用?final finally finalize区别this关键字的用法super关键字的用法this与super的区别static存在的主要意义static的独特之处static应用场景static注意事项Java语言采用何种编码方案?有何特点?采用Unicode编码标准,通过用双字节来表示一个字符

2020-06-15 20:29:19 107

原创 LeetCode题目:1338. 数组大小减半

题目题目链接:https://leetcode-cn.com/problems/reduce-array-size-to-the-half/题目解析:其实题目还是很简单的,就是将数组中相同的数字当作一个个集合,问删除多少这样的集合可以使得数组的长度变成一半。1. 先将数组中对应数字的数量计算出来2. 然后排序,由大到小3. 判断加多少个相加的时候会大于数组长度的一般代码import java.util.Map;import java.util.Map.Entry;class Soluti

2020-06-15 16:21:01 200

原创 Mybatis框架复习:面试题目

目录Mybatis简单介绍MyBatis是什么?ORM是什么为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?Mybatis优缺点MyBatis框架适用场景Hibernate 和 MyBatis 的区别Mybatis解析和运行原理MyBatis编程步骤是什么样的?MyBatis的工作原理MyBatis的功能架构是怎样的为什么要预编译Mybatis都有哪些Executor执行器?它们之间的区别是什么?Mybatis中如何指定使

2020-06-15 11:21:19 439

原创 Mybatis框架学习(十一)注解开发

目录mybatis 的常用注解说明使用 Mybatis 注解实现基本 CRUDmybatis 的常用注解说明@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@ResultMap:实现引用@Results 定义的封装@One:实现一对一结果集封装@Many:实现一对多结果集封装@SelectProvider: 实现动态 SQL 映射@Cac

2020-06-14 21:38:16 120 1

原创 Mybatis框架学习(十)缓存

目录缓存解释一级缓存证明一级缓存的存在一级缓存分析二级缓存二级缓存使用过程二级缓存的开启和关闭二级缓存的注意事项缓存解释像大多数的持久化框架一样,Mybatis 也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。什么是缓存:存在于内存的临时数据为什么使用缓存:因为可以减少与数据库的交互,提高执行的效率什么数据适合缓存:经常查询但是不经常改变的数据,数据的正确与否对最终数据结果影响不大什么数据不适合缓存:经常改变的数据,数据的正确与否对于最终数据结果的影响很大,比如:股票,银行

2020-06-14 16:20:47 95

原创 Mybatis框架学习(九)延迟加载

目录延迟加载实现延迟加载使用 assocation 实现延迟加载使用 Collection 实现延迟加载延迟加载就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.优点:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。缺点:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。实现延迟加载association、col

2020-06-14 15:19:48 421

原创 Mybatis框架学习(八)多表操作

目录表之间的关系有几种:环境准备一对一查询一对多的查询表之间的关系有几种:一对多多对一一对一多对多环境准备数据库 CREATE TABLE `account` ( -> `ID` int(11) NOT NULL COMMENT '编号', -> `UID` int(11) default NULL COMMENT '用户编号', -> `MONEY` double default NULL COMMENT '金额', -

2020-06-14 10:29:12 186

原创 LeetCode题目:406. 根据身高重建队列

题目题目链接:https://leetcode-cn.com/problems/queue-reconstruction-by-height/题目解析:首先要先了解,这可以将people[0]比作身高值,如果高的人是看不到比自己矮的的人的,所以高的只会看到比自己高的或者跟自己一样高的。根据这个想法就可以先将二维数组排序排完序之后,可以利用LinkedList集合,利用add(index,Element)这个方法,如果索引相同的情况下,后来的会在先来的前面。所以我们把排好序的数组放入集合,然后再一一

2020-06-13 19:52:30 186

原创 Mybatis框架学习(七)动态的sql语句

目录前提动态 SQL 之``标签动态 SQL 之`` 标签动态标签之`` 标签Mybatis 中简化编写的 SQL 片段前提Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了。动态 SQL 之<if>标签创建持久层的方法配置Dao配置文件注意:标签的 test 属性中写的是对象的属性名,如果是包装类的对象要使用 OGNL 表达式的写法。另外要注意 where

2020-06-12 11:46:43 153

原创 Mybatis框架(六)连接池

目录连接池简介连接池简介连接池里相当于一个容器,然后在里面会创建很多的连接,然后你要连接数据库,连接池就放出来一个连接,当你用完之后,就把连接池放回去,等待下一个人来使用,这样就大大节约了内存的损耗,不用老是创建和销毁连接。...

2020-06-12 10:50:09 130

原创 LeetCode题目:714. 买卖股票的最佳时机含手续费

题目题目链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/题目解析:主要是维护今天的股票买的利润m和今天的股票不买的利润n这两个变量首先先将两个变量初始化,n = 0 ,m = -price[0];然后从后一天开始遍历先判断,如果今天将股票卖出去的利润会不会比之前的利润高然后判断,如果买今天的股票不然买之前的股票会不会更划算代码class Soluti

2020-06-11 21:12:53 146

原创 面试题目(二)基础语法

目录Java有哪些数据类型switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上用最有效率的方法计算 2 乘以 8Math.round(11.5) 等于多少?Math.round(-11.5)等于多少float f=3.4;是否正确short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗总结Java有哪些数据类型基本数据类型布尔类型:boolean:1字节字符型:char:1字节

2020-06-11 16:20:59 80

原创 Mybatis框架学习(五) SqlMapConfig.xml 配置文件细节

这里写目录标题SqlMapConfig.xml 中配置的内容和顺序properties (属性)typeAliases (类型别名)mappers (映射器)SqlMapConfig.xml 中配置的内容和顺序properties (属性)propertysettings(全局配置参数)settingtypeAliases (类型别名)typeAliasepackagetypeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)

2020-06-11 16:07:00 100

原创 LeetCode题目:763. 划分字母区间

题目题目链接:https://leetcode-cn.com/problems/partition-labels/题目解析:通过数组将每个字母最后一个索引保存起来,根据贪心的想法,将第一个字母最后索引作为标志,如果中间有字母的最后索引大于它,就替换,然后如果遍历到字母的最后索引都没有比它更大的话,这一段就算是字母段,接着继续遍历,知道字符串结束代码class Solution { public List<Integer> partitionLabels(String S) {

2020-06-10 21:25:04 158

原创 面试题目(一)JAVA的概述

这里写目录标题什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别总结什么是Java面向编程和跨平台的语言吸收了C++和C的优点,并且相比于C++使用简单方便和便捷极好地实现了面向对象理论jdk1.5之后的三大版本Java SE:允许开发和部署在桌面,服务器,嵌入式环境

2020-06-10 16:51:25 121

原创 Mybatis框架学习(四)Mybatis 的参数深入和输出结果封装

这里写目录标题Mybatis 的参数深入parameterType 配置参数传递 pojo 包装对象Mybatis 的输出结果封装resultType 配置结果类型resultMap 结果类型Mybatis 的参数深入parameterType 配置参数使用说明:SQL 语句传参,使用标签的 parameterType 属性来设定。该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。同时也可以使用实体类的包装类,本章节将介绍如何使用实体类的包装类

2020-06-10 16:13:32 269

原创 Mybatis框架学习(三)实现CRUD操作

这里写目录标题前提操作根据id查询用户模糊查询保存操作修改操作删除操作前提操作将测试类中重复的操作封装 private InputStream in; private SqlSession session; private IUserDao dao; @Before//用于测试类调用之前 public void init() throws Exception{ // 第一步:读取配置文件 in = Resources.getR

2020-06-10 14:55:46 249

原创 Mybatis框架学习(二) 自定义Mybatis框架

自定义 Mybatis 框架的分析代码展示: // 第一步:读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConifg.xml"); // 第二步:创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFacto

2020-06-10 10:14:39 136

原创 Mybatis框架学习(一)入门及搭建环境

目录MyBatis 框架 概述JDBC解析Mybatis使用理由Mybatis环境搭建(IDEA)MyBatis 框架 概述mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。mybatis通过 xml 或注解的方式将要执行的各种statement配置起来,并通过java对象和statement 中sql 的动态参数进行映射生成最终执行的 sql 语句

2020-06-08 22:10:37 614

原创 LeetCode题目:1282. 用户分组

题目题目链接:https://leetcode-cn.com/problems/group-the-people-given-the-group-size-they-belong-to/题目解析:创建map集合,用于存放分组的list集合循环开始,当分组的索引在map集合中如果没有,就创建一个放进去如果在map集合有,则将当前的值放入map对应的索引的list集合中代码class Solution { public List<List<Integer>> g

2020-06-08 15:45:21 145

原创 笔试经验(一)

分别写出char,int,float,double 类型分别占多少字节。转载:c中char int float double long所占字节数解析:所占字节数和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):1 sizeof(short int)<=sizeof(int)2 sizeof(int)<=sizeof(long int)3 short int至少应为16位(2字节)

2020-06-08 11:43:04 125

原创 Java简单基础的复习(十七)网络编程

目录网络编程概述软件结构通信协议协议分类网络协议TCP的通信程序概述网络编程概述软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。通信协议网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了统

2020-06-07 21:26:24 279

原创 Java简单基础的复习(十七)反射

类的加载概述和加载时机类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。连接验证 是否有正确的内部结构,并和其他类协调一致准备 负责为类的静态成员分配内存,并设置默认初始化值解析 将类的二进制数据中的符号引用替换为直接引用初始化 就是我们以前讲过的初始化步骤加载时机创建类的实例访问

2020-06-03 16:26:11 96

原创 Java简单基础的复习(十六)线程

多线程的概述什么是线程线程是程序执行的一条路径, 一个进程中可以包含多条线程多线程并发执行可以提高程序的效率, 可以同时完成多项工作多线程并行和并发的区别并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU)并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。Java程序运行原理和JVM的启动是多线程的吗Java命令会启动java虚拟机,启动JVM,等于启动了一个应用程序,也

2020-06-02 17:43:49 177

原创 单例设计模式

单例设计模式概述单例设计模式:保证类在内存中只有一个对象。并提供一个访问它的全局访问点。如何保证类在内存中只有一个对象呢?控制类的创建,不让其他类来创建本类的对象。private在本类中定义一个本类的对象。Singleton s;提供公共的访问方式。 public static Singleton getInstance(){return s}单例模式解决的问题:可以保证一个类在内存中的对象的唯一性。必须对于多个程序使用同一个配置信息对象时,就必须保证对象的唯一性。注意事项:不要

2020-06-02 09:23:30 187

原创 Java简单基础的复习(十三)IO流(字节流)

IO流概述及其分类概念IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方式Java用于操作流的类都在IO包中流按流向分为两种:输入流,输出流。流按操作类型分为两种:字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的字符流 : 字符流只能操作纯字符数据,比较方便。IO流常用父类字节流的抽象父类:InputStreamOutputStream字符流的抽象父类:ReaderWriterIO流的使用使用前

2020-06-01 09:52:11 95

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除