自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC 学习笔记09:Json交互处理

一、什么是JSON?1.1 介绍JSONJSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。           在 JavaScript 语言中,一切都是对象。因此,

2020-12-31 11:29:12 169

原创 SpringMVC 学习笔记08:解决Get和Post请求的乱码问题

一、发现问题1、我们可以在首页index.jsp编写一个提交的表单(post请求)<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/12/28 Time: 10:12 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8"

2020-12-29 10:24:40 184

原创 SpringMVC 学习笔记07:如何处理前端提交的数据以及将处理后的数据发送到前端的三种方式

一、处理提交数据1.1 提交的域名称和处理方法的参数名一致1.2 提交的域名称和处理方法的参数名不一致1.3 提交的是一个对象二、数据显示到前端2.1 通过ModelAndView2.2 通过ModelMap2.3 通过Model三、对比...

2020-12-29 09:32:09 291

原创 SpringMVC 学习笔记06:前端输入后跳转的四种方式(有无视图解析器)

一、ModelAndView结合视图解析器跳转      设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .      页面 : {视图解析器前缀} + viewName +{视图解析器后缀}<!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.In

2020-12-28 15:21:47 121

原创 SpringMVC 学习笔记05:RestFul 风格

一、概念      Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。二、功能资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应 添加、 删除、修改、查询。三、传统方式操作资源:通过不同的参数来实现不同的效果!方法单一,post 和 gethttp://

2020-12-28 15:01:01 93

原创 SpringMVC 学习笔记04:进一步了解Controller配置

一、通过接口定义方式      1.在web.xml中配置DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc

2020-12-28 11:20:51 125

原创 SpringMVC 学习笔记03:注解版实现HelloSpringMVC程序

1.新建一个Moudle,Springmvc_03_helloannotation 。添加web支持!2.由于Maven可能存在资源过滤的问题,我们将配置完善在Springmvc_03_helloannotation 下面的pom.xml中加入下面一段代码:<build> <resources> <resource> <directory>src/main/java</

2020-12-27 19:32:45 134

原创 SpringMVC 学习笔记02:探究SpringMVC的内部原理

一、什么是SpringMVC?      1.Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架,实质还是servlet。      2.官方文档5.2版本:https://docs.spring.io/spring/docs/5.2.0.RELEASE/spring-framework-reference/web.html#sp

2020-12-25 20:10:25 101

原创 SpringMVC 学习笔记01:简单介绍下MVC以及回顾Servlet

一、什么是MVC?      MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种架构模式,主要作用是降低视图与业务逻辑间的双向耦合。如下图所示就是一个SpringMVC的典型闭环结构:      大致流程:其实就是一个JSP+servlet+javabean模式,用户在jsp页面进行输入,然后Controller层利用servlet获取用户输入的

2020-12-25 14:46:04 122

原创 Spring学习笔记之jdbcTemplate操作数据库

一、介绍JdbcTemplate      Spring框架对JDBC进行封装,使用JdbcTemplate可以方便实现对数据库操作,接下来将会详细介绍如何通过Spring框架中的JdbcTemplate对数据库进行操作。二、准备工作      1.在IDEA里新建一个Java工程,工程名自取,这里我们取“Spring5_jdbcTemplate”,然后在工程下新建一个lib目录,用

2020-12-23 16:21:30 335 2

原创 如何在IDEA里通过MyBatis实现数据库的读写

一、简单版1.在数据库中创建一张测试表USE mybatis;CREATE TABLE tbl_employee( `id` INT(11) PRIMARY KEY AUTO_INCREMENT, `last_name` VARCHAR(255), `gender` CHAR(1), `email` VARCHAR(255));INSERT INTO tbl_employee(id,last_name,gender,email) VALUES('2','tom','0

2020-12-16 21:10:19 640

原创 三、利用PreparedStatement实现数据库的连接和【查询】sql操作

一、PreparedStatementUpdaeTest.javapackage com.atguigu3.preparedstatement;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import org.junit.Test;import com.atguigu3.bean.Customer;import com.atguigu3.util.JDBCUt

2020-11-24 17:39:02 577

原创 二、利用PreparedStatement实现数据库的连接和【增删改】sql操作

由于使用的mysql版本为8.0.22,所以对应的mysql驱动为com.mysql.cj.jdbc.Driver,注意根据不同的mysql版本选择不同的驱动。jdbc.properties文件内容如下:user=rootpassword=cgurl=jdbc:mysql://localhost:3306/girls?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false

2020-11-24 15:42:37 281

原创 一、JDBC获取数据库连接的几种方式

一、获取数据库连接的方式一// 方式一:利用数据库驱动实现连接 @Test public void testConnection1() throws SQLException { // 获取Driver实现类对象,Mysql对应的驱动为com.mysql.jdbc Driver driver = new com.mysql.jdbc.Driver(); // url:http://localhost:8080/gmall/keyboard.jpg // jdbc:mysql:协议

2020-11-24 14:40:15 520

原创 二十五、程序员10大算法之马踏棋盘算法

一、马踏棋盘算法介绍二、代码实现import java.awt.Point;import java.util.ArrayList;import java.util.Comparator;public class HorseChessboard { private static int X; // 棋盘的列数 private static int Y; // 棋盘的行数 //创建一个数组,标记棋盘的各个位置是否被访问过 private static boolean visited[

2020-10-26 10:44:49 366

原创 二十四、程序员10大算法之弗洛伊德(Floyd)算法

一、弗洛伊德(Floyd)算法介绍二、代码实现import java.util.Arrays;public class FloydAlgorithm { public static void main(String[] args) { // 测试看看图是否创建成功 char[] vertex = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' }; //创建邻接矩阵 int[][] matrix = new int[vertex.length][ve

2020-10-26 10:03:04 208 1

原创 二十三、程序员10大算法之迪杰斯特拉(Dijkstra)算法

一、迪杰斯特拉(Dijkstra)算法介绍二、代码实现import java.util.Arrays;public class DijkstraAlgorithm { public static void main(String[] args) { char[] vertex = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' }; //邻接矩阵 int[][] matrix = new int[vertex.length][vertex.length]

2020-10-23 16:35:30 240 1

原创 二十二、程序员10大算法之克鲁斯卡尔算法

一、克鲁斯卡尔算法介绍

2020-10-23 11:59:33 484

原创 二十一、程序员10大算法之普里姆算法

一、普里姆算法介绍二、代码实现import java.util.Arrays;public class PrimAlgorithm { public static void main(String[] args) { //测试看看图是否创建ok char[] data = new char[]{'A','B','C','D','E','F','G'}; int verxs = data.length; //邻接矩阵的关系使用二维数组表示,10000这个大数,表示两个点不联

2020-10-22 20:52:35 212

原创 二十、程序员10大算法之贪心算法

一、贪心算法介绍二、代码实现import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;public class GreedyAlgorithm { public static void main(String[] args) { HashMap<String, HashSet<String>> broadcasts = new HashMap

2020-10-22 16:47:10 128

原创 十九、程序员10大算法之KMP算法

一、KMP算法介绍参考:详尽的KMP算法介绍二、代码实现2.1 暴力匹配算法解决字符串包含问题import java.util.jar.JarEntry;public class ViolenceMatch { public static void main(String[] args) { String str1 = "abcdefabcghijklmn"; String str2 = "abcg"; int index = vi

2020-10-22 15:45:27 106

原创 十八、程序员10大算法之动态规划

一、动态规划算法介绍二、代码实现import javax.swing.plaf.metal.MetalIconFactory;public class KnapsackProblem { public static void main(String[] args) { int[] w = {1,4,3}; //物品的重量 int[] val = {1500,3000,2000}; //物品的价值

2020-10-22 11:05:17 128

原创 十七、程序员10大算法之分治算法

一、分治算法介绍二、分治算法应用三、代码实现public class Hanoitower { public static void main(String[] args) { hanoiTower(3,'A','B','C'); } //分治算法解决汉诺塔问题 public static void hanoiTower(int num,char a,char b,char c){ if(num == 1){

2020-10-22 09:57:08 152

原创 十六、程序员10大算法之二分查找算法(非递归)

一、二分查找算法介绍二、代码实现package binarysearchnorecursion;public class BinarySearchNoRecur { public static void main(String[] args) { int[] arr = {1,3,8,10,11,67,100}; int index1 = binarySearch(arr,100); System.out.println("index1=

2020-10-22 09:37:41 62

原创 十五、图(深度优先遍历和广度优先遍历)

一、图基本介绍二、图的表示方式package graph;import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;public class Graph { private ArrayList<String> vertexList; //存储顶点集合 private int[][] edges; //存储图对应的邻结矩阵 private int numOfEd

2020-10-16 10:47:39 439

原创 十四、多叉树、2-3树、B树

一、多叉树二、B树介绍

2020-10-14 20:28:48 77

原创 十三、平衡二叉树(AVL树)

一、平衡二叉树介绍二、AVL树左旋转 //左旋转方法 private void leftRotate() { //创建新的结点,以当前根结点的值 Node newNode = new Node(value); //把新的结点的左子树设置成当前结点的左子树 newNode.left = left; //把新的结点的右子树设置成带你过去结点的右子树的左子树 newNode.right = right.left; //把当前结点的值替换成右子结点的值 value =

2020-10-14 19:58:40 69

原创 十二、二叉排序树(创建、遍历和删除(三种情况)))

一、二叉排序树二、二叉排序树的创建和遍历package binarysorttree.binarysorttree;public class BinarySortTreeDemo { public static void main(String[] args) { int[] arr = {7, 3, 10, 12, 5, 1, 9}; BinarySortTree binarySortTree = new BinarySortTree(); //循环的添加结点到二叉排序树

2020-10-13 17:46:19 796

原创 十一、树(二叉树,顺序存储二叉树,线索化二叉树,赫夫曼树,赫夫曼编码,赫夫曼数据压缩与解压)

一、数组、链表、树存储方式二、二叉树      1.树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树。      2.二叉树的子节点分为左节点和右节点。      3.如果该二叉树的所有叶子节点都在最后一层,并且结点总数= 2^n -1 , n 为层数,则我们称为满二叉树。  &nbs

2020-10-13 10:18:48 175

原创 十、查找算法(二分查找、插值查找、斐波那契、哈希表)

一、二分查找算法(有序序列)1.查找原理2.代码实现package search;import java.util.ArrayList;import java.util.List;//注意:使用二分查找的前提是 该数组是有序的.public class BinarySearch { public static void main(String[] args) { int arr[] = { 1, 8, 10, 89,1000,1000, 1234 }; //int arr[]

2020-09-30 18:02:55 112

原创 九、排序算法大总结(冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、基数排序)

一、排序算法介绍以及时间复杂度计算1.排序的分类      排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序(考察的比较多):指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。2.算法的时间复杂度计算2.1 时间频度     &nbsp

2020-09-27 20:52:54 675

原创 八、递归(迷宫回溯问题、八皇后问题)

一、了解递归二、迷宫回溯问题1.代码实现:package recursion;public class MiGong { public static void main(String[] args) { // 先创建一个二维数组,模拟迷宫 // 地图 int[][] map = new int[8][7]; // 使用1 表示墙 // 上下全部置为1 for (int i = 0; i &

2020-09-25 17:27:12 86

原创 七、前缀、中缀、后缀表达式规则——逆波兰计算器分析与实现

一、前缀、中缀、后缀表达式规则      1.前缀表达式(波兰表达式)      前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前      举例说明: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6      **前缀表达式的计算机求

2020-09-24 19:13:01 254

原创 六、栈(stack)——实现综合计算器功能

一、栈的应用场景和介绍      栈是一个先入后出的有序列表,允许插入和删除的一端称为栈顶,另一端为栈底。      应用场景:子程序的调用、处理递归调用、表达式的转换、二叉树的遍历、图形的深度优先(depth-first)搜索法二、栈的思路分析和代码实现(用数组实现栈)//定义一个ArrayStack表示栈class ArrayStack{ private int ma

2020-09-24 15:26:22 136

原创 五、环形链表和约瑟夫问题

      一、引出问题      约瑟夫问题:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。      例如编号为12345的环形链表,从1开始

2020-09-22 17:32:25 98

原创 四、双链表

      单向链表缺点:      1.查找的方向只能是一个方向,而双向链表可以向前或者向后查找。      2.单向链表不能自我删除,需要靠辅助节点,而双向链表可以自我删除...

2020-09-22 16:32:17 60

原创 三、单链表

一、单链表介绍和内存布局      链表是有序的列表,但是它在内存中的存储不是有序的,单链表中每个节点包含data域和next域,next指向下一个节点。链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定。二、单链表创建和遍历的分析实现      ...

2020-09-12 15:42:07 115

原创 二、队列(直线队列和环形队列)

      队列是一个有序列表,可以用数组或者链表来实现,遵循先入先出的原则。      A.数组模拟队列      利用两个变量front及rear分别记录队列前后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变。...

2020-09-09 20:50:39 240

原创 一、稀疏数组

      当一个较大数组中的大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。      A.二维数组转稀疏数组的处理方法      1.遍历原始的二维数组,得到有效数据的个数sum和行列数      2.根据sum就可以创建稀疏数组spars

2020-09-09 16:19:56 196

原创 十二、Java反射机制

      一、反射机制概述      反射机制允许程序在执行期间借助于ReflectionAPI取得任何类的内部信息,并能够直接操作任意对象的内部属性和方法。      下面建立一个Person类。类里有私有的属性和方法,通过反射在Person类外部调用这些私有属性和方法。public class Person {

2020-09-08 17:25:10 115

空空如也

空空如也

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

TA关注的人

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