java
文章平均质量分 59
抓住流浪剑客的小Yi巴
毕业于太原理工大学,目前浪迹于首都北京,资质尚浅,多多指教
展开
-
如何在spring事务提交成功后再进行异步操作
业务场景:我们经常会有些方法会调用一些方法异步执行,比如入库操作后要异步发送mq消息,发送短信或者发布事件等等但是往往我们的业务方法总是包含事务的,要么全部成功,要么全部失败。有的时候事务执行失败了或者还没有提交,异步方法就执行完成了我们希望:当我们事务失败回滚时,我们的异步操作也不执行我们的异步操作需要等待事务完成后才执行比如:@Transactional(rollbackFor = Exception.class)public boolean testTransactional()原创 2021-02-18 17:50:18 · 4481 阅读 · 5 评论 -
neo4j(一).初识图数据库neo4j
neo4j是图数据库初识neo4j,首先我们要知道neo4j是图数据库。我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢?1.什么是图数据库简单来说:图形数据库(图形数据库也称为图形数据库管理系统或GDBMS。图数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。它的数据模型主要是以节点...原创 2019-02-26 19:00:22 · 5181 阅读 · 0 评论 -
neo4j(二).使用neo4j-import导入数据及关系
背景上节我们了解了什么是图数据库,作为研究对象的neo4j的特点,优缺点以及基本的环境搭建。现在我们要讲存储在csv中的通话记录数据导入到neo4j中去,并且可以通过cql去查询导入的数据及关系1.选取导入方式neo4j的导入方式有很多,我大概总结了一下:Cypher CREATE 语句,为每一条数据写一个CREATECypher LOAD CSV 语句,将数据转成CSV格式,通过...原创 2019-02-26 19:01:18 · 10913 阅读 · 6 评论 -
解决问题 com.alibaba.fastjson.JSONObject cannot be cast to 的问题
我们通过接口的形式得到一组json数据如下:{ "name": "小名", "age":19 "subTradeList": [ { "balance": "2083.63", "money": "0.01", "tradeDe原创 2019-03-11 17:38:45 · 61068 阅读 · 5 评论 -
lombok原理、springboot中安装使用
背景在面向对象编程中最常用的就是去编写一些对象类,然后定义对象的一些Get/Set、toString、hashcode等方法,还有无参全参的构造函数等等,虽然编译器会给我们自动生成,但是总是感觉代码过于冗余,而且当我们修改对象的某个属性的时候,需要去找到对应的get,set,toString方法等,然后依次修改,这样确实很麻烦。那么是否一款插件或工具能够自动地实现这个方法呢?本文将向大家介绍一款...原创 2019-03-12 12:45:39 · 287 阅读 · 0 评论 -
Redis专题(二).Redis数据结构底层探秘
前言上一节 Redis专题(一).初识Redis及Redis基本知识总结我们了解了redis的基本概念、优缺点以及它的内存淘汰机制,我们对redis有了初步的认识。不得不说互联网的很多应用场景都有着Redis的身影,它能做的事情远远超出了我们的想像,那么它的底层数据结构到底是什么呢,为什么它能做这么多的事情。让我们一起看一下Redis的底层数据结构以及常用的命令。本节知识脑图展示一下:一...原创 2019-04-23 20:09:28 · 291 阅读 · 0 评论 -
简洁方便的集合处理 —— java8 stream流
背景java8已经发行了好几年,前段时间java12也已经问世,但平时的工作中,很多项目的环境还停留在java1.7中。但是java8的很多新特性都是革命性的,各种集合的优化,lambda表达式,所以我们还是要去了解java8的魅力。今天我们学习一下java8的Stream,并不需要理论基础,直接可以上手去用。起初我接触stream的原因,是我要搞一个用户收入消费的数据分析,起初的统计筛选分...原创 2019-05-10 18:30:27 · 903 阅读 · 0 评论 -
关于java序列化的问题你真的会吗?
引言在持久化数据对象的时候我们很少去使用java序列化,而是去使用数据库等方式。但是在我看来,Java 序列化是一个很重要的内容, 序列化不只可以保存对象到磁盘进行持久化,还可以通过网络传输。在平时的面试当中,序列化也是经常谈及的一块内容。当谈及序列化的时候,大家可能知道将类实现Serializable接口就可以达到序列化的目的, 但是当我们看一些序列化的面试题我们却一脸懵逼。可序列化接口...原创 2019-08-15 18:36:40 · 452 阅读 · 0 评论 -
HashMap 你真的了解吗?
一. hashmap简介HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接...原创 2019-02-11 17:05:00 · 503 阅读 · 0 评论 -
java并发编程(一)
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内...原创 2018-04-10 17:31:00 · 91 阅读 · 0 评论 -
多态:JVM是如何进行方法调用的
在我们平时的工作学习中写java代码时,如果我们在同一个类中定义了两个方法名和参数类型都相同的方法时,编译器会直接报错给我们。还有在代码运行的时候,如果子类定义了一个与父类完全相同的方法的时候,父类的方法就会被覆盖,(也就是我们平时说的重写)。那么,jvm虚拟机是如何精确识别目标方法的。重载、重写与多态重载:方法名相同而参数类型不相同的方法之间的关系。重写:方法名相同并且参数类型也...原创 2019-01-07 18:36:00 · 314 阅读 · 1 评论 -
(转载)java高并发:CAS无锁原理及广泛应用
版权声明:本文为博主原创文章,未经博主允许不得转载,转载请注明出处. 博主博客地址是 http://blog.csdn.net/liubenlong007 https://blog.csdn.net/fgyibupi/article/details/53761730前言在现在的互联网技术领域,用户流量越来越大,系统中并发量越来越大,大公司的日活动辄成百上千万。如何面对如此高的并发是当今互联...转载 2018-08-23 17:25:00 · 148 阅读 · 0 评论 -
netty实现客户端服务端心跳重连
前言: 公司的加密机调度系统一直使用的是http请求调度的方式去调度,但是会出现网络故障导致某个客户端或者服务端断线的情况,导致很多请求信息以及回执信息丢失的情况,接着我们抛弃了http的方式,改为Tcp的方式去建立客户端和服务器之间的连接,并且要去实现断线重连的功能,经过讨论后决定使用java中成熟的nio框架 – netty去解决这一系列的问题。1. ne...原创 2018-08-15 17:55:00 · 3579 阅读 · 0 评论 -
转载:tcp详解
转自:http://www.cnblogs.com/kzloser/articles/2582957.html首部格式图释:各个段位说明:源端口和目的端口: 各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端口才能实现 序号: 占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数据...转载 2018-08-14 18:38:00 · 131 阅读 · 0 评论 -
java实现微信小程序服务端(登录)
微信小程序如今被广泛使用,微信小程序按照微信官网的定义来说就是: 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。 这就是微信小程序的魅力所在,有的时候我们不需要去下载过多的app,只要打开微信,就可以应用每一个服务,甚至连注册都变得简单起来,具有特别贴近人心的用户体验。 最近在做一个微信小程序的服务端,主要就是实现登录...原创 2018-07-13 11:54:00 · 3058 阅读 · 0 评论 -
Springboot(八):emoji表情保存到mysql出错的解决办法
今天,在前端的说明信息中输入emoji表情的时候,插入数据库会报错百度了一下,是因为mysql数据库的字符编码集不正确,utf8无法存入表情字符,只能将字符集改为utf8mb4才可以,然后我们执行sql去改变数据库使用SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'c...原创 2018-07-12 19:22:00 · 848 阅读 · 0 评论 -
java实现md5加密
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。一.使用md5加密密码我们先用java去实现md5加密密码,再去研究一下md5的原理以...原创 2018-06-15 18:10:00 · 552 阅读 · 0 评论 -
深入理解Spring(一):初识Spring
一. Spring介绍 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使...原创 2018-04-23 18:58:00 · 259 阅读 · 0 评论 -
设计抗住千万级流量的架构思路
随着互联网的发展,各项软件的客户量日益增多,当客户量达到一定峰值时,当数以万计的流量来临时,程序的顺利运行以及即时响应则显得尤为重要,就像双11那天的淘宝一样。那么,如何设计架构才能够抗住这千万级的流量。首先,要在我们架构设计的时候建立一些原则。 1.实现高并发 服务拆分:将整个项目拆分成多个子项目或者模块,分而治之,将项目进行水平扩展。 服务化:解决服务调用复杂之后的服...原创 2018-04-15 01:49:00 · 291 阅读 · 0 评论 -
分布式服务动态上下线感知
首先,我们要从解决问题的角度得知分布式服务的由来,从单机服务到分布式服务经历了哪些过程 起初,服务是比较单一的,在一个工程包之中会包含所有的模块,但随着互联网的快速发展,客户流量的增多,点击量数据量的增多,导致对架构方面的冲击较大,想要在用户量和数据量较大的情况下做到即时相应的话,就需要去提升后端架构的性能。早期我们会去提升服务器硬件设备,但是还是无法达到预期的效果,只能...原创 2018-04-11 17:48:00 · 529 阅读 · 0 评论 -
海量数据搜索---搜索引擎
在我们平常的生活工作中,百度、谷歌这些搜索网站已经成为了我们受教解惑的学校,俗话说的好,有问题找度娘。那么百度是如何在海里数据中找到自己需要的数据呢,为什么他搜索的速度如此之快,我们都知道是因为百度的搜索引擎,那么搜索引擎到底是个什么东西呢?可能有的程序员会想到es,但是并不能代表搜索引擎,它只是其中的一种工具,不过这种工具确实好用,效率很高。 本文会向大家讲述搜索引擎的基本知识以...原创 2018-11-13 16:09:00 · 413 阅读 · 0 评论