自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 HTML标签速览

文章目录一、认识HTML二、head元素三、body元素3.1 文本元素3.1.1 标题3.1.2 段落3.1.3 文本格式标签3.1.4 容器标记3.1.5 文本锚点定位3.2 图片元素3.3 表格元素3.3.1 表格基本元素3.3.2 合并单元格3.3.3 无序列表3.3.4 列表编号3.4 输入元素3.4.1 input标签3.4.2 select标签3.4.3 文本输入一、认识HTMLHTML(HyperText Mark-up Language),即超文本标记语言或超文本链接标示语言。"超文本

2020-07-28 00:40:16 27

原创 SpringBoot优雅的全局异常处理

对SpringBoot当中产生的异常进行统一的拦截参考1:https://www.cnblogs.com/xuwujing/p/10933082.html该博客具有完整的代码示例参考2: @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常该博客说明了全局异常处理的优点...

2020-05-07 22:26:03 57

原创 SpringBoot中@Configuration注解

传统意义上的 spring 应用都是基于 xml 形式来配置 bean 的依赖关系。然后通过spring容器在启动的时候,把bean进行初始化并且,如果bean之间存在依赖关系,则分析这些已经在IoC容器中的bean根据依赖关系进行组装。在Spring Boot中,Java Config的使用也已完全替代了applicationContext.xml。实现了xml的零配置。在实现JavaConfig配置的时候就需要使用@Configuration和@Bean注解。

2020-04-25 22:44:55 268

原创 Springboot中的@Profile注解

在项目运行中,包括多种环境,例如线上环境prod、开发环境dev、测试环境test、提测环境qa、单元测试unitest等等。不同的环境需要进行不同的配置,从而在不同的场景中跑我们的程序。例如prod环境和dev环境通常需要连接不同的数据库、需要配置不同的日志输出配置。还有一些类和方法,在不同的环境下有不同的实现方式。Spring Boot 对此提供了支持,一方面是注解@Profile,另一方面...

2020-04-25 12:30:52 227

原创 Maven的标准文件目录结构

Maven项目通常需要遵守统一的文件目录结构约定,现在对maven文件目录结构进行简单的说明。同时,对通过mavan进行管理的Spring项目和SpringBoot项目进行分析。PS:如果不了解Maven是什么,不清楚为什么用Maven。可以先阅读一下这篇博文 Maven篇:聊聊为什么用和怎么理解。一、maven约定的目录结构本节给出maven项目的文件目录约定二、maven管理的Spri...

2020-04-11 12:52:35 82

原创 为什么需要用maven

在JAVA项目开发中,一直在使用maven进行依赖管理。但是从没有系统的梳理maven的背景和原理,在遇到问题时候可能没办法敏锐嗅到解决方法。因此,今天对maven产生背景、用途及具体使用进行梳理。本文将不间断更新,添加自己的理解,欢迎交流。目录一、Maven是什么?二、为什么要用Maven?三、在理解中使用Maven(一)Maven的项目结构(二)Maven的生命周期控制(三)Maven的p...

2020-04-11 10:57:44 89

原创 IDEA项目中配置maven

IDEA项目中配置Maven说明:下文中提到的快捷键都是在MAC OS下的。Windows需要自行查阅。1.进入IDEA设置可以使用快捷键command + ,进入设置页面,并进入如下的Maven设置界面。2. 配置说明在上图的配置中,有三个地方非常重要。分别是Maven home directory、User settings file、以及Local repository。下面一一...

2020-04-09 19:38:54 90

原创 JAVA拆箱与装箱

在JAVA中,数据类型主要分为2大类,基本类型和引用类型。基本类型大小boolean可以是1bit,与JVM有关系byte1字节 = 8bitshort2字节 = 16bitchar2字节 = 16bitint4字节 = 32bitfloat4 字节 = 32bitdouble8字节 = 64bitlong8 字...

2019-10-14 23:20:58 51

原创 100个白球100个黑球,取出两个球,同色则补充黑色,异色则补充白色。最后剩什么颜色

【题目描述】桶中取黑白球有一个桶,里面有白球、黑球各100个,人们必须按照以下规则把球取出来:1、每次从桶中那两个球2、如果是两个同色的球,那就再放入一个黑球3、如果是两个异色的球,那就再放入一个白球问:最后桶里面最后剩下一个球是白球和黑球的概率各是多少。【思路解析】思路一:归纳总结依靠枚举的思路,比如假设黑白球各10个、5个、2个等来分析和推断,然后找规律。分析过程可以参考《...

2019-10-13 14:22:30 423

原创 二叉树的序列化与反序列化

为了方便自己测试二叉树相关的代码,需要根据层序遍历快速反序列化一颗用于测试的二叉树,这样可以很方便的写测试用例。因此简单梳理一下基于层序遍历的二叉树的序列化问题。LintCode地址:https://www.lintcode.com/problem/serialize-and-deserialize-binary-tree/description举例说明:序列化过程与层次遍历相同的是...

2019-09-10 09:53:15 271

原创 [动态规划][公共子串]最长公共子串、最长公共子序列

1、最长公共子串LintCode:https://www.lintcode.com/problem/longest-common-substring/description题目描述:最长公共子串给出两个字符串,找到最长公共子串,并返回其长度。样例样例 1:输入: “ABCD” and “CBCE”输出: 2解释:最长公共子串是 “BC”样例 2:输入: “ABCD” an...

2019-09-10 01:40:11 51

原创 [回文系列] 回文数、最长回文子串、最长回文子序列

1、验证回文数LintCode:https://www.lintcode.com/problem/palindrome-number/description题目描述:判断一个正整数是不是回文数。回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。样例例1:输入:11输出:true例2:输入:1232输出:false解释:1232!=2321注意事项给的数一定保证是...

2019-09-10 00:43:56 89

原创 JAVA线程池

一直在看、在学、在用线程池,但是掌握的零散也不够全面。简单总结使用和原理的两个方面。一、线程池的使用1、为什么要使用线程池?I. 线程的创建和消耗是需要消耗时间和资源的,频繁地创建和销毁线程会带来资源的浪费。同时,如果创建时间过程,还会导致整个响应的时延变长。II. 线程需要占用空间,大量的线程会抢占宝贵的内存资源,可能会导致out of memory异常。主要从线程复用和线程管理两个角...

2019-09-02 18:56:07 43

原创 JAVA异常

一、异常的分类在 Java 中所有异常类型都是内置类 java.lang.Throwable 类的子类,即 Throwable 位于异常类层次结构的顶层。Throwable 类下有两个异常分支 Exception 和 Error。Throwable 类是所有异常和错误的超类,下面有 Error 和 Exception 两个子类分别表示错误和异常。Error用于指示合理的应用程序不应该...

2019-09-01 01:07:20 29

原创 JAVA注解

注解是一种提供便捷性的配置方法。其本质是一个继承于Annotation的普通接口,它需要有解析它的代码才可以起到作用。而解析的方法有两种,一种是编译时期的直接扫描,一种是运行时期的反射。编译时期的扫描是指编译器在对JAVA源代码时,检测到某些注解修饰,会执行相应的处理,例如@Override。一旦编译器检测到某个方法被修饰了 @Override 注解,编译器就会检查当前方法的方法签名是否真正重写...

2019-09-01 00:36:31 26

原创 JAVA反射机制

反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。一直以来反射技术都是Java中的闪亮点,这也是目前大部分框架(如Spring/Mybatis等)得以实现的支柱。在Java中,Class类与java.lang.reflect类库一起对反射技术进行了全...

2019-08-31 23:52:57 27

原创 关于JAVA泛型

嗯,天天面试笔试,没来得及好好总结每次面试中的漏洞。。。好好检讨自己。以后努力做到问题不过夜,再晚也要学习和总结。1、泛型的使用泛型类与普通类的区别就是:类名称后面多了一个; 某些变量的类型是Tpublic class Line<T>{ T first; T second; int distance;}public class Pair<U, T>{...

2019-08-31 23:05:10 35

原创 两数之和、三数之和、四数之和、K数之和

两数之和、三数之和、四数之和和K数之和是最近听室友提起的几道有意思的基础题,可以说是把双指针运用的淋漓尽致。(K数之和其实是一个动态规划的题,此处因为满足*数之和的的结构,放在一起对比提一下)。1、两数之和等于Target的下标LintCode:https://www.lintcode.com/problem/two-sum/题目描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 ...

2019-08-31 14:07:46 1119

原创 JAVA类加载与JAVA对象创建

可能都知道“为什么类变量可以不依赖对象而直接使用?”,但不一定都知道背后的原因。其实这与类加载和JAVA对象创建的机制有关系。第一部分:类加载1.1 类加载的步骤JAVA文件被javac经过javac编译器处理之后成为二进制的class文件。而该二进制文件可以通过不同平台的jvm进行执行(也就实现了跨平台)。二进制class文件如何成为内存当中可以使用的Java类。在JAVA类完整的生命周...

2019-08-26 16:57:38 56

原创 有序数组中的二分查找

二分查找又叫折半查找,要求数组/序列满足一定的有序性,根据某些判断条件不断缩小查找的范围。因为每次范围缩小为原来的一半,所以叫二分或者折半。通过七道例题理解并掌握二分法的使用。

2019-08-23 01:44:25 490

原创 Thread.sleep()和Object.wait()的区别

一、区别1、wait()方法来自于Object类,而sleep()方法来自于Thread类//waitpublic final void wait() throws InterruptedException//sleeppublic static native void sleep(long millis) throws InterruptedException;2、wait() ...

2019-08-21 11:44:00 707

原创 Redis笔记:使用MAC连接远程Redis

第一步:服务端启动Redis修改redis.conf配置文件中的下列项:#注释默认配置中所有的绑定bind,以允许所有的IP都可以访问#有的博客讲还需要加一条 bind 0.0.0.0 实测不加也可以,只要把原本所有的bind都注释即可# bind 127.0.0.1 # 取消注释,设置密码,因为允许任意IP访问,强烈建议配置密码避免redis裸奔# 否则马上就有一些挖矿病毒进入迅...

2019-08-15 11:40:33 4946 1

原创 数据流中的中位数

题目描述中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例:addNu...

2019-08-09 18:09:33 77

原创 回顾Linux下的IO模型

1. IO分类IO,即INPUT和OUTPUT。数据读入和数据输出。说到IO,很多人就联想到读写磁盘文件,其实这只是其中一种。对Linux系统而言,所有设备都是文件,其中包括磁盘、内存、网卡、键盘、显示器等等,对所有这些文件的访问都属于IO。针对所有的IO对象,可以将IO分成三类:网络IO磁盘IO内存IO而通常我们讨论的是前两种,具体的区分可以参考参考Linux IO解读中的解释...

2019-08-07 23:23:47 45

原创 Redis笔记:Redis的简单使用

Redis的简单使用为了方便使用,先打开Redis测试服务./redis-server &查看redis是否已经启动:使用ps查看或netstatps aux | grep redis-serve...

2019-07-29 16:44:22 94

原创 Redis笔记:Redis的配置

使用配置文件启动redis首先,根据配置文件启动redis的命令是:nohup ./redis-server redis.conf &启动并在后台永久运行;./redis-server re...

2019-07-29 15:49:40 51

原创 [剑指offer][JAVA]把数组排成最小的数

题目描述:剑指offer45输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。线上答题:牛客网JAVA解法import java.util.*;public class Solution { public String PrintMinNumber(int...

2019-07-27 16:47:56 36

原创 【调研实践】弱网环境下的断网续传

一、定义为了方便后文的阅读,我们提前约定一些名词的含义。弱网环境:所谓弱网环境简单来说就是网络质量较差导致丢包和延迟等现象,具体现象就是客户端获得响应很慢。参考重复签到的案例,弱网环境的模拟可以参考此篇文章多种方法。断网续传/断网下载:在很多博客中也把断网续传和断网下载统称为断网续传,此处我们将断网续传和断网下载分开来讨论。断网续传特指从客户端向服务端的文件传输,在弱网环境下保证尽可能少的重...

2019-07-21 22:43:46 454

原创 [剑指offer]重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { * int val; * ...

2019-07-17 20:22:33 25

原创 super和this

至今见过,this和super的区别讲的最清晰的:当有相同的属性或者方法是this子类表示调用自己的属性或者方法,super调用父类的属性或者方法。当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法...

2019-06-18 16:10:38 26

原创 关于tomcat的思考与总结(上)

一直在使用Tomcat,但是知识点点非常零散,没有系统的总结和思考过。知道Tomcat是一个运行Servlet和JSP的轻量级服务器,知道Tomcat可以启动一个Java服务。每次将java工程的war包放到tomcat的webapp目录下,启动服务器就可以访问相应的服务。但是对tomcat的原理的掌握非常零散。1.servletkey word:servlet、servlet容器、web s...

2019-06-12 21:40:27 66

原创 从左手坐标系到右手坐标系的变换

该博客主要参照论文:链接:https://pan.baidu.com/s/1LzP2UNIHCm8RPg2eQX0rdQ提取码:hiuc文章目录1.坐标点的转换2. 旋转的转换2.1 Conversion of Heading2.1 Conversion of Pitch2.1 Conversion of Bank3. 旋转变换的组合4.仿射变换的转换总结左手坐标系和右手坐标系之间的...

2019-03-13 15:26:40 4720

原创 从旋转矩阵到四元数

在文章:从四元数计算旋转矩阵的基础上,现在来考虑从旋转矩阵到四元数的计算。从四元数(w,x,y,z)计算旋转矩阵从旋转矩阵计算四元数为了从旋转矩阵中求出相应的四元数,可以直接利用上述已经求得的矩阵。计算方法一:计算对角线元素之和即可求的 w 值:同理可以计算 x,y,z 的值:!!!重点提醒!!!上述的计算方式是存在不完整性的,因为四元数所有分量的计算都是通过开方所得,...

2019-03-13 10:21:03 6393 7

原创 从四元数到旋转矩阵

旋转矩阵和四元数都是描述三维空间中位姿的方式,此文将讨论如何从四元数计算出旋转。背景介绍旋转矩阵和四元数之间的变换需要依据以下公式1公式1: 绕任意轴n旋转θ的旋转矩阵公式1的具体推导过程可以参见知乎文章。注意公式1中的基本条件:①旋转的正方向由左手法则判定 ②任意轴n处于左手坐标系中。公式2: 绕任意轴n旋转θ的四元数要想从四元数求得旋转矩阵,即需要用矩阵中的元素m11、m12...

2019-03-12 20:21:11 8736 2

原创 [Java]为什么要使用MyBatis

侃一侃为什么要使用MyBatis,不能直接使用java操作数据库吗?答案当然是不能,不仅仅是因为程序员懒,更重要的是提高工作效率和代码性能。MyBatis是非常优秀的持久层ORM框架,简化开发人员对关系数据库的使用。如果不清楚MyBatis的原理、MyBatis的配置则需要参考其他的文章,此处不做详述。此处将详细说明MyBatis的优势。Mybatis要想知道MyBatis有哪些优势,...

2019-03-11 16:44:23 1475

原创 [算法题讨论]超大组合数的求解

题目说明题目来源是一场笔试,第一次笔试慌慌张张,考场中并没有做出来。以上不表。直接看题:两个人小王和小李玩石头剪刀布的游戏。一共玩n次。小王赢一次的一份,输了不扣分。如果小王得到s分,且已知小李出拳顺序,求小王可能的出拳组合总数。输入:游戏场数n,小王游戏得分s,小李的出拳顺序数组p在数组p中,0代表石头,1代表布,2代表剪刀。输入样例:3 20 1 2输出:可能组合的数目对1e9...

2019-03-10 13:51:45 353

转载 [JAVA]多态的实现

1.实现条件其实,继承是在为多态的实现做了准备。子类Child继承父类Father,我们可以编写一个指向子类的父类类型引用,该引用既可以处理父类Father对象,也可以处理子类Child对象,当相同的消息发送给子类或者父类对象时,该对象就会根据自己所属的引用而执行不同的行为,这就是多态。即多态性就是相同的消息使得不同的类做出不同的响应。Java实现多态有三个必要条件:继承、重写、向上转型。...

2019-03-06 16:19:53 31

原创 [JAVA]向上转型与向下转型

要理解多态性,首先要知道什么是“向上转型”、“向下转型”。对象的多态性:父子类对象的转换**向上转型:**子类对象变为父类对象,语法: 父类 父类对象 = 子类实例, 自动;**向下转型:**父类对象变为子类对象,语法: 子类 子类对象 = (子类)父类实例,强制。1. 对象向上转型(自动 父->子)演示代码(对象向上转型):class A{public void print...

2019-03-06 16:00:07 1702

原创 单例模式Singleton

1.什么是单例模式1.1 初略感知单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”1.2 举例说明举个例子,在很多情况下,环境的条件要求我们必须有且只有一个实例。比如说一个打印机,同一时间只能打印一个文件,那么就需要这么一个只有一个...

2019-03-05 09:52:17 53

原创 【整理】图形学EI论文部分整理

文章目录CGDIP 意大利CSDT 昆明CGIIT 广州ICCGV 日本CGDIP 意大利【Ei/CPCI/SCOPUS检索】2019第三届计算机图形和数字图像处理国际会议(CGDIP 2019)2019 3rd International Conference on Computer Graphics and Digital Image Processing (CGDIP 2019)【2...

2018-12-09 01:02:40 476

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