- 博客(95)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 JavaWeb 乱码问题处理
JavaWeb 乱码问题终极解决方案!整体思路首先出现乱码之后,要先去确认乱码的地方,当一个网页上出现乱码,有可能是浏览器显示问题,也有可能是 Java 编码问题,也有可能数据库中的数据本身就是乱码的,所以我们要做的第一件事就是确认乱码发生的位置,缩小 bug 范围,通过打印日志或者debug 首先去确认乱码发生的位置,然后再去进一步解决,一般来说,乱码的原因大致上可以分为两类:请求乱码响...
2019-04-11 11:23:42
398
原创 Java基础之阶乘编程
Java基础之阶乘编程方式一:使用递归的方式求一个数的阶乘方式二:使用非递归的方式求一个数的阶乘 阶乘概念:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。方式一:使用递归的方式求一个数的阶乘 这里没什么要讲的,小编直接上代码了:private static int factorial01(int n) {//这里判断输入的数字的正负,根据阶乘的定义,我们不难知道阶乘的计算是相对于正整数而言的。 if (n < 0) {
2020-07-09 06:57:43
1609
转载 JDBC面试总结
1、什么是JDBC,在什么时候会用到它? JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。 JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。...
2019-09-05 11:22:56
410
原创 IDEA 配置 tomcat 以及找不到 HttpServlet 类
本文主要介绍 idea 如何配置本地 tomcat,我们在实际开发中,如果使用的是 Spring Boot的话,Spring Boot 内置的又tomcat,那么我们普通的项目如何配置 tomcat 呢?下面小编就简单的介绍一下:首先我们先编辑idea,添加tomcat模板 1、我们首先打开idea,在右上角出找到如下图所示: 2、然后我们点击,会弹出如下窗口:如下图所示:...
2019-08-29 20:09:55
7352
2
原创 Spring Boot(十 四)-- 跨域问题
当下前后端分离技术已经成为主流,那么分离之后会我们难免会遇到跨域问题,前端无法访问后端的接口,今天小编今天就给大家说说这个跨域问题。什么是跨域? 跨域是指的不同域名之间互相访问。跨域指的是浏览器不能执行其它网站的脚本。它是由浏览器的同源策略造成的,是浏览器对 JavaScript 施加的安全措施。 例如:如果在 A 网站中,我们希望使用 Ajax 来获得 B 网站中的特定内容,如果 ...
2019-07-29 21:40:55
281
原创 Spring Boot(十 三)-- 异常处理
我们在开发中,碰到异常那就是家常便饭了。那么今天小编就给大家聊一聊 Spring Boot 对异常的处理。 在小编的上一篇文章:Spring Boot(十 二)-- @ControllerAdvice注解的使用 ,中已经介绍了 SpringMVC 中 @ControllerAdvice 注解是如何处理异常的,但是这种方式是 SpringMVC 中就有的功能,今天小编就说说 Spring ...
2019-07-29 16:49:38
346
原创 Spring Boot(十 二)-- @ControllerAdvice注解的使用
@ControllerAdvice 这个注解乍一看,咋这么有点熟悉,和 @Controller 咋这么像啊?没错,@ControllerAdvice 这个注解就是一个增强版的 @Controller 。那么我们今天要了解的这个注解有什么用呢?功能如下:1、全局异常处理2、全局数据绑定3、全局数据预处理注意: 这个注解并不是 Spring Boot 中特有的,这个注解是 Sp...
2019-07-27 21:45:59
1119
原创 Spring Boot(十 一)-- 静态资源的访问
还记得我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置吗?我们学习了 Spring Boot 之后,那么在 Spring Boot 中的静态资源是如何处理的呢?今天小编就通过这篇文章,给大家介绍一下 Spring Boot 中的静态资源。回顾 我们首先回顾一下在 SSM 中是如何处理静态资源问题的。一般来说,我们可以通过<mvc:resources />...
2019-07-26 19:11:24
276
原创 Spring Boot(九)-- 自定义一个 starter
SpringBoot 项目就是由一个一个 Starter 组成的,一个 Starter 代表该项目的 SpringBoot 起步依赖,除了官方已有的 Starter,如果你需要将自己的项目支持 SpringBoot,那么就需要把它制作成一个 Starter。这篇文章小编将依据 SpringBoot 的自动化配置原理,开发一个属于自己的 Starter。自定义自己的 Starter 所谓的...
2019-07-25 21:50:07
191
原创 Spring Boot(八)-- 整合 Jsp
前面小编介绍了 Spring Boot 整合 Freemarker 和 Thymeleaf,由于 Jsp 是我们 Java 最基础的页面模板,Spring Boot 也是支持的,只是使用起来还是比较麻烦的。下面小编就以本文介绍 Spring Boot 整合 Jsp 。Jsp简介 JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技...
2019-07-25 13:50:06
191
原创 Spring Boot(七)-- 整合 Freemarker
小编在上篇文章已经介绍了 Spring Boot 整合 Thymeleaf ,由于在开发中,还是有部分公司使用的是 Freemarker 作为前端页面模板,所以这篇小编将介绍 Spring Boot 整合 Fremarker 。 Spring Boot 整合 Freemarker 还是非常容易的,步骤和整合 Thymeleaf 一样,Spring Boot 也是支持 Freemarker ...
2019-07-24 21:37:23
168
原创 Spring Boot(六)-- 整合 Thymeleaf
随着 Spring Boot 的出现,前后端分离开发逐渐成为主流,这个时候我们开发时就不需要后端页面模板。但还是有些公司在使用前后端不分离的开发,这时候我们就需要使用到后端页面模板。然而,Spring Boot 也支持页面模板。 Spring Boot 在早期是支持 Velocity 作为页面模板,现在的 Spring Boot 已经不再支持 Velocity 作为页面模板了,此刻主要支持...
2019-07-24 14:58:34
446
原创 Spring Boot(五)-- profile配置
我们在使用 Spring 时候已经有了解过 profile 的使用,至于 profile 有什么用呢? 我们在真正开发中,是存在开发环境、生产环境、测试环境等。由于这些环境的之间的切换配置是非常繁琐的,今天小编介绍的 profile 很好的解决了这个问题: 我们在自己的项目中 resources 目录下,创建我们需要的环境的配置文件,这里小编就创建两个环境进行切换:开发环境:appl...
2019-07-24 10:30:52
235
原创 Spring Boot(一)-- 第一个Spring Boot应用程序
Spring Boot介绍 Spring Boot 可以轻松创建可以运行的独立的,基于生产级Spring的应用程序。大多数Spring Boot 应用程序需要非常少的 Spring 配置。 我们可以使用 Spring Boot 创建可以使用java -jar或更多传统战争部署启动的Java应用程序。官方还提供了一个运行“spring脚本”的命令行工具。Spring Boot 的特点:...
2019-07-23 21:56:52
503
原创 Spring Boot(三) -- Web 容器配置
我们知道,一个项目的启动是需要 web 服务器的,我们一般使用的web 服务器是 tomcat ,而我们创建的 Spring Boot 项目,我们都是直接启动即可,这并不是说我们创建的 Spring Boot 项目没有 web 服务器,而是在它的内部已经集成了 tomcat 服务器: 我们之前在使用 tomcat 服务器时,容器配置我们可以在 server.xml 文件中进行配置,这时候...
2019-07-23 16:17:17
244
原创 Spring Boot(二) -- banner 配置
banner 配置,无关紧要的配置,就是我们在启动项目时显示的 log ,如下:自定义横幅 我们可以通过向banner.txt类路径添加文件或将spring.banner.location属性设置为此类文件的位置来更改启动时打印的横幅。 通过向 banner.txt 类路径添加文件:我们在 resources 目录下自定义添加 banner.txt 文件,内容自定义,小编随便定义的...
2019-07-23 15:12:57
404
原创 红黑树 -- 红黑树介绍
红黑树(Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它在1972年由鲁道夫·贝尔发明,被称为"对称二叉B树",它现代的名字源于Leo J. Guibas和Robert Sedgewick于1978年写的一篇论文。 R-B Tree 全称是 Red-Black Tree ,又称为“红黑树”,它一种特殊的二叉查找树。红黑树...
2019-07-22 21:30:14
457
原创 红黑树 -- 平衡二叉树
平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。二叉树 二叉树是每个节点最多有两个子树的树结构,如下图: 二叉树有五种基本形态:...
2019-07-22 14:44:04
258
原创 红黑树 -- 树的概述
红黑树(Red Black Tree) 是一种自平衡二叉查找树,既然是一种自平衡二叉查找树,那么,我们就一步一步的了解,下面小编就先解释什么是树。树的概述 树具有的特点:1、每个节点有零个或多个子节点2、没有父节点的节点称为根节点3、每一个非根节点有且只有一个父节点4、除了根节点外,每个子节点可以分为多个不相交的子树如下图: 名词理解:二叉树:二叉树是每个节点最...
2019-07-22 14:12:59
207
2
原创 二分查找(折半查找)
使用二分查找的前提: 只能对已经进行排好序的数列进行查找。思想:每次都实现查找数据中的中间那个元素,将我们需要查询的数据和中间的元素进行比较。1、首先定义数列中的最小索引和最大索引2、计算出中间索引3、用中间索引所对应的数值和要查询的数进行比较 数值 = 查找的数 返回中间的索引 数值 > 查找的数 在左边查找 数值 < 查找的数 在右边查找4、重复第...
2019-07-20 16:35:36
182
原创 选择排序法详解
选择排序法思路:在要排序的一组数列中,从最左边开始,依次和后面的每个元素进行比较,小的数往左移动,每趟比较完后,这一组数列中最小的数出现在最左边。选择排序分析: 我们先判断要排序的数列需要排序几趟,这里小编同样也随便定义一个数列:{44,88,111,77,22} ,我们就以这个数列为例子: 我们不难看出,这个数列有 5 个元素,我们则需要进行 4 趟排序:规律:1、一共比较...
2019-07-20 14:59:43
1737
原创 冒泡排序法详解
冒泡排序法 冒泡排序法思想:在要排序的一组数列中,进行从左到右对相邻的两个数依次进行比较和调整。大的数往右放,小的数往左放。即:每当两个相邻的数比较后,发现它们的排序与排序要求相反时,就将它们的位置互换。冒泡排序分析: 首先我们先我们要排序的数列需要排序几次,这里小编就随便定义一个数列:{22,66,88,55,11} ,我们就以这个数列为例子: 我们不难看出,这个数列有 5 个...
2019-07-20 10:24:11
1076
原创 Git介绍(五) -- 有关分支中的小问题
问题描述 我们在开发过程中,一个项目肯定不止一个分支,这里小编就以 master 、blog 两个分支为例,我们先在 master 分支中编辑 a.txt ,由于紧急情况 a.txt 文件还没编辑好,另外分支出现问题,需要切换到有问题的分支进行处理 ,但是我们切换到 blog 分支中,这时我们查看 blog 分支中的 a.txt 中的内容也变了,如下:解决问题 方案一: 这种方案就是...
2019-07-18 11:28:40
193
原创 Git介绍(六) -- 关联远程仓库
Git 是一个分布式版本控制工具,虽然远程仓库不是必须的,但是我们在开发中为了团队便于开发,我们还是在公司内部搭建一个远程仓库,本章小编将以 GitHub 作为我们的远程仓库来操作。讲解到这里,如果有兴趣的朋友向继续向下学习的话,请先注册一个 GitHub 账号以便学习。配置 SSH KEY 关联 GitHub远程仓库 SSH KEY 的配置不是必须的,但是不配置的话我们只能使用 H...
2019-07-17 20:05:27
261
原创 Git介绍(四) -- 分支管理
Git 中的分支管理相比于 SVN 中的分支管理强大太多了,至于强大到什么地步,那么本章将进行对 Git 中的分支管理讲解。分支的作用 我们在开发过程中肯定不是一个人在开发,一个项目的开发是由一个团队进行开发的,这是就体现了版本控制工具中分支的作用了。例如:我们一个项目在 1.0 版本的时候上线了,这时候 1.0 版本虽然上线了,我们后期还是要对整个项目进行版本升级、版本维护。也就是说...
2019-07-17 11:21:25
143
原创 Git介绍(三) -- 撤销管理
使用 Git 的理由就是 Git 拥有最强大的撤销、版本回退功能,能够让我们在开发中随意的回退到任何一个时间点的版本。 本章小编将从如下三个方面介绍 Git 的撤销功能:1、工作区中的代码想撤销2、从工作区中 git add 到暂存区的代码想撤销3、从暂存区中 git commit 到本地仓库的代码想撤销...
2019-07-16 09:53:45
258
原创 Git介绍(二) -- 基本操作
根据上篇文章的介绍,我们已经在自己的电脑上安装了 Git 并且配置了使用前的个人配置,那么本章接着介绍 Git 的基本概念以及基本操作。工作区和暂存区 Git 和 SVN 有很大的区别,Git 中引入了暂存区/缓存区(Stage / Index)的概念,如下:1、工作区:就是我们能看到的工作目录,也就是我们的本地的文件夹。2、我们在工作区的文件夹需要通过 git add 命令先...
2019-07-15 21:14:37
163
原创 ActiveMQ发布订阅模式
Topic主题发布和订阅消息根据前文介绍的消息传递都是点对点的消息,即一个生产者发送的一条消息只能被一个消费者消费,然后就移除了。而topic模式一条消息可以被多个消费者订阅,关系如下:定义生产者public class TopicPublisherDemo { //创建 activemq 的连接账号 private static String userName = ...
2019-07-01 17:19:27
341
原创 ActiveMQ 消息传递
根据上文的 ActiveMQ 的简介以及 Linux 系统中的安装,下面,我们来看 ActiveMQ 的消息的传递。前提 在介绍 ActiveMQ 之前,我先介绍一下 ActiveMQ 不同版本对于处理对象消息的不同。ObjectMessage对象依赖于marshal / unmarshal对象有效负载的Java序列化。由于恶意有效负载可以利用主机系统,因此通常认为此过程不安全。这就是...
2019-07-01 14:47:30
480
原创 ActiveMQ简介以及安装教程
在介绍 ActiveMQ 之前,我们先了解一下什么是 JMS 。什么是 JMS ? JMS 全称:Java Message Service 中文:Java消息服务。 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持JAVA应用程序开发。在J2EE中,当两个应用程序使用JMS进行通信时,它们之...
2019-06-27 19:04:32
861
原创 CentOS7与CentOS6区别总结
小编之前使用的 Linux 系统 一直是CentOS6,也没太注意其他的要求,但是前段时间,用了这么久的 CentOS6,见到了一个朋友用的是CentOS7,心血来潮就尝试了一下,感觉两个版本差距太大,所以小编考虑要出一篇这两个版本的区别,直到今天才能与大家见面。系统初始化技术Sysvinit技术Upstart技术Systemd技术Sysvinit技术特点:1.系统第...
2019-06-24 22:53:03
2437
原创 Java 异常分析
相信各位朋友对 Java 中得异常并不陌生,因为作为一名合格得攻城狮,处理异常可以说是家常便饭了,不过,一些大佬对于处理异常是非常轻而易举,手到擒来。但是对于一些刚入门得码农还是比较困难的,今天,小编就整体的来说一下异常机制吧,希望能帮到各位小白,如有不当之处还请大佬指点一二。Java 异常类结构体系图既然想要了解异常,那么我们首先要了解一下,异常的结构体系:Java异常分析 Thr...
2019-06-24 20:08:09
276
原创 Java 原型模式(克隆模式)
Java 的设计模式有 23 种,前段时间小编已经介绍了单例模式,由于我们在学习 Spring 的时候在 bean 标签的学习中碰到了今天要讲的原型模式,那么小编就已本文来介绍下原型模式。原型模式 在java中我们知道通过new关键字创建的对象是非常繁琐的(类加载判断,内存分配,初始化等),在我们需要大量对象的情况下,原型模式就是我们可以考虑实现的方式。 原型模式我们也称为克隆模式,...
2019-06-21 22:12:53
497
原创 Java 内存泄漏
Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。 随着越来越多的服务器程序采用Java技术,例如JSP,Se...
2019-06-18 11:05:27
232
原创 ArrayList 源码分析(JDK1.8)
ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、...
2019-06-14 20:06:12
254
原创 Spring事务管理全面分析
本次小编将分享 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。希望通过对本章的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。前提条件本文章需要您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做详细解释。另外,您最好掌握数据库的基础知识...
2019-06-12 20:34:14
3230
2
原创 线程面试题总结
线程面试题总结什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,可以使用多线程对进行运算提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒进程和线程的区别进程是程序运行和资源分配的基本单位一个程序至少有一个进程,一个进程至少有一个线程一个进程下也可以有多个线程来增加程序的执行速度进程在执行过程中...
2019-06-11 00:04:49
2032
1
原创 MyCat的分片规则(一)
MyCat的分片规则(一)概述 什么是 MyCat 的分片规则呢? 使用了 MyCat 之后,我们所有的数据库操作都是针对 MyCat ,增删改查都是针对 MyCat 进行操作,MyCat 会将我们的 SQL 进行分析,分析之后,会根据提前配置好的规则将 SQL 转发到对应的 MySQL 上面去执行。这个提前定义好的规则就就叫做 分片规则。 在数据切分处理中,特别是水平切分中,中间件最终...
2019-06-09 12:53:39
578
原创 MySQL 读写分离环境搭建(主从复制)
MySQL 读写分离环境搭建(主从复制) 搭建主从复制,也就是我们所说的数据库读写分离环境的搭建,我们首先要有两个MySQL,根据上文我们介绍了CentOS7下安装MySQL5.7教程,我们首先要在自己电脑的虚拟机里有两个Linux系统,并且,每个系统中,都有MySQL。然后,我们今天就介绍一下MySQL的读写分离环境的搭建。搭建读写分离环境前的准备准备两台机器,这里小编的两台机器IP...
2019-06-08 11:17:42
388
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人