自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql中char与varchar,浮点数与定点数的区别

char 和 varchar 区别char是属于固定长度的字符类型, varchar属于可变长度的字符类型。char由于其固定存储,所以其存储性能好,但是不足的用空格代替,会浪费空间;varchar可变存储,以空间性能优先,存储性能不如charchar(4), varchar(4);在mysql“严格模式下”,字段长度大于4会报错,非”严格模式“下,超出长度的部分会不保存;由于char是定长存储,所以只要定了存储长度,不管存储字段是否为4,存储都会占用4字节空间,不足的后面补空格,取出的时候my

2022-02-15 18:12:46 824

原创 Long和long类型比较大小

long类型属于8种基本数据类型之一,而Long则是基本类型long的包装类。一、long类型大小比较long类型比较大小直接用 > < = 就行;二、Long类型大小比较Long 需要equals()方法比较两个Long类型的数据大小;也可使用Long.longValue()方法 将Long转换为long类型后用 > < = 的方法比较。案例:比如你查询数据库的记录条数为Long类型0,根据这个数据进行业务处理if(a.equals(Long.valueof(0))

2022-02-14 15:08:18 20986

原创 Java日期String和Date的转换

一、String 转 DateString ds=new String("2022-02-14"); Date sd=df.parse(ds);二、Date 转 StringDate d=new Date();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");String ds=df.format(d);

2022-02-14 14:55:29 8782 2

原创 Java 日期大小比较

Java日期的大小比较是工作中常会遇到的问题,目前我找到3种常用的方法。一、日期为String类型可以使用String的compareTo方法,注意日期格式必须一致。String date1 = "20220214";String date2 = "20210114";if(date1.compareTo(date2) > 0) { System.out.println("date1 大于 date2");}二、日期为date类型使用Date类型的before() 或 after

2022-02-14 14:52:08 42192

转载 整合SSM框架

创建数据库环境CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',`bookName` VARCHAR(100) NOT NULL COMMENT '书名',`bookCounts` INT(11) NOT NULL COMMENT '数量',`

2021-03-31 23:47:32 108

原创 HashMap中hash的底层源码

JDK1.8HashMap中hash的底层源码今天面试问到了,HashMap中hash的实现方式,我开始一愣,hash不是自己都可以重写吗,我怎么知道,hash的实现方式。后来面试官提示我说,hash碰撞。我才多多少少说了一点。但有缺漏。没有说hash扰动函数的过程,只是说了后面如何得到数组的位置,JDK1.7和1.8转化如何不同。在JDK1.7扰动函数使用了四次hash值右移异或运算。主要是混合原始哈希码的高位和地位,以此加大随机性。JDK1.8只进行一次右移16位异或运算,因为四次没有必要,而且

2021-03-30 15:59:35 94

原创 Dubbo学习

一、主要背景随着互联网的网站应用不断演进,从单一应用架构到垂直应用架构,当垂直应用架构越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时需要整合分布式服务框架。二、Dubbo解决的需求1、当服务越来越多时,服务 URL 配置管理变得非常困难2、服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。3、服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多

2021-03-26 14:31:25 103

原创 RESTful风格

一直听说RESTful风格,却一直不知道什么是RESTful风格,感觉挺抽象。查了点资料。RESTful风格是一种架构约束条件和原则, 如果一个架构符合 REST 的约束条件和原则,就称它为 RESTful 架构。主要体现在以下两点:1、定位资源的URL风格。都是采用/分割2、采用HTTP协议规定的GET、POST、PUT、DELETE动作处理资源的增删改查操作。...

2021-03-26 14:29:04 106

原创 随机图片接口

分享一个随机图片接口非常好用的前端随机图片

2021-03-24 23:16:36 873

原创 org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.Typ

遇到这个错误真搞心态呀,其实就是包路径错误引起的,刚开始检查了很多遍一直以为没啥问题,不得不把Idea重启,毕竟我认为有时候重启能解决一些玄学问题。不过后来终于找到问题了这个项目是我之前做的项目,在重新建一个项目后,直接用的原来的yml文件,导致mybatis扫描包路径没改。改了就行...

2021-03-24 16:45:22 1257 1

原创 spring支持的事务常用传播属性和事务隔离级别

spring通过propagation来设置事务的传播属性,通过isolation来设置事务的隔离级别。我们可以思考一个问题,一个事务方法调用了另一个事务方法。那么被调用的事务方法是使用原来的事务,还是自己开启一个新的事务?所以需要设置事务的传播属性,来约定事务的传播行为。spring有7中传播属性REQUIRED ,这个是默认的属性如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。被设置成这个级别时,会为每一个被调用的方法创建一个逻辑事务域。如果前面的方法已经创建了事务,那么后面

2021-03-05 15:30:54 147

原创 spring的作用域有什么区别

spring中通过scope来设置bean的作用域,以决定这个作用域是单例还是多例的。spring默认作用域使用singleton也就是单例实现的方式。spring为每一个在IOC容器中创建的bean创建唯一一个实例,在IOC容器创建的时候就会创建该实例,并且此后通过getBean()方法,或者任何bean的引用都将返回唯一一个bean实例。通过scope设置prototype后,spring bean实例的创建就是多例的了,IOC创建时不会创建该实例,只有通过getBean()方法调用时,才会创建一个

2021-03-05 14:59:55 235

原创 深入理解Java虚拟机笔记

一、Java内存区域与内存溢出异常使用过c/c++我们都知道,我们需要为每一个new的对象去配对delete/free代码,否则容易出现内存泄漏或内存溢出异常。但是Java语言就不需要这么麻烦,因为Java有自动内存管理机制,所以来看一下这中间的奥秘。1.1运行时数据区域...

2021-03-03 15:17:53 298

原创 用连个栈实现队列

题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )栈先进后出,队列先进先出。我们可以把数据先添加到一个栈中,然后在弹出放入第二个栈中,从第二个栈中pop()删除,就可以保证队列特性。唯一注意的就是从第一个栈中弹出到第二个栈中时,要保证第二个栈是空的,否则,数据错乱。class CQueue { //两个栈,一个出栈,一个

2020-11-15 20:41:08 104

原创 Mysql数据库学习笔记

一、数据库和表的基本操作1、数据库的基础知识(1)、创建和查看数据库创建 create database user;查看 show create database user;删除 drop database user;修改user字符集为gbk; alter database user character set gbk;(2)、数据表操作创建数据表 CREATE TABLE IF NOT EXISTS `student`( `id` INT UNSIGNE

2020-11-14 11:01:42 495

原创 JDBC入门知识详解

JAVA Database Connectivity java 数据库连接为什么会出现JDBCSUN公司提供的一种数据库访问规则、规范, 由于数据库种类较多,并且java语言使用比较广泛,sun公司就提供了一种规范,让其他的数据库提供商去实现底层的访问规则。 我们的java程序只要使用sun公司提供的jdbc驱动即可。使用JDBC的基本步骤注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());建立连接//Dri

2020-11-13 22:05:14 189

原创 二叉树的遍历算法

我们都知道二叉树是一种数据结构,它有四种遍历方式,前序遍历,中序遍历,后序遍历和层次遍历。前序遍历首先访问根节点,然后遍历左子树,最后遍历右子树。中序遍历是先遍历左子树,然后访问根节点,然后遍历右子树。后序遍历是先遍历左子树,然后遍历右子树,最后访问树的根节点。层序遍历就是逐层遍历树结构。那么他们的遍历算法怎么实现呢?前序遍历,中序和后序遍历一般可以通过递归和迭代两种方式实现,思路基本相同,主要考虑遍历的先后问题。递归容易理解,迭代得使用栈来帮我们保持数据。前序遍历递归定义 preorde

2020-11-13 21:24:08 549

原创 KMP算法

字符串匹配问题:思路分析:代码实现:public class KMP { public static void main(String[] args) { String str1 = "abcdefgdefc"; String str2 = "defc"; System.out.println(KmpSearch(str1,str2)); } public static int KmpSearch(String s

2020-11-10 21:43:11 108

原创 分治算法

1、分治算法的介绍1)、分治算法是一种很常见的算法。字面上的解释就是分而治之,就是把一个复杂的问题分为两个或更多个相同或相似的子问题,直到最后子问题可以用简单的方法求解,原问题的解即为子问题解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅里叶变换(快速傅里叶变换)。2)、分治算法可以解决很多经典问题如:二分搜索,大整数乘法,棋盘覆盖,合并排序,快速排序,线性时间选择,最接近点对问题,循环赛日程。2、分治算法基本步骤分治法在每一层递归上都有三个步骤:1)、分解:把原问题

2020-11-10 15:20:30 1599

原创 插值查找算法

代码示例public class InsertDataSort { public static void main(String[] args) { int arr[] = new int[]{1,5,6,7,8,9}; int findVal = 7; int index = insertDataSort(arr, 0, arr.length -1, findVal); System.out.println(index); .

2020-11-10 13:19:53 143

原创 二分查找算法

1、思路(二分查找,前提是数组是有序的,没有排序可对数组进行排序处理)(1)、首先确定该数组的中间下标mid = (left + right)/2;(2)、然后让需要查找的数findVal与arr[mid]比较findVal < arr[mid],向左递归查找findVal > arr[mid],向右递归查找findVal == arr[mid],说明找到,返回(3)、找到就结束,递归完整个数组,仍然没有返回findVal,也要结束递归,当left > right退出2、代码

2020-11-10 11:08:26 186 1

原创 基数排序

1、基数排序基本介绍(1)、基数排序属于“分配式排序”,又称为“桶子法”,或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的各个元素分配到某些“桶”中,达到排序的效果。(2)、基数排序法属于稳定性排序,基数排序法是效率高的稳定性排序法。(3)、基数排序是桶排序的扩展。(4)、将整数按位数切割成不同的数字,然后按每个位数进行比较。2、基数排序基本思想将所有待比较数值统一位同样的数位长度,数位较短的数前面补0,然后从低位开始,依次进行一次排序,这样从地位一直到最高位排序完成以后,数列

2020-11-10 10:41:43 290

原创 归并排序

1、归并排序是采用归并思想实现的排序算法,该算法采用经典的分治策略(分治法将问题分为小问题然后递归求解,而治的阶段将分阶段的答案修补在一起)。2、分治图3、代码示例public class MergeSort { public static void main(String[] args) { int arr[] = new int[]{1, 5, 2, 6, 7, 4}; int[] temp = new int[arr.length];

2020-11-10 09:50:28 128

原创 快速排序

1、快速排序介绍快速排序是一种冒泡排序的改进,基本思想是将要排序的数据分割成两部分,其中一部分所有数据比另一部分都要小,然后按此方法对两部分数据分别进行快速排序,整个快速排序都通过递归完成。2、快速排序思路图3、代码示例public class QuickSort { public static void main(String[] args) { int arr[] = new int[]{1, 5, 2, 6, 7, 4}; quickSort(arr

2020-11-09 22:22:07 117

原创 希尔排序

1、希尔排序介绍希尔排序也是一种插入排序,只不过它比插入排序要更高效。2、基本思想把记录按下标的一定分量进行分组,然后每组进行插入排序。随着增量越来越少,每组的数据就越来越多,当增量为1时,也就排好了序。3、希尔排序示意图4、代码示例方法一:交换法public class ShellSort1 { public static void main(String[] args) { int arr[] = new int[]{1, 5, 2, 6, 7, 4};

2020-11-09 21:51:35 205 1

原创 插入排序

1、插入排序法介绍内部排序法,预排序的元素以插入的方式与排序的元素进行比较,从而达到排序的目的2、插入排序思想把n个待排序元素看成时一个有序表和一个无序表,开始时,有序表有一个元素,无序表有n-1个元素,然后逐个从无序表中取出元素与有序表中元素比较,把它插入到合适的位置。3、插入排序思路图4、应用实例public class InsertSort { public static void insertSort(int[] arr) { int insertVal = 0

2020-11-09 21:05:10 115

原创 mybatis学习笔记

使用maven创建mybatis的配置过程初学mybatis,我们可以按照mybatis官方文档进行学习,地址:https://mybatis.org/mybatis-3/zh/index.html1、首先,我们用idea创建一个maven项目, 然后,删除src目录,在maven项目下新建一个模块。2、在maven项目中父工程和子模块都有pom.xml文件,打开父工程pom.xml,导入相关依赖。<dependencies> <dependency>

2020-11-06 14:45:01 133

原创 maven配置防止资源导出失败

Maven 在pom.xml的build中配置resources,来防止我们资源导出失败的问题````<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties&

2020-10-01 16:18:33 812

原创 字符串映射

题面描述:有两个长度相同的字符串,均由字母A-Z构成,长度不超过100。请判断是否可以把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同。如JWPUDJSTVP重排后可以得到WJDUPSJPVT,然后把每个字母映射到它前一个字母(B->A, C->B, …, Z->Y, A->Z),得到VICTORIOUS。输入:两行字符串。输出:...

2020-05-28 09:55:47 3209

原创 vector容器学习

已知一曲线的点坐标如文件pc.txt,分别为曲线上点的x、y、x坐标值,要求:(1)根据点的坐标计算该点的切矢量,切矢量的三个分量为l、m、n,切矢量可按照以下差分法计算:设有n+1个数据点pi(i=0,1,……n),前n个点的切矢量为:ti=pi+1-pi, (i=0,1,……n-1), tn=tn-1对其规格化,单位模长的切矢量变为:Ti= ti/|ti|(i=0,1,……n)。-0....

2020-05-28 09:55:34 364

原创 c++单向链表的使用

某曲线由以下数据点表示,经过计算发现该数据点存在问题,下划线所示的数据点需要剔除,试编制C++计算机程序,采用链式数据结构实现这一过程。分析如果采用数组实现这一过程,二者数据在内存中的存储地址有何不同?34.45 64.90 92.7453.21 62.91 78.7472.62 58.54 64...

2020-05-28 09:55:18 279

原创 vector容器2

试编制C++程序,读入文件数据,按照以下struct data的数据结构,利用模板vector,建立这条曲线数据的线性数据结构,并按以下格式输出数据。struct data{string point;//点的编号,自己命名string tangent; //切矢量的编号,自己命名double x,y,z;double l,m,n;}输出格式:点的编号: x y z t/ 切矢量的...

2020-05-28 09:54:57 176

原创 c++指针的用法

c和c++都有指针的概念,指针其实就是记录数据地址的变量一、指针的定义和使用:指针定义的语法:数据类型 *指针变量名;假设 int a = 10;int * p;让指针记录变量a的地址:p = &a;使用指针的时候需要解引用,在p前加 * 即可, * p就可使用指针;#include <iostream>using namespace std;int mai...

2020-03-03 14:21:14 4565

原创 用c++实现冒泡排序

标题冒泡排序是一个经典的算法,简单来说用嵌套循环就能实现现在假设有一个数组[3,5,7,2,4],那么如果要想把它用冒泡从小到大排序,首先取3和5比较,3小于5;用5和7比较,5小于7;用7和2比较,7大于2;用7和4比较,7大于4;第0轮比下来数组变为[3,5,2,4,7],比较了 5-1 次;第1轮还是依次比较数组变为[3,2,4,5,7],比较了 5-2 次;第2轮数组变为[2,3...

2020-03-03 12:53:53 325

原创 Matlab读取并输出stl文件

*#利用matlab读取stl文件后,将其中三角形片数据×2后,保存到另一个stl文件,利用3D软件打开观察图形是否变为两倍。那么应该怎么做呢?首先了解一下stl文件STL(Stereo lithographic)文件格式是美国3D SYSTEMS公司提出的三维实体造型系统的一个接口标准,其接口格式规范。采用三角形面片离散地近似表示三维模型,目前已被工业界认为是快速成形(rapid pr...

2020-03-03 11:45:58 8506 1

空空如也

空空如也

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

TA关注的人

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