自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis-Plus——sum聚合函数 及 按日期查询并求和

//总收益 Order order =new Order(); QueryWrapper<Order> queryWrapper = new QueryWrapper<Order>(); queryWrapper.select("sum(price) as sumAll"); Order order = orderService.getOne(queryWrapper); order.setSumAll.

2020-08-02 00:01:05 44739 2

原创 SSM+PageHelper实现分页——及解决PageHelper失效问题

PageHelper简述:一款好用的开源免费的Mybatis第三方物理分页插件,用起来非常方便,减少了很多代码量。官方文档:https://pagehelper.github.io/docs/howtouse/,官方文档是最靠谱的,多看几眼,少踩几个坑!一.SSM项目整合PageHelper1.添加坐标或者导入jar包<dependency> <groupId>com.github.pagehelper</groupId> <artifact

2020-07-28 12:12:58 2119 4

原创 SSM项目 部署到云服务器

前言:本项目是SSM web项目,小白一枚,也踩过不少坑,于是自己总结了一份经验,供大家参考。首先选择云服务器:比如阿里云、腾讯云、百度云等。推荐使用FinalShell 、XShell。不熟悉linux命令的可以选择FinalShell ,操作非常简单易懂。 (FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux。官网:http://www.hostbuf.com/)主要分为以下几个步骤:1.在服务器上安装配置jdk、Tomcat、mysql(

2020-06-02 17:17:13 4296

原创 MQ消息队列学习

1.概念:(message queue)一种跨进程的通信机制,用于在上下游之间传递消息。消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务详解参考:https://blog.csdn.net/wqc19920906/article/details/82193316 ;https://blog.csdn.net/u010255818/article/details/778558732.使用场景:应用解耦:比如:某系统发生故障时,将要处理的数据暂存到消息队列中,等系统恢复时,继续处理相关信

2021-02-22 17:24:26 323

原创 JVM6——垃圾收集器

垃圾回收算法一共有7个,G1属于横跨年轻代和年老代的算法(整堆收集器)。JVM会从年轻代和年老代各选出一个算法进行组合,”连线“表示哪些算法可以组合使用。二、各个垃圾收集器说明1、Serial(年轻代/新生代)年轻代收集器,可以和Serial Old、CMS组合使用采用复制算法使用单线程进行垃圾回收,必须暂停其他所有的工作线程,直到它收集结束。回收时会导致Stop The World,即暂停所有用户进程。(”STOP The World“这项工作是由虚拟机在后台自动发起和自动完成的,在用户不可见

2020-09-12 16:32:03 224

原创 JVM5——垃圾回收算法

常见的回收算法分析:1.标记-清除算法(Mark-Sweep)从根节点开始向下扫描,标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。会产生大量内存碎片;效率不高。产生大量不连续的内存碎片会导致分配大内存对象时,无法找到足够的连续内存,从而需要提前触发另一次Full GC动作。2.复制算法(Copying)将整个内存分为大小相等的两部分,一部分用来为对象分配内存,另一部分用来将存活的对象复制过去,方便回收可回收对象(复制过去后,直接回收另一部分的所有对象即可);适用于存活对象少

2020-09-12 16:09:33 193

原创 JVM4——如何判断对象已死?

1.引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。缺点:无法解决对象之间的互相引用问题。导致不能垃圾回收。2.跟搜索算法 / 可达性分析算法 GC Root Tracing主流的商用程序语言(Java、C#,甚至包括前面提到的古老的Lisp)的实现中,都是称通过跟搜索算法(GC Root Tracing)来判定对象是否存活的。通过一系列名为“GC Roots”的对象作为起始点,从这些节点开始

2020-09-12 16:00:45 165

原创 JVM3——Java对象创建时,JVM如何分配内存空间

ps:Java中通过new指令创建对象,当jvm收到一条new指令时,会首先检查常量池中是否可以定位到指定类的符号引用;如果可以,则表示对应类已经加载到jvm中,否则就需要先进行类加载的操作。类检查过程完成以后,会为新生的对象分配内存空间。对象所需的内存空间大小在类加载完成之后随即确定。一.对象内存空间分配受堆空间是否规整影响。而堆空间是否规整 ,取决于JVM采用的垃圾回收机制以及是否有压缩整理功能。分为以下两种方式分配:指针碰撞(堆空间是规整时)即已经分配的内存与未使用的内存都是连续的空间

2020-09-12 15:46:24 560

原创 JVM2——对象访问的两种方式

java对象访问,主流的访问方式分为以下两种:使用句柄:java堆划分出一块内存作为句柄池,reference(引用)中存储的就是对象的句柄地址,句柄中包含对象的实例数据和类型数据各自的具体地址信息。优点:稳定,对象移动只需要改变指针,引用对象本身不需要修改。直接指针:reference引用中直接存储对象地址优点:访问更快,较句柄少了指针定位的时间开销目前比较常见的是第一种,采用句柄来进行对象访问。参考:《深入理解Java虚拟机:JVM高级特性与最佳实践》...

2020-09-12 15:32:48 192

原创 JVM1——JAVA内存划分及对象的内存分配策略

Java虚拟机(JVM)在执行java程序的过程中会把它所管理的内存划分为若干个数据区域。java运行时数据区域是如何划分的?分为线程共享和线程独享的两大区域共享: 方法区和堆独享: 虚拟机栈,本地方法栈,和程序计数器1.Java堆:线程共享,在虚拟机启动时创建。用于存放对象实例、数组。java堆是垃圾收集器管理的主要区域,因此很多时候也被称为GC堆(Garbage Collected Heap)可以处于物理不连续的内存空间中,逻辑上是连续的。2.方法区:线程共享,用于存储已被虚拟机加载

2020-09-11 15:17:32 216

原创 后端map数据,前端转成数组显示

(前言:spring boot项目,使用了Thymeleaf拦截器)后端controller如下: //原料 QueryWrapper<Ingredient> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_del",2); List<Ingredient> list= iIngredientService.list(queryWrapper); HashMap&l

2020-08-16 16:37:34 2052 1

原创 js 时间戳转换为时间格式

当后端存储时间的类型是datetime时,如2020-08-09 06:44:13,返回给前台的数据就是时间戳的形式,如1597025394000js代码如下:<script>//直接用 new Date(时间戳) 格式转化获得时间var createTime = new Date(1597025394000);console.log(createTime.toLocaleDateString())//再利用拼接正则等手段转化为yyyy-MM-dd hh:mm:ss 格式cons

2020-08-09 21:20:17 624

原创 mysql 按日期查询——TO_DAYS函数

TO_DAYS(‘xxx’)函数 : 返回天数,从年份0开始到日期为xxx的“天数”例如:SELECT TO_DAYS('2020-08-01');结果是738003,即从0年开始,到2020年8月1日的天数那么当我们想按日期进行sql查询的时候,可以考虑TO_DAYS()函数(t_order订单表,create_time表示订单的创建时间、datetime类型)查询当天的订单select * from t_order where TO_DAYS(create_time) = TO_DAYS

2020-08-01 21:11:51 2113

原创 修改端口号8080 to 80

#8080 to 80

2020-07-28 11:01:35 887

原创 Eclipse导入项目出现No projects are found to import、中文乱码等问题

首先说一下导入的步骤:1.打开eclipse,左上角选择File------->选择Import2.

2020-06-07 14:57:40 3733

原创 教你五分钟搭建简易版SpringBoot

我们今天搭建的是SpringBoot框架,通过官网自己搭建最基础的框架,方便日后进一步地探索。(小技巧:使用谷歌浏览器或者其他,右键选择翻译成中文,接下来就方便很多啦!但是最近这网站卡的很 ,不知道是为啥)首先来到springboot的官网,https://spring.io/,点击QUICKSTART快速搭建分为三个步骤:Step 1: Start a new Spring Boot project,开始一个新的springboot项目点击start.spring.io,去创建一个项目、添加依

2020-06-03 22:57:02 468

原创 多线程之进程、线程以及线程的创建

首先请注意:线程不是进程,不要将二者混淆。1.什么是进程?我们要知道,计算机上任何程序的运行都必须依托于内存。电脑中会有很多单独运行的程序,每一个可以独立运行的程序,都是一个进程。任务管理器中每一项,都是一个进程。比如下图中的TIM、谷歌、有道云笔记等等。任何一个进程都会独自占据内存一块空间,即进程之间是相互独立存在的2.什么是线程?进程想要执行任务就必须依赖线程。也就是说进程中的最小...

2020-03-05 18:14:49 363

原创 JavaScript——面向对象总结

1.js中定义的类没有父子关系,但这些类都是Object类的子类js作为一种动态语言,允许自由地为对象增加属性和方法。当程序为对象的某个不存在的属性赋值时,即可认为时为对象增加属性。var p={};//定义一个对象,没有任何属性和方法p.age=30;//为p对象增加age属性p.info=function(){ alert("hello");}//为对象增加info属性,也...

2020-02-06 23:37:13 214

原创 JavaScript——函数的参数传递

函数的参数传递全部采用值传递的方式1.基本类型和复合类型的参数传递(1)基本类型当通过实参调用函数时,传入函数里的并不是实参本身,而是实参的副本。因此在函数中修改参数值(或对参数赋值)并不会对实参有任何影响。(2)复合类型(易混淆)<script> function changeAge(person){ // person.age=10; al...

2020-02-06 23:31:44 241

原创 JavaScript——常用运算符总结

JS运算符1.赋值运算符赋值运算符用于为变量指定变量值,与Java、C类似,Javascript用“=”作为赋值运算符。赋值运算符将“=”左边的值赋给“=”右边;赋值运算符可以将一个常量值赋给变量,赋值运算符可以将一个变量的值赋给另一个变量赋值运算符可以将一个表达式的值赋给变量;赋值语句本身也有值,值就是“=”右边的值,所以赋值运算符支持连续赋值,通过使用多个赋值运算符,可以一次为...

2020-02-06 09:04:07 413

原创 JavaScript——语句总结

语句语句是JavaScript的基本执行单位。JavaScript 要求所有的语句都以分号;结束。此外,还有一些特殊的语句,下面具体介绍这些特殊的语句。1.语句块所谓语句块就是使用花括号{}包含的多个语句,语句块是一个整体的执行体,类似于一个单独的语句。2.空语句最简单的空语句仅有一个分号;它一般用于循环初始化,没有循环体的时候。3.异常抛出语句JavaScript支持异常处理,...

2020-02-06 09:03:42 196

原创 JavaScript——函数的相关概念

函数1.定义函数的三种方式命名函数function 函数名(参数列表){…}匿名函数function(参数列表){…}; 注意:不要忘记紧跟分号实际上是定义了一个函数对象即一个Function实例,一般接下来将这个对象赋给另一个变量可读性好、更加方便Function类匿名函数(用的少)2.递归函数(自己调用自己)递归的方向很重要,一定要向已知的方向递归。即有终止条件,否则...

2020-02-05 23:44:37 180

原创 JavaScript——变量总结

变量1. 定义变量隐式定义:直接给变量赋值显示定义:使用var关键字定义变量。声明变量时可以没有初值,且数据类型是不确定的。javascript是弱类型语言,可以对同一个变量在不同的时间赋不同的值。声明变量时无须指定变量的数据类型var a="显示定义";a="隐式定义";2.自动类型转换程序因为操作运算符的不同,会自动转换成不同的数据类型<script type="...

2020-02-05 09:03:53 184

原创 JavaScript——基本数据类型总结

基本数据类型有5种:数值类型Number、布尔类型Boolean、字符串类型、undefined类型、null类型一.数值类型包含整数和浮点数1.支持科学计数法,例:5.12e2表示5.12乘以10的二次方。其中e为间隔符号,不区分大小写如果数值只有小数部分,可以省略整数部分的0,但小数点不能省略,比如0.12,可以省略成.12注意:数值最好不要以0、0X开头,因为JavaScript不仅...

2020-02-05 09:03:22 191

原创 JavaScript——复合类型总结

复合类型Object: 对象。Array: 数组。Function: 函数。1.对象除Object外,JavaScript有如下常用的内置类:Array: 数组类Date: 日期类。Error: 错误类。Function: 函数类。Math: 数学类,该对象包含相当多的执行数学运算的方法。Number: 数值类。Object: 对象类。String: 字符串类。2....

2020-02-05 09:02:53 241

原创 CSS3——media query和响应式布局

一.media query针对不同的媒体设备screen,进行匹配,提供精准的控制,也可对媒体分辨率、色深等进行匹配1.语法:@media not|only 设备类型 [and 设备特性]*其中 [and 设备特性]可以出现无数次,可以对多个设备特性进行匹配不管是电脑、手机还是平板都对应于screen设备一般情况下格式为:@media screen and (设备特性){…}2.针对浏...

2020-02-03 22:44:05 169

原创 CSS3——滤镜效果filter属性

filter属性——滤镜效果属性值如下:opacity(百分比):设置透明度。可用百分比也可用0~1表示blur(Npx):设置模糊brightness(百分比):设置高亮contrast(百分比):设置对比度drop-shadow(阴影的水平位移,阴影的垂直位移,阴影的模糊半径,阴影的颜色) :设置阴影grayscale(百分比):设置灰度hue-ro...

2020-02-03 22:15:08 222

原创 CSS3新增的box-sizing、resize属性

默认下,width和height属性只指定元素的内容的高和宽。而对填充区、边框区和外边距区所占的空间不起任何效果。(盒子模型包含内容区、填充区、边框区和外边距区)...

2020-02-03 21:45:49 229

原创 CSS3——背景相关属性

背景相关属性 backgroundbackground:是一个复合属性,包含background-color背景颜色backgroun-image背景图片 background-repeat背景图片是否平铺background-position背景图片位置(指定该属性前,必须先指定背景图片)background-attachment设置背景图片是随内容滚动scroll还是固定fixe...

2020-02-03 21:12:03 195

原创 CSS——级联样式单与CSS选择器

级联样式单与CSS选择器CSS(Cascading Style Sheet)为级联样式单,也称为层叠样式单,主要用于网页风格设计,包括字体大小、颜色、以及元素的精准定位等。一般推荐把页面外观交给CSS去控制,而HTML标签则负责标签和语义部分。对应于前端程序员来说,必须同时掌握HTML5和CSS的相关知识。一.CSS样式单的基本使用一共有四种使用样式单的方法:链接外部样式文件、导入外部样式文...

2020-01-15 00:55:31 342

空空如也

空空如也

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

TA关注的人

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