选择排序
选择排序分析
遍历 len-1 次
每次选择出最小的值放在前面
代码12345678910111213141516171819202122232425package 算法;public class 选择排序 { public static void main(String[] args) { int[] arr = new int[]{101,34,119,1}; int min,minIndex; for (int i = 0; i < arr.length-1; i++) { min = arr[i]; minIndex = i; for (int j = i+1; j < arr.length; j++) { if(arr[j]<min){ min = arr[j]; ...
冒泡排序
冒泡排序分析
代码1234567891011121314151617181920212223242526package 算法;public class 冒泡排序 { public static void main(String[] args) { int[] arr = new int[]{3,9,-1,10,20}; int len = arr.length; boolean flag = true; for (int i = 0; i < len-1; i++) { flag = true; for (int j = i+1; j < len-1-i; j++) { if(arr[i]>arr[j]){ int temp = arr[i]; arr[i] = arr[j]; ...
SpringMVC_2
SpringMVC 学习笔记(二)1. 发送ajax请求123456789101112131415161718// 页面加载// 页面加载$(function(){ // 绑定点击事件 $("#btn").click(function(){ $.ajax({ url:"user/testJson", contentType:"application/json;charset=UTF-8", data:'{"addressName":"aa","addressNum":100}', dataType:"json", type:"post", success:function(data){ alert(data); ...
SpringMVC_1
SpringMVC 学习笔记MVC设计模型
M : model 模型 —–>JavaBean
V : View 视图 ——> JSP
C : Controller控制器 —–> Servlet
MVC职责分析
Controller
取得表单数据
调用业务逻辑
转向指定的页面
Model
业务逻辑
保存数据的状态
View
显示页面
SpringMVC概述 SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于 Spring FrameWork 的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
SpringMVC已经成为目前最主流的 MVC 框架之一,并且随着Spring3.0的发布,全面超越 Struts2,成为最优秀的 MVC 框架。 它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。
SpringMVC在三层架构的位置
...
Spring_2
Spring 学习笔记(二)Spring AOP1.定义
概述:
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
简单的说就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。
作用:
在程序运行期间,不修改源码对已有方法进行加强
优势
减少重复代码
提高开发效率
维护方便
2.AOP相关术语
Joinpoint(连接点): 所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点。
Pointcut(切入点): 所谓切入点是指我们要对哪些Joinpoint进行拦截的定 ...
Spring_1
Spring学习笔记(一)Spring概述
目的:
解决企业应用开发的复杂性
范围:任何java的应用
重点:
**IoC(控制反转)**:促进了松耦合,对象初始化时不等对象请求就主动将依赖传递
**AOP(面向切面编程)**:允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发
优点:
Spring是一个开源容器。
从大小与开销两方面而言Spring都是轻量的框架
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。
缺点:
配置太过于繁琐!(SpringBoot会很好的解决这个问题)
总结:反正无敌!!就是学:smile:!
Spring的7大模块
1.Spring Code这是Spring框架最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。
2.Sping AOPSpring在它的AOP模块中提供了对面向切面编程的丰富支持 ...
Mybatis
Mybatis笔记Mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
优点:
Mybatis将重要的步骤抽取出来可以人工定制,其他步骤自动化
重要步骤写在配置文件中(方便维护)
完全解决数据库优化问题
Mybatis底层就是对原生JDBC的一个简单封装
即将java编码与sql抽取出来,还不会失去自动化功能的半自动持久层框架
Mybatis的使用导入依赖123456789101112131415161718<!--mybatis--><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis< ...
LeetCode之根据身高重建队列
根据身高重建队列1.题目假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。
请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。
示例:
输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]
解释:
编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。
编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。
编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。
编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
...
LeetCode之二叉树的中序遍历
二叉树的中序遍历1.题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。
示例:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例:
12输入:root = [1]输出:[1]
2.分析 递归遍历,先左再添加再右
3.代码12345678910111213141516171819202122232425262728293031/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * ...
LeetCode之删除有序数组中的重复项
删除有序数组中的重复项1.题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例:
输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 不需要考虑数组中超出新长度后面的元素。
示例:
123输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。 不需要考虑数组中超出新长度后面的元素。
2.分析 使用双指针,一根指针指单个不同的数,一个指针如果相同就移动。
3.代码12345678910111213141516171819202122class So ...