自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 No tracked branch configured for branch 分支名 or the branch does

本地分支关联远程分支

2022-11-23 19:17:41 488 1

原创 git回滚

git回滚

2022-11-23 19:11:13 327

原创 初识希尔排序

希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本插入排序存在的效率问题如果已经排序的分组元素为{2,5,7,9,10}未排序的分组元素为{1,8}那么下一个待插入元素为1,我们需要拿着1从后往前,一次和10,9,7,5,2进行位置交换,才能真正完成插入。如果我们要提高效率,就是把1放到更前面的位置,例如直接将1放到2前面,这样可减少交换次数。下面我们来看看希尔排序将数组{9,1,2,57,4,8,6,3,5}正序希尔排序原理1、选定一个增长量,按照增长量h作为数

2021-06-18 23:55:14 564 2

原创 初识插入排序

插入排序的工作方式非常像人们排序一手扑克牌一样,开始时,我们的左手为空并且桌子上的牌面朝下。然后我们每次从桌子上拿走一张牌,并将它插入左手的正确位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。将数组 {12,11,10,9,8,7,6},正序原理1.把所有的元素分为两组,已经排序的和未排序的2.找到未排序的组中的一个元素,向已经排序的组中进行插入3.倒叙遍历已经排序的元素,一次和带插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置没

2021-06-10 20:29:15 150 1

原创 Comparator.reverseOrder()为什么就反转了

public class Selection { public static void main(String[] args) { Integer arr[] = {4, 6, 8, 7, 9, 2, 10, 1}; sort(arr, Comparator.reverseOrder()); System.out.println(Arrays.toString(arr)); } /** * 自定义排序 *

2021-06-10 18:57:41 2045

原创 初识选择排序

将数组{4,6,8,7,9,2,10,1},正序排列原理1.在每一次遍历过程中,都假定第一个索引处的元素是最小值,和其他索引初的值依次进行比较,如果假定的索引处的值大于其他某个索引初的值,则假其他某个索引初的值为最小值,最后可以找到最小值所得的索引2.交换第一个索引处和最小值所在的索引处的值Selection中包含2个方法,默认正序sort(Comparable[] arr)和自定义顺序sort(T[] arr,Comparator comparator)public class Selecti

2021-06-09 23:41:59 62

原创 初识冒泡排序

将{6,5,4,3,2,1}从小到排序冒泡排序原理:1.相邻两个元素做比较,如果前一个元素比后一个元素大,则交换两个元素的位置2.每对相邻的的两个元素做同样的工作,从开始的第一个元素到结尾的最后一个元素,最终最后一个位置的元素就是最大的3.在原数据的基础上,第一次冒泡最大的到最后一位,在第一次冒泡的基础上,也就是6可以不参加运算,第二次冒泡第二大的到倒数第二位在第二次冒泡的基础上,也就是5,6可以不参加运算,第三次冒泡第三大的到倒数第三位在第三次冒泡的基础上,也就是4,5,6可以不参加运算,第

2021-06-09 22:42:33 94

原创 this.show(object)、super.show(object)、this.show((super)o)、super.show((super)o)

class A { public String show(D obj) { return ("A and D"); } public String show(A obj) { return ("A and A"); }}class B extends A{ public String show(B obj){ return ("B and B"); } public String show(A

2021-06-08 16:59:34 366

原创 Comparable和Comparator排序

一般情况下我们都是对数字或者字符串排序,如何对对象进行排序呢?例如Order对象Student对象,那么就需要Order对象、Student对象实现Comparable接口按照年龄从大到小排序@Getter@Setter@ToStringpublic class Student implements Comparable<Student> { private int age; private String name; @Override publi

2021-06-08 14:54:51 233

原创 为什么二叉树不适合做索引

如果单从算法逻辑上讲,二叉搜索树的查询速度非常快,比较次数也是最少的,但是这有一个前提,就是所有的数据都必须在内存中查找现实问题:磁盘读写速度数据库的索引是存储在磁盘上的,如果数据量不大可以全部装载到磁盘中,如果数据量比较大,无法将所有的数据全部的索引数据一次性装载到内存的,能做是逐一加载每个磁盘页,这里的磁盘页对应着搜索树的节点,如果用二叉搜索树的话情况会非常糟糕举例说明从高度为4的二叉搜索树中查找值为8的节点首先找到值为9的根节点,8比9小,所以我们要找的节点应该在根节点的左子树中,找到值为

2021-06-08 00:02:57 500 4

原创 初识算法-空间复杂度

计算机的软硬件都经历了一个比较漫长的历史,作为为运行提供环境的内存,从512k 、1M、2M、4M…8G、16G、32G,因此,早期算法在运行过程中对内存占用情况也是一个经常要考虑的问题,我们用算法的空间复杂度来描述算法对内存的占用情况java中常见的内存占用计算机访问内存的方式都是一次一个字节...

2021-06-05 17:26:51 118 1

原创 初识算法-时间复杂度

什么是算法官方解释:算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法解决问题的策略机制,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出大白话根据一定的条件,对一些数据进行计算,得到需要的结果举例1.从东北到北京,可以做火车、汽车、飞机等等交通工具,但是不同交通工具所带来的时间成功和金钱成本是不一样的2.买一套房子,一次性付清还是贷款,所带来的后续生活所带来的压力和首次支付的金额的压力是不一样的。一个优秀的算法追求两个目标1.花最少的时间2

2021-06-04 17:46:38 737

原创 数据结构-1

什么是数据结构官方解释:数据结构是一门研究非数值计算的程序设计问题,以及他们之间的关系和操作等想问题的学科大白话:把数据元素按照一定关系组织起来,用来组织和存储数据数据结构的分类1.逻辑结构2.物理结构什么是逻辑结构逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构。按照对象中的数据元素之间的相互关系分类。逻辑结构分类集合结构集合结构中数据元素除了属于同一个集合外,他们之间没有任何其他关系线性结构线性结构中数据元素之间存在一对一的关系树形结构树形结构中数据元素之间存在一

2021-05-17 14:07:12 49

原创 线程简介

备注:java模拟出来的多线程都是相对单核来说的,真正的多线程是指多个核。一边上厕所一边玩手机(相当于多核),真正意义上实现了在同一时刻干多个进程Process电脑中的应用程序就是进程,例如qq音乐、idea、微信。。。等等,进程中有若干个线程进程是系统分配的资源,真正执行代码的是线程线程Thread单线程单线程一边吃饭一边玩手机,其实在某一瞬间只能干一件事,只是切换的速度很快,看起来像两件事一起做(单核创建出多个线程一会干这个一会干那个)线程就是独立的执行路径在程序运行时,即

2021-04-21 16:04:14 59

原创 Error attempting to get column ‘xxx‘ from result set. Cause: java.sql.SQLDataException

去mapper.xml中查看 resultType返回的类型错了Error attempting to get column 'signature' from result set. Cause: java.sql.SQLDataException: Cannot determine value type from string 'xxx'\n; Cannot determine value type from string 'xxxx'; nested exception is java.sql.S

2021-04-20 17:55:36 1365

原创 jdk1.8新特性

java8(jdk1.8),是java语言的一个主要版本,oracle公司于2014年3月18日发布的。支持Lambda表达式函数式接口新的Stream API新的日期APILambda表达式定义Lambda表达式:特殊的匿名内部类,语法更简洁,允许把函数作为一个方法的参数Lambda表达式语法<函数式接口> <变量名> = (参数1,参数2...)-{ 方法体;}Lambda表达式总结箭头将表达式分为两部分,左侧为参数,右侧为方法体形参类型可

2021-04-18 22:26:31 151 1

原创 用ThreadLocal解决SimpleDateFormat线程不安全问题

import java.text.*;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class DataUtils { private DataUtils() { } /** * key为p

2021-04-17 12:22:01 234

原创 javaIO模型

bio模型(block-io)bio模型又叫同步阻塞io二狗在向老师体温的时候,其他三位同学只能等待!二狗的问题解答完成之后,才能继续解答其他同学。同步:老师在同一时间只能给一位同学解答问题阻塞:如果二狗突然陷入沉思,没有和老师说话,那么老师只能等待。阻塞的过程是不占用系统资源的当客户端发起请求,服务端接收到请求开始调用操作系统api,如果无数据则阻塞(不占用系统资源),对于服务端来说其他客户端请求也接收不到,当有数据的时候,开始读数据,并响应给服务端。上面的代码,服务端在第一个客

2021-04-12 22:34:08 77

原创 uri和url的区别

uri资源文件精准定位,在请求行中并没有uri这个属性实际上是url中截取一个字符串,这个字符串格式"/网站名/资源文件名"uri用于让http服务器对被访问的资源文件进行定位

2021-04-07 21:51:53 90

原创 HttpServletRequest初识

介绍1.HttpServletRequest接口来自servlet规范,存在于tomcat的servlet-api.jar2.由tomcat负责提供作用1.读取http请求协议包中请求行、请求头、请求体信息2.可以代替浏览器向http服务器申请资源调用

2021-03-26 22:52:40 112

原创 数组里面的内容也为空怎么判断{“”}

public static void main(String[] args) { String a = ""; String[] a1 = a.split(","); System.out.println(ArrayUtil.isAllEmpty(a1)); } public static boolean isEmpty(Object obj) { if (null == obj) { return true; } if...

2021-03-25 17:32:41 603

原创 单例模式

package singleton;/** * 单例模式的特点 * 1.内存中只有一个实例 * 2.只能自己创建自己的实例 * 3.给其他对象提供自己的实例 */public class Singleton1 { private static Singleton1 singleton = new Singleton1(); private Singleton1(){ } public static Singleton1 getInstance(){

2021-03-23 20:21:36 52 1

原创 java字符串拼接

public static void main(String[] args) { long current1 = System.currentTimeMillis(); String result = ""; for (int i = 0; i < 100000; i++) { result += "六六六"; } long current2 = System.currentTimeMill...

2021-03-23 19:28:22 60

原创 HttpServletResponse初识

介绍1.HttpServletResponse接口来自Servlet规范,存在于tomcat的servlet-api.jar2.由tomcat负责提供功能1.将service方法的执行结果以二进制形式写入到响应体中2.设置响应头中的content-type属性值,从而控制浏览器使用对应编译器将响应体二进制数据编译为文字、图片、视频、命令3.设置响应头中的location属性,从而控制浏览器向指定服务器发送请,重定向。生命周期:诞生: 服务器端接收到请求的时候,创建。销毁: servic

2021-03-22 23:02:12 405

原创 动态代理

职责清晰:房东收钱,中介去找人,租客住宿高扩展性:中介可以以任何形式宣传智能化:中介可以过滤租客

2021-03-22 15:28:20 103 1

原创 idea提示Cannot find declaration to go to

2021-03-10 22:46:38 270

原创 观察者模式

定义当触发某些事件执行的时候,通知其他对象执行相关操作优点建立了一套触发机制缺点浪费时间容易死循环使用场景项目初始化歧义mq是异步的观察者模式是同步的案例

2021-03-09 20:29:41 3797

原创 单例模式

什么是单例模式:整个项目中只有一个对象的类特点:1.内存中只有一个实例2.只能自己创建自己的实例3.给其他对象提供自己的实例好处:节省内存资源应用场景如果这个类用不到优点浪费内存如果张三和李四一起调用Singleton2.getInstance()会有线程安全问题存在性能问题,因为加上synchronized各个线程是串行的依然存在线程安全问题,因为张三运行到 synchronized (Singleton4.class),线程的执行权利被李四抢走了,执行了singleton =ne

2021-03-09 14:13:50 51

原创 设计模式的分类

1.创建型2.结构型3.行为型

2021-03-08 16:53:32 34

原创 面向对象编程常用的设计原则

1.单一职责原则(Single Responsibility Principle):一个类只做一类原则2.开闭原则(Open-closed Principle):对扩展开放,对修改关闭,也就是在不修改源码的情况下改变对象的行为。3.里氏替换原则(Liskov Substitution Principle):一个可以接受父类对象的变量,必然可以接受一个子类对象,是开闭原则的实现。Faster f = new Faster();Faster f = new Son();4.依赖倒置原则(Depende

2021-03-07 23:13:40 115

原创 如何把本地项目托管github

1.现在github上创建一个空的仓库2.git clone 项目地址3.将项目代码复制到clone出来得文件夹中4.git add . 将项目文件夹中的所有文件提交到暂存区5.git commit -m ‘注释’ 将暂存区的文件提交到工作区6.git push 将工作区的文件推送到github...

2021-03-03 21:29:18 65

原创 warning: LF will be replaced by CRLF in .idea/compiler.xml. The file will have its original line end

因为各个操作系统换行不一样造成的虽然没啥影响,但是看着碍眼git config core.autocrlf false将core.autocrlf配置为false,即不开启自动转换功能。

2021-03-03 12:26:43 338

原创 BigDecimal.ROUND_UP保留0为小数,向上取整

public static void main(String[] args) { int i = new BigDecimal(100).multiply(new BigDecimal(0.01)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_UP).intValue(); System.out.println(i); }运行结果:3 double v = 100 * 0...

2021-02-22 19:53:12 4463

原创 门面模式

门面模式又称外观模式特点封装核心外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。典型应用场景【强制】应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。import org.slf4j.Logger;import org.slf4j.LoggerFactory;private static final Logger logger = Logg

2021-02-16 00:05:44 138 1

原创 静态代理

静态代理的实现步骤首先要抽象出一个被代理类接口,被代理类实现该接口。代理和被代理类实现相同的接口**注:**被代理类又叫委托类、目标类优点解耦缺点因为代理类和代理类实现了相同的接口,存在重复代码如果接口增加一个方法,除了所有被代理类需要实现这个方法之外,还需要所有的代理类也实现这个方法,增加了代码的复杂度.举例/** *小明和小红都要将自己的房子出售或者出租 抽象出一个接口 */public interface House { public void sell();

2021-02-14 20:18:27 138 1

原创 策略模式

策略,指的是可以实现目标的方案集合public interface IStrategy { void operate();}public class AStrategy implements IStrategy { public void operate() { System.out.println("A策略"); }}public class BStrategy implements IStrategy { public void opera

2021-02-13 14:33:27 55

原创 工厂方法模式和简单工厂方法模式

概念在Java设计模式中使用工厂的概念,那就是生成对象的地方了。作用解耦,调用方和具体的目标类进行了解耦,调用方根本就不知道需要创建那个对象,它只是提出了条件,然后工厂就可以根据给定的条件来决定创建哪一个对象。简单工厂方法模式简单工厂方法模式并不是23种设计模式中的内容简单工厂方法模式概念:所谓简单工厂方法模式,就是为目标类创建一个工厂,当有多个目标实现的时候,在这个工厂内部进行逻辑判断来根据条件创建不同的目标实例。public interface Color { String

2021-02-13 00:04:02 143 1

原创 导入tomcat源码:程序包aQute.bnd.annotation.spi不存在

<dependency> <groupId>biz.aQute.bnd</groupId> <artifactId>biz.aQute.bndlib</artifactId> <version>5.2.0</version> <scope>provided</scope></dependency>

2021-02-05 14:15:01 2802

原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):XXMapper.XXMehtod

1.看看mapper.xml有没有报错2.看看maven项目clean、compile、package、install

2021-01-27 00:51:44 65

原创 初识Servlet

定义servlet规范是javaee规范的一种作用:servlet规范指定[动态资源文件]开发步骤servlet规范指定http服务器调用动态资源文件规则servlet规范指定http服务器管理动态资源文件实例对象的规则什么是动态资源文件实现Servlet接口的类叫做动态资源文件(javax.servlet.Servlet)tomcat的lib文件夹下的servlet-api.jarServlet接口有哪些抽象方法public interface Servlet { void

2021-01-26 23:52:35 80

空空如也

空空如也

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

TA关注的人

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