自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

向阳居士的博客

分清你是很努力,还是假装很努力!

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

原创 es 修改mapping

es不能修改mapping哈哈哈是不是以为自己要凉了不是的虽然不能修改但是 我们可以删了再建 当然删之前数据还是要备份一下的

2021-06-23 19:52:36 4133 3

原创 zmqclient的稳定接收(意外断开处理)

这里写目录标题zmqclient简单demo(java)zmqclient加上事件监控定时重连zmqclient简单demo(java)1.pom.xml <!-- ZeroMq--> <dependency> <groupId>org.zeromq</groupId> <artifactId>jeromq</artifactId>

2020-07-10 16:43:54 3020 5

原创 jprofiler内存分析和java程序高cpu占用线程的查找

jprofiler内存分析查看项目所有对象的创建1、创建记录 选择【start Recording】–>【Configure Recording Profiles】2、选择自己想记录的信息 【OK】3、我们在开始记录之前 先【Run GC】一次, gc后开始标记【Mark current】,以当前的对象实例数为基准 之后新增的会有其他颜色区分出来。4、开始记录【Start Recordings】 选择刚配置的10325、在准备结束监控日志前 再进行一次【Run GC

2020-05-21 15:11:33 1584

原创 gradle安装与配置

gradle下载地址选择合适的版本,点击binary-only 下载gradle-[version]-bin.zip我用的是idea,想要知道自己使用的idea版本对应的gradle的版本可以通过查看idea安装路径中的\plugins\gradle\lib下查看jar包版本。上面的压缩包下载后如下 刚下载的时候没这么多 我是因为配置的Service directory pat...

2020-03-26 09:30:19 751

原创 redis数据结构

redis数据结构redis的五种数据结构字符串常用命令内部编码哈希常用命令批量操作获取所有内部编码列表简介常用命令列表使用内部编码集合简介常用命令内部编码使用场景有序集合简介常用命令常用命令内部编码四级标题五级标题六级标题redis的五种数据结构字符串、哈希、列表、集合、有序集合。字符串常用命令nx:key不存在 操作成功 用于新增操作setnx: 当key不存在时才能够设置成...

2020-03-20 09:00:51 183

原创 redis为什么可以这么快

redis是c实现的,c语言实现的程序“距离”操作系统更近,执行速度相对更快;单线程的架构,预防多线程的竞争问题:使用单线程处理命令。(可达到每秒万级别的处理),单线程避免线程切换和竞态产生的消耗;纯内存访问,所有数据放在内存中,内存的响应时长100ns(纳秒:一秒的十亿分之一) ;I/O多线程复用模型,非阻塞 使用epoll作为I/O复用技术;...

2020-03-16 10:10:38 124

原创 springData 实现mongodb 分组(group)操作

废话不多说 直接上代码吧import org.springframework.data.mongodb.core.aggregation.Aggregation;import org.springframework.data.mongodb.core.aggregation.AggregationResults;import org.springframework.data.mongod...

2020-03-05 14:39:14 3506

原创 mysql5.7的安装

官方下载地址:https://dev.mysql.com/downloads/file/?id=4854771.我下载的是解压版,将安装包拷贝到安装目录下解压2.配置环境变量,在path下添加 mysql安装的bin路径3.创建my.ini注意事项如下(1.路径要用\\ 2.不要设置数据库的数据存放路径 datadir,这个目...

2019-05-18 20:38:19 348

原创 获取最近联系人列表,显示联系人最新的一条消息

SELECT * FROM(SELECT * FROM(#查询最近发过消息的联系人SELECTim.message_id,im.message_receiver as mobile,im.message_contentFROM iddb.id_im_message as imWHERE im.message_sender = '13005066609' AND im...

2019-03-28 09:23:23 2182

原创 简述IO,BIO,NIO,AIO编程模型

阻塞进行读写时,如果没有东西可读,或者暂时不写,程序就进入等待状态直到有东西可读为止。非阻塞是如果没有东西可读,或者不写,读写函数马上返回。同步同步是指用户操作后等待或者轮询的去查看操作是否就绪异步异步是指用户某动作操作后便开始做其他动作,而当这个动作操作完成的时候,用户会得到这个动作完后才能的通知。同步阻塞io用户进程发起一个io操作,必须等待io操作完成,只有当...

2019-03-08 12:14:34 248

原创 java垃圾回收算法

常用的垃圾回收算法:1.引用计数算法给对象添加引用计算器,每多一个引用的地方就加一,引用失效时就减一,当计数器为0时,表明对象未被使用,垃圾回收器可以收集该对象特点:实现简单,效率高,python、微软COM等都是使用引用计数器算法管理内存。缺点:难以解决由于对象间的相互循环引用的问题。2.跟搜索算法通过判断某个对象能否通过节点和"gc root"相连,如果没有,说明该对象...

2019-03-08 12:12:22 12396 4

原创 线程池及Executor框架

为什么要使用线程池?    诸如web服务器、数据库服务器、文件服务器或邮件服务之类的许多服务器应用程序都面向处理来自远程的大量短小的任务。请求以某种方式到达服务器,这种方式可以通过网络协议(HTTP、FTP)通过JMS队列或者可能通过轮询数据库。不管请求如何到达,服务器应用程序经常出现的情况是:单个任务处理的时间很短而请求的数目却巨大。如果每一个请求到达就创建一个新的线程,然后在新线程中处理...

2019-02-26 14:47:19 241

原创 在线程中你怎么处理不可捕捉异常

异常:1.CheckException(非运行时异常):对于可恢复条件被检查的异常2.UnCheckException(运行时异常):已经运行不可恢复的异常。run()方法不支持throws语句,所以当线程对象的run()方法抛出非运行时异常时,必须捕获并处理他们。当运行时异常从run方法中抛出时,默认行为是在控制台输出堆栈记录并退出程序。解决方法一般是调用线程的setUncaug...

2019-02-26 11:17:16 2495

原创 并发容器

同步容器与并发容器    Vector、HashTable -- JDK提供的同步容器类    Collections.synchronizedXXX本质是对相应的容器进行包装    同步容器类的缺点          在单独使用里面的方法的时候,可以保证线程安全,但是,复合操作需要额外加锁来保证线程安全,使用Iterator迭代容器           或使用for-each遍历...

2019-02-19 20:12:27 830 2

原创 原子类

什么是原子类  以前认为原子是不可分割的最小单位。故原子类可以认为其操作时不可分割的。  为什么要有原子类    对多线程访问同一变量,我们需要加锁,而锁是比较消耗性能的,jdk1.5之后,新增的原子操作类提供了一种简单、性能高效、线程安全地更新一个变量的方式,这些类同样位于juc包下的atomic包下,发展到jdk1.8,该报共有17个类,囊括了原子更新基本类型、原子更新数组、原子更...

2019-02-19 20:11:52 7597 2

原创 并发工具类CountDownLatch、CyclicBarrier、Semaphore 、Exchanger

CountDownLatch    await(),进入等待的状态    countDown,计数器减一   简单例子 某些代码需要等待其他的一系列线程执行完毕后才能执行,如下实现当for循环中的线程执行完后打印出多线程执行完毕。import java.util.concurrent.CountDownLatch;/** * */public class CountDo...

2019-02-19 20:11:08 393

原创 java四种对象引用

1.强引用:与强引用关联的对象,JVM一定不会回收,内存不足时会抛出OutOfMemery。2.软引用:与软引用关联的对象,在内存不足时会被JVM回收利用。3.弱引用:只要JVM进行垃圾回收,就会被回收。4.虚引用:和没引用关联是一样的,随时可能被回收。软引用、弱引用可以和引用队列(ReferenceQueue)联合使用,如果引用被垃圾回收器回收,java虚拟机会把这个引用加入与之...

2019-02-19 20:10:18 214

原创 JVM虚拟机内存模型

1.说jvm的内存模型前先了解一下物理计算机的内存处理。物理计算器上用户磁盘和cpu的交互,由于cpu读写速度速度远远大于磁盘的读写速度速度,所以有了内存(高速缓存区)。但是随着cpu的发展,内存的读写也跟不上cpu的读写速度了,cpu的产商就给每个cpu加入了一个高速缓存,也就是下面的结构。每个cpu都有自己的高速缓存,在多核处理环境下,就会出现内存一致性问题,所以在运行时制定了一系...

2019-02-19 20:09:59 579

原创 idea多线程debug

多线程的测试和正常测试有些区别,如果你想下观察每个线程的运行情况你就需要再idea上做一些设置。具体如下:1.进入debug模式,选择如图左下放双元两点的按钮,弹出框后将默认的all改成Thread就ok了  这个时候你再去debug就可以一个线程一个线程的去测了。...

2019-01-24 09:34:09 1198

原创 读写锁

读写锁的特性读读是共享的。读写,写写是互斥的。1.读读互斥例子import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class ReentrantReadWriteLockDemo { private int i = ...

2019-01-23 09:47:23 3675

原创 单例与线程安全

饿汉式--本身线程安全      在类加载的时候,已经进行实例化/** * 饿汉式单例 * 类加载的时候就实例化 */public class HungerSingleton { private static HungerSingleton ourInstant = new HungerSingleton(); public static HungerSing...

2019-01-22 09:40:38 539

原创 守护线程

1.线程分类用户线程:用户线程没有运行完成,程序就不会退出。守护线程:任何一个守护线程都是整个程序中所有用户线程的守护者,守护线程会跟随用户线程活着,如果最后一个用户线程运行完成,守护线程就会跟着最后一个用户线程一起结束。守护线程的用处?jvm垃圾清理线程一个简单的守护线程Demopublic class DaemonDemo implements Runnable{ ...

2019-01-22 09:39:54 108

原创 线程优先级

什么是线程优先级?线程的优先级就是告诉程序每个线程的重要程度。如果有大量的线程被堵塞,都在等待运行,程序会尽可能地运行优先级高的那个线程。但是并不代表优先级低的线程不会运行,只是说优先级低的线程被允许执行的概率会比高优先级线程允许执行的概率低。查看Thread源码可以看到,线程优先级最大是10, 最小是1 ,默认是5,一般情况下推荐使用下面三个常量,不要自行设置数值。 /**...

2019-01-22 09:39:41 335

原创 线程的挂起

1.什么是线程的挂起?  线程的挂起操作实质上就是线程进入"非可执行"状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。  线程挂起后,可以通过重新唤醒线程来使之恢复运行。2.为什么要挂起线程?  cpu分配的线程片非常的短、同时也非常珍贵。避免资源的浪费。3.挂起线程的方法?( 1、废弃的方法     thread.suspen...

2019-01-22 09:39:26 16165

原创 线程的中断操作

1.stop()方法已经弃用,一但调用会立刻停止线程释放资源,容易产生线程安全性问题。2.Thread.interrupt()方法使用该中断方式,往往和while (!Thread.currentThread().isInterrupted())配套使用,根据中断状态来判断是否继续执行public class InterruptDemo implements Runnable{...

2019-01-22 09:38:52 266

原创 Sychronized实现原理

Sychronized使用java对象作为锁(锁的状态保存在java对象头部)。使用sychronized可以保证在同一时刻只能有一个线程进入同步代码,并保证共享变量对其他线程的可见性。1.说到实现原理这里先介绍一下内置锁和互斥锁:内置锁:每个java对象都可以用做一个实现同步的锁,这些锁称为内置锁。线程进入同步代码块或方法的时候会自动获得该锁。在退出的时候会释放该锁。获得内置锁的唯一...

2019-01-18 18:07:47 903

原创 内存泄漏和内存溢出

内存泄漏:不再使用的对象不能被回收,资源无法被释放,少量的话没什么大影响,多的话还会导致内存的浪费,拖慢程序运行速度,甚至系统崩溃。内存溢出:实际能够使用的内存空间满足不了请求需要的内存空间,就会报内存溢出,比如栈满时作进栈请求叫做上溢,栈空时座退栈请求叫下溢。两者之间的区别:内存泄漏的堆积,最终会导致内存溢出。  ...

2019-01-18 10:11:37 118

原创 Java字节流和字符流的区别

1.字节流是使用InputStream、OutputStream操作的,字符流是使用Reader、writer操作(以上提到的都是抽象内,日常开发用的都是他们的子类)。2.字节流操作单位是字节,直接处理二进制(不支持UniCode码元)直接操作文件,字符流不会直接操作文件,会有一个缓存(一块内存空间),数据先加载到缓存(字符其实是在缓存区中形成的),程序再从缓存中读取,支持Unicode。...

2019-01-18 10:11:16 202

原创 HashMap、HashTable、TreeMap区别

1.HashTable:比HashMap出现的早,迭代遍历是使用Enumeration这点和Vector是一样的。Enumeration现在也很少用了,基本已经被Iterator所取代,Iterator(hasNext()、next()、remove())相比Enumeration(hasMoreElements()、nextElement())接口多了一个remove功能,Enumeration...

2019-01-17 15:41:54 259

原创 HashMap实现原理

1.数据结构分析JDK8之前的版本:数组+链表 (下面引用别人博客的一张图,图片原博客)数组中是Entry,Entry中next存有下一个Entry中的引用,比如A先存在table[0]中 一会又来了个B也要放到table[0]中,就会变成B放table[0]中,B中的next放A的引用。存放是时候根据key进行hash计算来找到该键对应到数组中存储的索引位置,尽量均匀的分布到数组...

2019-01-17 11:38:03 79

原创 ArrayList、LinkedList、Vector的区别

1.从存储数据结构分析ArrayList:数组Vector:数组LinkedList:双向链表数组:可以根据下标快速查找,所以大部分情况下,查询快。但是如果要进行增删操作的时候,会需要移动修改元素后面的所有元素,所以增删的开销比较大,数组的对增删操作的执行效率低。而采用数组作为数据存储结构的ArrayList、Vector也存在这些特性,查询速度快(可以根据下标直接取,比迭代查找更...

2019-01-15 16:55:34 11135 5

原创 String,StringBuilder,StringBuffer区别

String:字符常量,适合少量字符操作,不容易经常改动的字符操作。StringBuilder:字符变量(非同步),适合单线程在字符缓冲区的大量操作。StringBuffer:字符变量(同步),适合多线程在字符缓冲区的大量操作。String作为字符常量,存储在jvm的常量池中,同样内容的字符串在常量池中只被创建一次。StringBuilder,StringBuffer 作为普通对象...

2019-01-14 16:45:37 127

原创 springboot jpa之返回表中部分字段的处理方法

使用springboot jpa操作数据库可以加快我们的开发效率,对于简单的crud操作来说,使用jpa来开发不要太爽,但是说实话对于一些复杂的数据库操做jpa使用起来就不是这么爽了。在开发中很多时候我们要返回的可能只是数据库表中或某个类中的一部分字段,这个要是用mybatis的话就很简单,直接在sql中select字段就好了,规范一点就数据传输类接一下,偷个懒的话直接用map接就完事了。但就...

2019-01-11 10:20:48 13098

原创 springboot 整合shiro,Realm类中@Autowired失效无法注入bean

最近一直在码代码没怎么测试,今天一登录竟然发现登录都报错了。报错代码CustomRealm.java 中的如下代码 Optional&lt;Users&gt; usersOptional = usersRepository.findByUserName(userName); if(!usersOptional.isPresent()){ thro...

2019-01-09 15:53:20 3518 3

原创 maven安装

    1、先在百度上搜索maven,选择第一个官网,点击download2、选择下载zip格式3、解压到安装目录4、进行环境配置现配新建一个配置安装路径命名通常为M2_HOME,我也是采用这个的,像我就是 D:\soft\java\apache-maven-3.3.9然后将这个配好的路径加入到path中,路径(不能是maven\路径 这样配置会没反应的)一直配...

2019-01-07 16:54:44 146

原创 guns快速搭建后台管理系统

最近开发一个新项目,作为一个后台不得不说,项目拿到手我最不想写的模块就是后台管理系统,感觉就跟鞋裹脚布一样又臭又长,无穷无尽的增删查,想想就觉得没意思,但是写项目又逃不开它,没办法尽量找一个方便使用的后台管理系统框架吧,一个好的后台管理系统框架可以让我们少做很多事情,有跟多的时间来编写自己感兴趣的代码,下面就介绍一下guns这个方便的后台管理系统框架如何快速使用。 1、项目可以从...

2018-10-24 18:33:10 5921 2

原创 springBoot 整合websocket

前言:最近开发公司的一个会员卡,酒店预订房间的功能,考虑到要实现后台管理的订单提示,所以在项目中引用websocket,事实上在spring boot中引入webSocket 还是非常简单的,但是我还是爬了很多坑,在此记录一下希望可以帮助一些可能同样会爬坑的同学。1:jar包的引入,只引这个的前提是使用tomcat7.0以上的版本,我用的是tomcat8,所以用这个就够了,若是低版本的还需引入...

2018-07-30 11:21:33 1646 7

原创 微信开发-服务器配置(处理事件推送)

    1.微信公众平台-&gt;开发-&gt;基本配置-&gt;服务器配置服务端使用java开发的,第一次服务器的验证代码如下: @GetMapping("/checkWechat") public void wechatCallbackApi(@RequestParam("signature") String signature, @RequestParam("timestamp"...

2018-05-30 10:58:09 4701 3

原创 微信会员卡开发之微信公众平台的基本配置

    最近公司名下有一家酒店要开张,所以让技术部开发一套简单的微信会员卡,满足前期的基本需求,在此记录下开发在微信公众平台需要进行哪些基本的配置。    1.配置ip白名单(在IP白名单内的IP来源,获取access_token接口才可调用成功。)。    登录微信公众平台-&gt;开发-&gt;基本配置-&gt;ip白名单            2.配置网页授权域名(常见的获取openid  ...

2018-04-26 11:52:30 3979

原创 SpringBoot jpa的使用

    最近的工作要开发一个新项目,想用 SpringBoot 在此记录一下jpa的使用。    1.工欲善其事必先利其器,第一步自然是引入jar包了,我用的是maven,在pom.xml文件中加入如下即可: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifact...

2018-03-12 16:11:45 1416 1

空空如也

空空如也

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

TA关注的人

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