- 博客(65)
- 问答 (3)
- 收藏
- 关注

原创 Spring boot + Mybatis 从零开始搭建个人博客系统(一)——初言及目录
☁️ 前言想了想真的是好久不写博客了,最近一直在搭建自己的个人博客,出现的一些问题一般都记在纸上,也没有真正的把问题系统的记录,直到现在个人博客系统基本搭建完毕,才有时间一点点整理自己遇到的问题,那么废话不多说,开始介绍项目。
2019-04-23 16:55:22
1054
4
原创 纯文字图片缩小后像素点丢失的一种逃课式解决办法(Android)
最近遇到一个需求,是当接收到一个尺寸很大的纯文字图片时,需要在屏幕上缩小若干倍显示出来且不失真。而一般 Android 对图片的处理方法是邻近采样或者双线性采样,下面对这两种方法一一进行测试,观察图片缩小后的变化(下面会讲一下几种图像处理方法的差异,不感兴趣的可以直接跳到解决方法)
2022-04-20 16:29:06
4490
原创 Java8新特性——Stream流看这一篇就行辣
作为Java8添加的一个新特性,Stream流提供了一种声明的方式来处理数据。其基于函数式编程思想,将复杂的语句代码通过简洁的方法调用来表示,让程序员写出的代码更加的高效、简洁并具备可读性。
2022-03-24 15:37:15
1579
原创 每日一题——寻找小于目标数的最大单调递增数
题目Leetcode 738:给定一个非负整数N,找出小于或等于N的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字x和y满足x <= y时,我们称这个整数是单调递增的。)例如:N = 352,则满足的整数结果为:349思路一分离每个位置的数字,将其转化为字符类型进行逐位比较代码/** * @author Seaguller * @date 2021/7/19 09:35 * @Description */public class
2021-07-19 10:44:14
521
原创 MongoDB初接触——基础介绍篇
(本文大部分内容来自百度百科及MongoDB菜鸟教程)基本概念MongoDB是一个基于分布式文件存储的数据库,他是一个介于关系数据库和非关系数据库之间的产品,由C++语言编写,支持的数据结构为类似JSON的BSON格式,支持对数据建立索引。基本特点面向集合存储支持查询与动态查询支持索引,完全索引,包含内部对象支持复制和故障恢复使用高效的二进制数据存储,包括大型对象(如视频等)自动处理碎片持 Golang,RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言文件存储格式为B
2021-07-12 16:14:53
148
原创 Mybatis实现Mysql数据库存在就执行指定操作,不存在就插入(纯注解)
存在就更新,不存在就插入可以使用INSERT...ON DUPLICATE KEY UPDATE语句。先来简单的看一下表的结构:列名类型idVARCHARstu_idVARCHARnameVARCHARpasswordVARCHAR其中id是主键。那么对于user表,如果我们需要查询某条数据存不存在,存在的话更新,不存在的话插入,我们一般...
2019-11-30 13:48:51
2279
1
原创 剑指Offer之每日五道算法题(Java)——第三天
面试题08问题描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。牛客网——二叉树的下一个节点测试用例实现思路先总结出所有可能发生的情况,再根据这些情况来写代码,中序遍历下一节点所有情况如下:节点存在右子树:节点的右孩子存在左子树:则沿着右孩子的左指针一路遍历下去到叶子节点,就是我们要找...
2019-11-18 20:55:37
369
1
原创 剑指Offer之每日五道算法题(Java)——第二天
面试题22问题描述输入一个链表,输出该链表中倒数第k个结点。牛客网——链表中倒数第k个节点测试用例我的思路设置一个指针来遍历链表,同时设置一个指针指向遍历指针的第前k个节点。比如n指针(遍历指针)和p指针初始化指向链表头部。n指针从链表头部向后遍历,同时设置一个计数器记录移动次数。当计数器的值等于k时,让p指针同步开始移动(此时p指针指向的节点即为n指针的第前k个节点)当n指...
2019-11-13 17:30:07
227
原创 剑指Offer之每日五道算法题(Java)——第一天
面试题24问题描述输入一个链表,反转链表后,输出新链表的表头。反转链表——牛客网测试用例我的思路在保留头指针的情况下,用三个指针分别指向中间的节点与前后节点,像这样:反转中间指针的指向后,整体后移一格,变成这样:(这个A节点是头结点,所以不用管A的指向,最后将A结点指为null即可。)对上述操作进行循环,直到n.next指向null(也就是到了尾结点)为止,此时...
2019-11-09 11:49:13
405
原创 Java 设计模式通关之路——单例模式
单例模式是什么?单例模式(Singleton)通常来讲,就是让一个类仅仅只有一个实例,并提供一个全局访问点。如何控制让一个类只能有一个实例对象呢?全局变量?不行,虽然全局变量可以保证一个对象被访问,但是还是无法去阻止你实例化多个对象。既然外部无法进行控制,那就交给类自己维护吧,而外部仅仅只是起一个“通知的作用”,由类自己负责保存它的唯一实例,并对外提供一个访问该实例的方法。单例模式有三个特...
2019-11-08 14:14:15
226
原创 JDK1.8集合框架源码阅读(二)——Iterable接口
功能简介Iterable接口作为Collection的根接口,负责实现所有集合类的for-each语句功能。其内部维护了一个返回迭代器的方法,所有继承该类的集合类都可以实现自己的迭代器。(详见 Java 设计模式通关之路——迭代器模式)Iterable类定义如下:package java.util;public interface Iterator<E> { boo...
2019-11-05 22:21:14
180
原创 Java 设计模式通关之路——迭代器模式
什么是迭代器模式?我们知道,Java中对于集合的遍历提供了一种很简单的实现——Iterator类。一般我们对集合遍历时,都会做如下程序:List<Integer> arrayList = new ArrayList<>();arrayList.add(1);arrayList.add(2);arrayList.add(3);Iterator<Integ...
2019-11-04 20:44:01
161
原创 JDK1.8集合框架源码阅读(一)——总览
集合架构图图片摘自 基于jdk8的集合源码学习(一):第一篇集合体系一览图主要模块从架构图上可以看到,主要分为两大类:以Collection为主的集合结构,和以Map为主的键值对结构。而Collection又继承了Iterable类,其主要实现对for-each语句的支持。Collection的实现有三种:List、Set和Queue。List是一个有序的可重复集合,可在任意位置...
2019-11-03 14:48:32
340
原创 浅谈 Java 序列化(涉及部分源码分析)
序列化是什么?用一句话来概括:序列化是用来保存对象状态的一种机制。什么是对象的状态?比如现在有一个类:class A { int a; int b; A(int a, int b) { this.a = a; this.b = b; }}然后我们去声明了一个类A的实例:A a = new A(1, 2);现在这个对象中实例变量的值为1和2,这就是对象的状态。对...
2019-11-02 17:04:37
440
原创 Java 虚拟机初探(三)—— 堆
tips:本篇文章基于Hotspot JVM与JDK 1.8所撰写。内存区域我们首先来根据一张图初步了解一下内存区域的划分:因为我发现每一版块都有好多东西要说,故把各区域单拿出来一一说明。下面介绍的是主管JVM存储的区域——堆Java 堆我们常说:栈管运行,堆管存储。既然管存储,那么其必然是线程共享的。Java在运行时创建的所有类实例对象和数组都存储在堆中,堆也是垃圾收集器进行垃圾...
2019-10-24 09:14:56
359
原创 Java 代码块究竟是个啥?
前言对于Java初学者来言,一些代码真是整的我们云山雾罩的……有这样的:public class Test { static { System.out.println("static yo~"); } }这样的:public class Test { { System.out.println("oh yo~"); ...
2019-10-18 19:22:15
1718
原创 记一次 Redhat 6 yum无法使用的问题
前言实验要用yum方式安装wireshark,提供的虚拟机linux版本是Redhat 6。执行yum -y install wireshark wireshark-gnome命令进行安装,提示:No package xxxxx available(后来尝试过安装、更新等,都是报这个命令)于是查找原因,发现是因为Redhat自带的yum需要进行注册,所以我们只能使用免费的CentOS的yu...
2019-10-17 17:32:03
537
原创 Java 虚拟机初探(二)—— 虚拟机栈
tips:本篇文章基于Hotspot JVM与JDK 1.8所撰写。内存区域我们首先来根据一张图初步了解一下内存区域的划分:因为我发现每一版块都有好多东西要说,故把各区域单拿出来一一说明。下面介绍的是主管JVM程序运行的区域——栈。Java虚拟机栈(stack)每一条Java虚拟机线程都有自己私有的Java虚拟机栈,这个栈与线程同时创建,也就是说,虚拟机栈的生命周期跟线程是一样的。...
2019-10-15 19:17:56
677
原创 Java 中你可能没有注意到的一些事(持续更新中...)
垃圾回收垃圾回收器只释放经由new分配的内存。如果JVM并未面临内存耗尽的情形,他是不会浪费时间去执行垃圾回收的。初始化即使变量定义于方法体之间,仍旧会在任何方法(包括构造器)之前初始化。静态变量会比非静态变量提前初始化,并且只初始化一次。(局部变量不会被初始化)关于静态初始化static标明的属性在类加载时就同时加载了,它会逐层寻找基类。什么意思呢?举个例子:有一个bo...
2019-09-03 17:22:58
129
原创 Spring boot + Mybatis 从零开始搭建个人博客系统(四)——登录注册(后端)
这里是登录注册后端部分代码及思路,前端请访问:Spring boot + Mybatis 从零开始搭建个人博客系统(三)——登录注册(前端)数据表建立p.s. 很多人喜欢先建表再设计页面设计功能,但这一点很可能导致你后期为了功能而回来修改表,添加字段或删减字段,可能会给自己造成很大的麻烦,所以我建议这里先设计个人中心的页面,思考什么功能会用到用户表,我的用户表应该设计什么字段,这些字段应该含...
2019-04-28 18:12:01
1103
原创 数据库三大范式理解与Mybatis懒加载
前言在写用户权限对应关系的时候突然想到一个问题:一般我们设计用户权限表都是三个表,分别为用户表、权限表、用户权限关系表(简单的用户权限对应,不考虑角色关系)那么为什么必须要三个表而不能直接用用户表、用户权限关系表来实现呢?为什么非要权限表这个中间表呢?要解决这个问题,首先要了解数据库设计里面的三大范式。数据库三大范式第一范式第一范式(1NF)标明数据表中的每一列(字段)都应是不可再...
2019-04-26 21:15:22
1298
原创 Spring boot + Mybatis 从零开始搭建个人博客系统(三)——登录注册(前端)
页面设计注册登录前端前端样式部分建立在 amazeUI 基础上,如使用请先引入相关CSS与JSCSS与JS的引入我使用的是 BootCDN 作为CDN加速:<link href="https://cdn.bootcss.com/amazeui/2.7.2/css/amazeui.min.css" rel="stylesheet"><script src="ht...
2019-04-24 21:57:06
1562
原创 Spring boot + Mybatis 从零开始搭建个人博客系统(二)——项目起步
项目结构用 Spring Initializr 快速搭建项目,JDK版本为1.8,Spring boot 版本为1.5.9(2.0会出现莫名其妙的兼容问题,后续会逐渐向2.0过渡)Maven 引包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...
2019-04-23 19:41:23
1910
原创 关于笔记本自动睡眠更改设置无用的解决办法
问题起始:笔记本不知道从什么时候开始不知道为什么,只要处于不活跃状态,总是隔几分钟就自动睡眠,每次还要重输密码(烦的想要砸锅卖铁有木有=^=),改了显示设置也是麻油用,后来终于从贴吧大神那里找到了解决办法…解决办法:运行注册表管理器,win+r ,输入regedit.exe定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Pow...
2018-12-28 20:25:32
3864
原创 JS获取后台Model传值(使用Thymeleaf)
在Html中引用Thymeleaf:首先在头部<html>标签中引入Thymeleaf:<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">引入之后就可以使用嘞,在下面<body>标签中加入一个隐藏域:<b
2018-12-09 16:06:56
9755
原创 关于jQuery获取不到动态添加的元素节点的问题
遇到问题:当我获取 $("#art-list")页面元素后去在后面追加标签的时候(append),在下面用 $(selector) 获取刚刚添加的标签,发现怎么都获取不到。解决方案:在网上查阅资料后发现动态添加的标签要事件委托才能获取到节点,也就是说要用:$(selector).on(events,[selector],[data],fn)属性解析:参数描述even...
2018-12-09 11:12:28
15790
6
原创 jQuery学习记录之Ajax
前后端交互之标准Ajax格式:在jQuery中Ajax有其标准的请求格式:$.ajax({ url:"list.html", dataType:"json", type:"get", data:{}, success:function(data){ alert(data); //$("#showInfo").html(data); ...
2018-12-04 20:23:28
173
原创 jQuery学习记录之HTML
获得HTML内容:设置或返回文本内容:$("#t").text()可以设置或取得指定节点的文本内容设置或返回表单字段的值:$("#v").val()获得输入字段的值设置或返回全部内容(包括HTML标签):$("#h").html()会连指定节点里的标签一起返回(若要设置内容则直接在其中传参即可)回调函数:如:$("#btn1").click(function(){ ...
2018-12-04 20:10:16
167
原创 jQuery学习记录之初见jQuery
引入jQuery库:直接从 BootCDN 中查找jQuery,把script标签贴过去就好,当然也可以去 jQuery官网 去下载jQuery库基本语法:基础语法:$(selector).action每一个jQuery都由美元符号$来定义括号内为元素选择器(类似CSS中的选择器)action()表示要进行的操作比如:$(function(){});自调用函数,所有用了jQu...
2018-12-04 19:53:47
144
原创 JS学习记录之事件调用
调用方式:在script中调用:var 变量名 = document.getElementById("元素id");//获取某个元素,并赋值给某个变量变量名.事件处理器 = function(){ ……}在元素中调用:直接在元素中写事件属性,比如:<input type="button" onclick="alert('在元素中调用')" value="按钮"/&g...
2018-12-03 22:11:02
451
原创 JS学习记录之DOM操作
DOM概念:1、根节点在HTML文档中,html就是根节点。2、父节点一个节点之上的节点就是该节点的父节点,例如h1的父节点就是body,body的父节点就是html。3、子节点一个节点之下的节点就是该节点的子节点,例如h1就是body的子节点。4、兄弟节点如果多个节点在同一层次,并拥有相同的父节点,那么这几个节点就是兄弟节点。例如h1和p就是兄弟节点,因为他们拥有相同的父节点b...
2018-12-03 21:13:11
150
原创 记一次mybatis配置不起作用的事件
事件起因:初始对配置不熟悉,一股脑的把mybatis配置扔进了application中,就没有去管。后来发现数据查询过来总是null,找不到字段值(那时候还没意识到mybatis配置未起作用,傻傻的自己)。后来在Mapper上用@Results+@Result注解将字段名一一对应起来,问题确实得到了解决,后来突然发现我再配置中写了:mybatis.configuration.map-unde...
2018-12-03 20:43:28
2083
原创 Spring security 小练习
添加依赖,并去 maven 库添加:&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.thymeleaf.extras&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;thymeleaf-extras-springsecu
2018-12-03 20:16:29
245
原创 JS学习记录之数组
定义数组:var arr = new Array("1a1a1", "22bb2", "3c3cc3");或者:var arr = new Array(3);arr[0] = "1z";arr[1] = "2x";arr[2] = "3c";也可以:var arr = new Array();这样元素的个数不确定,可以在赋值时任意定义获取长度:可以用 length
2018-12-03 20:15:39
140
原创 JS学习记录之日期对象
创建对象:var xxx = new Date();或者var xxx = new Date(日期字符串);字符串形式:(1)“2015-5-3”(2)“May 3,2015”(3)“2015/5/3”当前系统时间:直接用 Date()比如:document.write(Date());打印出的就是当前系统时间获取具体时间:获取年:getFullYear(),获取的是4位...
2018-12-02 22:25:35
126
原创 JS学习记录之字符串
字符串属性:length:功能:获取字符串长度用法:var str = "aaaaa";document.write("length = " + str.length);字符串方法:match 方法:可以从字符串内索引指定的值,或者找到一个或多个正则表达式的匹配。&lt;head&gt; &lt;title&gt;&lt;/tit
2018-12-02 21:48:54
203
原创 步入正则表达式的世界
正则表达式简介:设立一种模式,判断输入的字符串是否符合这种模式(比如电子邮箱的模式为 xxx@xxx.xxx,如果不匹配就会提示)正则表达式往往需要两部分内容:被验证的字符串和正则表达式。定义方法:正则表达式的定义共有两种方式:显式定义隐式定义(在JS中,正则表达式由一个 RegExp 对象表示)显式定义:var 变量名 = new RegExp("正则表达式模式");(...
2018-11-30 19:21:23
207
空空如也
Java 内存区域中关于局部变量的值的存放位置
2019-10-14
mybatis连接mysql数据库如何用注解方式创建临时表?
2018-11-13
关于mybatis中mysql查询语句的问题
2018-11-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人