自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何使用redis生成唯一编号及原理

在系统开发中,保证数据的唯一性是至关重要的一件事,目前开发中常用的方式有使用数据库的自增序列、UUID生成唯一编号、时间戳或者时间戳+随机数等。在某些特定业务场景中,可能会要求我们使用特定格式的唯一编号,比如我有一张订单表(t_order),我需要生成“yewu(ORDER)+日期(yyyyMMdd)+序列号(00000000)”格式的订单编号,比如今天的日期是20200716,那我今天第一个订单号就是ORDER2020071600000001、第二个订单号就是ORDER2020071600000002

2020-07-16 19:19:57 2038

原创 vue+spring boot实现前后端分离开发

自从前后端分离开发流行之后,饱受JSP摧残的程序员中与解放出来了,除了部分搞全栈开发的程序员,大部分后端程序员只需要专注于后台开发,前端的活之类的就丢给前端的同事做了,真正的是前后搭配,干活不累。前后端项目gitee地址:前端:https://gitee.com/dsxiecn/vue-demo.git 后端:https://gitee.com/dsxiecn/spring-boot-demo.git1.前端项目vue-demo创建前端项目需要安装node和vue环境,如何安装,..

2020-06-07 21:09:55 935

原创 谈谈对ThreadLocal类的理解

源码中对于ThreadLocal类的解释是:/** * This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread that accesses one (via its * {@code get} or {@code set} method) has its own, independently initialize

2020-05-26 15:35:00 402

原创 LinkedList为什么增删快、查询慢

List家族中共两个常用的对象ArrayList和LinkedList,具有以下基本特征。ArrayList:长于随机访问元素,中间插入和移除元素比较慢,在插入时,必须创建空间并将它的所有引用向前移动,这会随着ArrayList的尺寸增加而产生高昂的代价,底层由数组支持。 LinkedList:通过代价较低的在List中间进行插入和删除操作,只需要链接新的元素,而不必修改列表中剩余的元素,无论列表尺寸如何变化,其代价大致相同,提供了优化的顺序访问,随机访问相对较慢,特性较ArrayList更大,而且还

2020-05-24 09:42:33 6433 9

原创 Java线程池简略分析

1.什么是线程?为什么要用线程池? 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务,线程池都是后台线程。 Java中创建和销毁一个线程是比较昂贵的操作,频繁的创建和销毁线程会影响系统性能。使用线程池可以节省系统的开销,节省创建和销毁线程的时间等。2.线程池的几个对象Executor:Java中的线程池接口,接口中只含有一个...

2020-02-16 23:47:04 179

原创 Spring Boot中前后端传递数据方式

Spring Boot中前后端传递数据方式postman作为客户端目前前后端分离开发中用到的最流行的的参数格式是application/x-www-form-urlencoded和application/json。每一种方式都有严格的参数传递格式,如果前后端参数格式传递的不一致,就会出现访问接口异常或者接口接收到的参数为null的情况HTTP请求方法有GET、POST、HEAD、...

2020-01-10 00:07:27 4502

原创 java远程执行linux服务器上的shell脚本

业务场景:需要从服务器A中新增的文件同步至本地服务器,服务器A中内存有限,需同步成功之后清除文件。Java调用远程shell脚本,需要和远程服务器建立ssh链接,再调用指定的shell脚本。1.创建清除文件shell脚本,可以使用touch或者vi命令#创建sh文件vi file_clear.sh#file_clear.sh内容如下#!/bin/bash#将...

2020-01-06 00:15:06 2509 1

原创 谈谈对Java中final关键字的理解

final普遍的认知就是“无法改变或者不需要改变”,但是在不同的应用场景,可能会存在着细微的区别。final一般作用于数据、方法、类1.final数据使用final数据的原因是得到一个永不改变的编译时常量,编译器可以将该常量代入任何可能用到的它的计算中,减轻一些运行时负担。使用时有以下几点要注意基本类型,使用final修饰时,表示数值恒定不变,在进行定义的时候必须对其进行赋值...

2020-01-03 15:00:52 314

原创 如何去MySql主从同步

原理:主服务器负责网站NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模块特性模块固定访问Slave服务器,或者而自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用Mysql的二进制我只文件,实现数据同步,二进制日志由主服务器产生,从服务器响应获取同步数据。配置主库(master)和从库(slave),注意一点,如果两个数据库的版本不一致,主库的版本应该低于从库...

2019-09-17 16:07:48 148

原创 Java编程思想学习笔记---并发

进程:指运行在它自己的地址空间内的自包容的程序。进程间相互隔离,不会彼此干涉。线程:1.并发的多面性 更快的执行:并发通常是提高运行在单处理器上的程序的性能。 实现并发最直接的方式是在操作系统级别使用进程。 Java的线程机制是抢占式的,调度机制会周期性的中断线程,将上下文切换到另一个线程,从而为每个线程都提供时间片,使得每个线程都会分配到数量合理的时间去驱动...

2019-08-13 22:48:52 214

原创 Java中类加载机制

1.类的加载、连接、初始化 程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤对该类就行初始化。 加载指将类的class文件读入内存,并为之创建一个java.lang.Class对象。类的加载由类加载器完成,加载器通常由JVM提供,称为系统类加载器,也可以通过继承ClassLoader创建自己的类加载器。 当类被加载之后,系统为之...

2019-08-12 16:05:03 163

转载 java初始化机制

1 初始化1.1 构造器初始化:构造器采用与类相同的名称,默认构造器(也叫无参构造器),有参构造器; 如果一个类中提供了有参数构造器,没有显示的提供默认构造器的话,那么此时初始化无参构造器会出现编译时错误,如果还想使用无参构造器就需要显示的提供无参构造器。 构造器是一种特殊类型的方法,没有返回值,但这和返回值为空(void)明显不同,对于空返回值,尽管方法本身不会自动返回什...

2019-03-26 21:12:01 209

原创 vue打包后放到springboot后台项目中访问body为空

1.现象确认了前台打包路径和打包后的文件防止路径没有问题调试找之后发现,后台中拦截器部分出了问题,看后台拦截器的配置这三个接口不拦截,但是启动后输入localhost:8086/,拦截器中还是被拦截了,返回了false最后发现一个不起眼的注解让我搞了半天,需要记录下脑子进坑的时刻注:spring boot和vue整合一般不需要做特别的配置,只需要将vue...

2019-03-07 16:51:49 4117

原创 Netty框架学习及第一个Netty应用

1.什么是Netty?    Netty是一个利用Java的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的API的客户端/服务器框架。Netty提供高性能和可扩展性,让你可以自由地专注于你真正感兴趣的东西。2.发展历史:    网络发展初期,花费很多时间学习socket的复杂、寻址等,在C socket库上进行编码,并需要在不同的操作系统上做不同的处理。    Java早期...

2019-02-11 16:13:35 1450

原创 Spring Boot集成ActiveMQ 一

1.ActiveMQ简介   需要使用ActiveMQ就要先知道ActiveMQ是什么东西,ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。 ActiveMQ完全支持了JMS1.1和J2EE1.4规范的JMS Provider实现。    多种语言和协议编写客户端,语言:Java、C、C++、C#、Ruby、Perl、Python、PHP,应用协议:OpenWire、...

2019-01-18 16:53:06 203

原创 ActiveMQ安装

1.Windows环境安装ActiveMQ当前ActiveMQ最新版为5.15.8进入ActiveMQ最新版下载页面:http://activemq.apache.org/activemq-5158-release.html ,选择windows环境的压缩包,点击下载    下载完之后点击解压,自定义解压路径,我这里放在D盘解压完之后进入D:\apche-activemq-...

2019-01-17 15:51:14 203

原创 JAVA的内存模型

寄存器:最快的存储区,位于处理器内部,但是寄存器数量有限,需要根据需求分配,不能人为控制,也无法感觉其存在的任何迹象。堆栈:位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器获得直接支持。堆栈指针若向下移动,则分配新的内存,若向上移动,则释放那些内存,这种快速有效的分配存储方法仅次于寄存器。在创建程序时,Java系统必须知道存储再堆栈内所有项的确切生命周期,以便上下移动堆栈指针,这一...

2019-01-08 14:39:40 111

原创 阿里云服务器使用yum安装redis,配置开机自启

前言自己买了个阿里云服务器,在安装redis之后,想要将redis注册为系统服务,并设置开机自启,走了些弯路,但最终弄好,记录下,也希望能帮到广大码农。1.安装gcc如果没有需要先进行安装,使用一下命令,但一般阿里云服务器都会有 yum install cpp 2.安装redis去redis官网,https://redis.io/download,这步可以跟着官网的步骤...

2018-09-27 23:04:32 1317

转载 JAVA中垃圾回收器的工作原理

1清理 Java中有垃圾回收器负责回收无用对象占据的内存资源,但是也有特殊情况,垃圾回收器只知道释放那些经由new分配的内存,对于非使用new分配的内存,垃圾回收器就不知道该如何释放,为了应对这种情况,Java允许在类中定义一个名为finalize()的方法。工作原理假定是这样的:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收...

2018-04-16 15:13:42 380

原创 web页面添加使用excel表格批量导入功能

应用场景:注册一批数据格式相同的账号,可以通过页面注册一个个注册,但当数据量大的时候,就比较费力了,而且效率海还低,所以通过整理出固定格式的excel表格,将数据填在表格内,通过在页面导入,后台解析自动注册。前端使用页面展示html页面代码js逻辑代码  调用后台接口对excel进行解析,一开始联调后台老是接收不到我传的文件,一开始我以为是我选择的组件的原因,于是换了种方式,使用了element-...

2018-04-02 11:42:07 15867

原创 sessionStorage和localStorage的区别:

最近开发中老遇到一个问题,就是账号登录web,退出或者关掉浏览器之后,重新打开页面自动进入了之前登录的页面,出现的的问题就是session不会失效。本地登录后使用localStorage去存储登录信息,后面网上查了查,才知道sessionStorage和localStorage的区别:它们都是客户端存储数据的对象,都是通过键值对来存储数据,通过setItem( key, value)存储,getI...

2018-03-27 12:36:23 188

转载 34个数据库常见面试题

1、触发器的作用? 触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。2、什么是存储过程?用什么来调用? 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建

2017-12-20 22:11:08 503

原创 使用eclipse创建maven项目,spring4 mvc

配置好jdk环境,安装好eclipse,打开eclipse1.新建maven项目,file-->new--maven project,如果没有maven project选项,点击other2.进入maven project之后,点击next3.选择webapp,点next4.输入group id和Artifact ID,pakage不输入也可

2017-12-18 20:06:51 231

转载 Mybatis和Hibernate区别

Mybatis和Hibernate区别1.hibernate是全自动的,mybatis是半自动。hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql,而mybatis只有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。2.hibernate数据库移植性远大雨mybatishiber

2017-12-18 13:09:13 186

转载 spring boot和spring mvc简单区别

spring boot和spring mvc的区别:1.spring boot更简单,容易上手;2.spring boot对第三方技术进行了很好的封装,提供了大量的第三方接口;3.通过依赖配置,不需要XML等配置文件;4.提供了安全性等特性。...

2017-12-18 12:48:05 2321

转载 分页查询语句

mysql分页查询使用limit关键字,LIMIT[offset,]rows,offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0。例如select * from table_name limit 0,5;//取前五条数据select * from table_name limit 10,15;//取第11到15条数据oracle分

2017-12-18 12:40:30 176

转载 springMVC工作流程

1、用户发送请求至前端控制器DispatcherServlet,DispatcherServlet是spring项目的入口2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherServlet调用Handler...

2017-12-18 12:25:56 6720 3

原创 使用Hibernate原生API实现CURD操作

Configuration对象:主要作用是从配置文件hibernate.cfg.xml文件中读取数据的基本信息,比如url、用户名、密码、驱动程序名称等来连接指定的数据库,创建SessionFactory借口对象。Configuration configuration = new Configuration();configuration.configure(hibernate.cfg.x

2017-12-17 14:07:31 425

转载 持久层、持久化、ORM

持久化:只是将数据保存在可掉电的存储介质上。但是仅仅的持久化会使项目不可维护或者后期维护不利,简单的保存功能已经完全满足不了现在软件开发的模块性、可维护性、扩展性、分层性原则,所以就需要一种技术框架,将业务层和数据库之间保存的操作做到可维护性、扩展性、分层性,于是就出现“持久层”的概念。持久层:设计目标是为整个项目提供一个衔接高低层、统一、安全和并发的数据持久机制,完成对各种数据库

2017-12-17 12:34:44 1069

原创 删除list中的偶数

应该还有其他方法,小码农在这就不写了

2017-12-16 19:25:43 4734

原创 NIO

传统IO都是阻塞式的输入输出,就是说如果输入输出的数据源中没有数据,程序就会在此阻塞程序的执行,通过字节的移动来处理,系统一次只能出来了一个字节,效率不高。新IO采用内存映射文件的方式来输入输出,将文件或者一段区域映射到内存,这样就可以像访问内存一样放完文件了,这种方式要比传统IO快得多。如果说传统的输入输出是系统面向流的处理,则新IO是面向块的处理。Channel(通

2017-12-15 18:07:41 171

原创 java多线程交替打印0-100的奇偶数

package thread;public class PrintSD { //定义打印的方法 public synchronized void print(String str){ notify(); System.out.println(str); try { wait(); } catch (InterruptedException e) { //

2017-12-14 14:11:15 2512

原创 Java多线程打印ABABABAB

思路:多线程打印AB,就需要两个线程类,一个线程负责打印一个,调用wait()和notify()方法去控制线程间的通信package thread;public class PrintAB {//声明boolean变量用来控制打印private boolean flag = false;//打印Apublic synchronized void prin

2017-12-14 13:45:30 1608

java线程池分析.pdf

查看jdk1.8,简要分析java中常用线程池的几个对象,包括一些基本方法的使用,jdk8中新增的方法,线程池这块的内容比较多,人力有时尽,后续慢慢的分析,提升自身的同时也把所学分享。 熬夜赶出,各位给个小星星

2020-02-16

空空如也

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

TA关注的人

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