自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青城山上学编程

道生一,一生二,二生三,三生万物,万物负阴而抱阳

  • 博客(34)
  • 收藏
  • 关注

原创 IDEA 在远程 Tomcat 上运行项目(亲身避坑版)

服务器:CentOS 7 + Tomcat 8.5.83 + JDK 1.8.0_321开发环境:IDEA 2022.1.4注意:在配置远程运行项目之前,必须确保服务器上 Tomcat 能正常运行,开发环境项目能够正常在本地 Tomcat 调试运行。

2022-11-07 16:24:36 1030 3

原创 Gitlab 数据备份和还原(填坑版)

此文章适用于因更换服务器或者 gitlab 安装方式变更(普通方式 docker)进行数据迁移,或者日常备份还原。前提条件:备份和还原的 gitlab 版本一致!

2022-11-03 11:35:44 2539 2

原创 Docker 搭建 Gitlab(新手村试炼版)

搭建 gitlab 环境除了 gitlab 本身镜像外,还需要 redis 和 postgresql 镜像,docker 命令如下:注意:此处拉取的 13.6.7-ce.0 版本,如果需要进行数据还原,需要确保 gitlab 版本和备份版本一致。

2022-11-02 18:02:30 1026 2

原创 U 盘安装 CentOS7 时盘符和安装源不可用问题

记录一次在物理机上安装 CentOS7 遇到的问题及其解决办法,主要有两个问题卡住了很久,一个是盘符问题,一个就是安装源不可用的问题。

2022-10-24 15:29:07 5574

原创 Mybatis Generator 之分页查询

通过之前的基础篇、注释篇和 Lombok 篇,生成的实体类和 Mapper 基本上可以满足大部分常见的业务,但这其中并不包括分页查询。不能分页的查询是没有灵魂的,小编能力有限,只实现了 mysql 的 limit 功能。

2022-10-09 15:01:29 1246

原创 Mybatis Generator 之整合 Lombok

继的大胆想法实现后,小编已经开始膨胀,以至于暗中馋上了 Lombok 的身子。别怪小编太下贱,怎奈 Lombok 链式编程等一系列丝滑操作太诱人。要实现这个伟大的目标,需经历以下几个步骤。

2022-10-09 14:14:53 1027

原创 Mybatis Generator 之自定义注释

在基础篇中可以看到,生成的 Mapper 和持久化类(实体)中包含了大量的无意义的英文注释,对于实体外的其他类,当然要去掉那些无用的注释。而对于实体类,则有一个大胆的想法——根据 DDL 里面的列注释内容来生成注释。user 表 DDL理想中的实体 User.java要想达到这个目的,需要经历以下两个步骤。

2022-10-09 13:28:14 618

原创 Mybatis Generator 之基础篇

想必经常写业务并且是使用 Mybatis 数据库映射框架的同学都知道,在设计好数据库表结构后要做的就是写出对应的实体和具备基本增删改查功能的 Mapper,这是一个繁琐且枯燥的过程,最让人头痛的是还容易出错,费时费力。而 Mybatis Generator 是一款可以根据数据库表结构自动生成实体和 Mapper 的框架,只需要一定的配置,就可以自动生成满足要求的实体和 Mapper。

2022-10-09 11:17:24 743

原创 EL 获取 cookie 中的中文值乱码问题

1、问题由来众所知周,因为编码问题,如果向 Cookie 中放入中文字符串,将会引发java.lang.IllegalArgumentException: Control character in cookie value or attribute异常。要解决这个问题,需要对中文字符串进行 base64 或者 URLEncoder 编码。而这样又引发新的问题:如果用 EL 表达式获取 Co...

2020-01-31 14:31:03 1203 11

原创 Java 之多线程

1 概述进程进程就是正在运行的程序。进程是系统进行资源分配和调度的独立单位,每个进程都有自己的内存空间和系统资源。多进程的意义:可以在一个时间段内执行多个任务,提高CPU的使用率。线程在同一个进程内可以执行多个任务,而每一个任务都可以看做是一个线程。线程是程序的执行单元(执行路径),是程序使用CPU的最基本单元多线程的意义:提高程序的使用率。因为多个线程共享一个进程的资...

2019-10-19 14:11:54 137

原创 Java 之异常

1 概述Java程序在运行过程中出现的错误,如除数为零、空指针、数组越界等2 分类Throwable:异常类的父类Error:极其严重的问题,如内存溢出,我们不作处理Exception RuntimeException:运行时异常,一般是代码不够严谨导致,需要修改代码,所以也不处理 编译是异常:Exception 中除去 RuntimeException...

2019-10-19 12:04:34 143

原创 Java 集合框架之 Map

1 概述存储的元素以键-值的方式存在2 特点将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射一个值(可以为null)。Map结合的数据结构只针对键有效,与值无关3 Map<K, V> 功能概述添加功能V put(K key, V value):添加元素,若添加的键不存在,则直接保存并返回null。若添加的键已存在,覆盖该键对应的值,并返回原来的值。...

2019-10-19 11:37:36 158

原创 Java 之常见数据结构

(1) 栈 先进后出 举例:子弹夹 (2) 队列 先进先出 举例:火车车厢进出火车站(3) 数组 存储同一种类型的多个元素的容器,可以通过索引访问元素 查询快,增删慢(4) 链表 由一些列的节点组成 节点:由数据域和地址域组成,其中地址域存放的是...

2019-04-07 19:27:13 135

原创 Java 集合框架之 ConcurrentModificationException

1、迭代器原理 java 中提供了很多的集合类,不同集合类的数据结构不同,所以这些集合类的数据存储方式和遍历方式也应该不同,所以无法为所有集合类提供统一迭代器,只能提供一个接口。 通过源码分析可以得知,集合对接口的实现在他们的具体实现类中,并且以私有内部类的方式体现。2、ConcurrentModificationExceptionpublic clas...

2019-04-07 19:05:03 227

原创 Java 集合框架之 Set

1、特点 元素无序(元素的存储顺序和取出顺序不一致)且具有唯一性2、遍历方式 (1) 迭代器(继承自 Collection)public class SetDemo{ public static void main(String[] args) { Set<String> set = new HashSet<String>();...

2019-04-06 15:10:16 145

原创 Java 集合框架之 List

1、特点 元素有序(元素的存储和取出顺序一致)可重复2、List<E> 特有功能 void add(int index, E e):在列表指定位置插入指定元素 void addAll(int index, Collection<? extends E> c):将 c 中所有元素插入到集合的指定位置 E get(...

2019-04-06 13:57:11 154

原创 Java 集合框架之 Collection

1、概述 (1) 集合的由来 为了方便对多个对象进行操作和存储,又因为对象数组的长度和是固定的,且只能存储同一种类型的元素 (2) 集合与数组的区别 数组长度固定,集合长度可变; 数组存储的是同一种类型的元素,而集合可以存储不同类型的元素; 数组元素既可以是基本数据类型,也可以是引用数据类型,集合元素只能是引用类型...

2019-04-05 17:15:05 150

原创 Java 之泛型

1、概述 (1) 泛型的引入 早期使用 Object 类型接收任意的对象类型,但是在实际使用中,会有类型转换问题,存在安全隐患,于是在 JDK5 后引入泛型来解决这个安全问题。class Person{ private String name; private int age; public Person() { ...

2019-04-05 16:27:16 126

原创 STM32 USART DMA 多次发送数据

最近因为公司项目需要,希望使用 USART 通过 DMA 多次发送数据,因为每次发送数据的内容都不一样,所以不能采用 DMA 的循环模式,只能通过 DMA 正常模式、USART 多次请求的方式来实现,下面附上 DMA 的配置代码#define USART USART3 #define DMA_CLK RCC_AHB1Periph_DMA1#define DMA_STR...

2018-01-25 10:31:46 6670

原创 STM32 USART 接收任意长度字符

近段时间学习到 STM32 USART 部分,基本上在接收数据的时候都是采用定长,所以一直想实现接收任意长度的字符串。这里的任意长度不是指的无限长,而是在自己定义的缓冲区范围之类。比如说缓冲区的大小是 1024 Byte,那么就能接收不大于 1024 个字符串。当时有两个思路:1、使用结尾标志,如 "\r\n" 什么的2、定时判断接收数据的长度,如果在规定的时间内长度没有发生变化,证明已经接...

2018-01-16 20:45:20 22107 4

原创 Java 权限修饰符、static 和 final 关键字

权限修饰符        private:私有权限,可以修饰成员、构造方法(可修饰内部类),被private修饰的成员只能够在本类中访问        public:公共权限,可以修饰成员和类,被 public 修饰的类可以跨包使用(被public修饰的类保存时文件名必须和类保持一致),若要跨包使用该类的成员,则该类的成员也要用 public 修饰。        defaul

2017-11-01 19:13:48 529

原创 Java 内部类和匿名内部类

1、内部类一个类定义在另外一个类的内部,这个该类就被称为内部类。内部类分为成员内部类(定义在外部类的成员位置)和局部内部类(定义在外部类的方法里面)。 (1) 成员内部类class Outer{ class Inner { //成员内部类 }}成员内部类的特点:1、成员内部类可以直接访问外部类的成员,包括私有的,也可以通过外部类名.this.成员名调用外部成员。...

2017-11-01 19:07:21 11078 4

原创 Java 继承与多态之转型

Java 继承与多态之转型 向上转型:将子类的对象赋值给父类引用 向下转型:将父类的对象赋值给子类引用(前提是父类对象必须能够转成子类对象)1、向上转型: public class Person{ public String name; public int age = 30; public void work() { Sys...

2017-11-01 12:03:00 282 1

原创 Java 继承与多态之抽象类和接口

抽象类:用 abstract 声明的类1、抽象类不能生成对象,其子类可以生成对象,但必须重写抽象父类的抽象方法2、如果一个类中含有抽象方法,那么该类必须声明为抽象类3、如果一个类中没有抽象方法,该类也可以声明为抽象类4、抽象类的构造方法可以在子类中被调用public abstract class AbstractClass{ private int nu...

2017-10-31 15:40:16 348

原创 Java 继承与多态之 this 和 super

在解释 this 和 super 的区别之前先说一下方法的重写 (Override)和重载 (OverLoad)方法的重写 (Override):在子类中,出现和父类一模一样方法声明的现象public class Person{ private String name; private int age; private String hobby; public void ...

2017-10-31 14:36:55 620 2

原创 Java 类的初始化

类的初始化过程public class Person { String name = "张三"; int age = 18; public Person() { name = "李四"; age = 28; }}Person p = new Person()1、将Person.c...

2017-10-20 16:21:43 220

原创 Java 继承与多态之面向对象

1、面向对象思想面向对象是基于面向过程的编程思想面向过程:强调的是每一个功能的步骤面向对象:强调的是对象,然后由对象去调用功能2、面向对象的思想特点一种更符合我们思想习惯的思想可以将复杂的事情简单化将我们从执行者变成了指挥者3、面向对象开发不断的创建对象,使用对象,指挥对象做事...

2017-10-20 16:05:41 427 2

原创 Java 内存分配

1 Java中的内存分配Java 程序在运行的时候,需要在内存中分配空间。为了提高运算效率,对空间进行了区域划分,每一片区域都有特定的数据处理方式和内存管理方式。Java 内存空间分为五个区域:栈(存储局部变量)局部变量:在方法定义中或者方法声明上的变量。栈内存中的变量在用完(脱离作用域)后立即消失。堆(存储 new 出来的东西)堆内存的特点:1、每一个 new 出来的东西...

2017-10-19 22:59:45 264

原创 Java 运算符

1、++i 和 i++ 的区别(--i 和 i-- 一样) 1)单独使用public class TestDemo{ public static void main(String[] args) { int a = 1; int b = 1; a++; ++b; System.out.println("a = " + a + ", b = " + ...

2017-10-17 23:40:10 186

原创 Java 数据类型

java 的数据类型分为基本数据类型和引用数据类型,基本数据类型和 C 语言相比没有多大的区别,只是不再用“非 0”表示 true,“0”表示 false,而是用了一种叫做 boolean 的数据类型来表示逻辑:boolean flag = true;除此之外,还有一些需要注意的地方。 ...

2017-10-17 22:39:04 161

原创 Java 中字符串的那些事儿

字符串是 java 中非常常用的一种数据类型,我们通常用 String 类型的变量(对象)来临时存储一个字符串,关于字符串有几个值得注意的地方,下来我们一起来交流一下。1、字符串是常量,一旦被赋值就不可以改变,但是其引用是可以改变的。这句话什么意思呢?开始笔者就觉得很疑惑,比如说我们我们创建一个 String 类型的变量,例如 String s = "Hello World",之后明明可以

2017-09-13 20:05:58 323

原创 两个浮点数值的比较

因为以前学习过 C 语言,所以对于 java 的数据类型结构这一块就略过了,不过今天在看书的时候偶然间看到了一个关于浮点数比较的问题,相信有很多同学在学习数据类型这一块都不是很仔细,于是写个博客提出来,权当是做个笔记吧。double x = 1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1; x 的结果会是多少呢?一开始我很笃定,x = 0.5。但事实真的是这样么

2017-08-19 00:42:23 1852

原创 在 zxing 二维码扫描界面添加闪光灯开关

在上一篇博客中笔者提到,当初为了能够在仓库中偷懒才引出了那么多的问题,现在仓库管理程序写好了,笔者兴冲冲地到仓库里统计物料,但是又发现了一个新的问题,那就是因为公司实在是太节(kōu)约(mén)了,仓库里面就几盏灯,其他地方都是一片漆黑,这为扫描二维码带来了很大的难度。最好的解决方法莫过于在扫描界面添加闪光灯开关,于是下班后笔者回到寝室对代码进行了修改。但是在添加好闪光灯开关后,打开闪光灯时

2017-08-02 18:46:02 5460 8

原创 在 Android 项目中添加扫一扫功能

在月初的时候开始实习管理仓库,但是仓库比较乱,在里面找东西特别不方便。在偶然中发现仓库中的东西都有二维码,于是就想着写一个安卓程序能够实现扫码统计仓库里面的东西,以此可以偷点懒。 一开始在网上看了万能的网友的说法,知道了安卓中一般是用的 zxing 来实现二维码的生成和解析功能,当时觉得不过是库的调用,应该是小菜一碟,谁知道当自己着手的时候才知道并不是那么简单的事情。...

2017-07-31 21:33:12 5529 7

空空如也

空空如也

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

TA关注的人

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