自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (5)
  • 收藏
  • 关注

原创 Java8 lambda 最佳实践

本文记录Javalambda表达式使用过程中,能很优雅解决的问题的一些实践,持续更新。1、匿名内部类使用new Thread(() -> System.out.println("This is a Thread")).start();Runnable runnable = () -> System.out.println("This is a thread");new...

2019-01-18 10:08:15 1105 1

原创 对抗软件规模与复杂度的战争

对抗软件规模与复杂度的战争1)软件开发属于手工业作者开头以对谷歌的印象为例普通外人看谷歌的代码,应该是星辰大海,无比华丽但是在开发者眼中,谷歌代码是老牛拉慢车以此引出软件开发的复杂度问题启示:软件行业是手工业,很依靠开发者的个人能力。对于管理者而言,制定代码规范,做好代码规范检查,代码走查等是减少代码复杂度的一种方法2)软件复杂度来源 1️⃣ 本质复杂度(业务本身的复杂度),软件复杂度的下限 2️⃣ 解决方案的复杂度 3️⃣ 随机复杂度:短时效应、认知负荷、协同成本随机复杂度是我

2024-03-13 11:28:46 320

原创 2021版本 Idea运行提示:Command line is too long

1、选择编辑按钮Run -> editConfigrations2、选择 Shorten command line3、参考连接:java - IDEA 10.5 Command line is too long - Stack Overflow

2022-02-14 14:19:27 1677

转载 为什么数据库字段要使用NOT NULL?

转载自:为什么数据库字段要使用NOT NULL? - 艾小仙 - 博客园转载为了记录下来,我这边这方面理解确实不够深入,之前一直认为数据库必须设置NOT NULL 比较鸡肋,看了这篇文章之后,更加理解这方面的好处了最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有NOT NULL,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章。基于目前大部分的开发现状来说,我们都会把字段全部设置成NOT NULL并且给默认值的形式。通常,对于默认值一般这样设置: 整形,我们一般使用

2022-01-18 13:45:28 3475

原创 R2dbc Failed to update table []. Row with Id [] does not exist

使用webflux,数据库使用R2DBC需要保存数据到数据库前,自定义主键写入到数据库里面报错:Failed to update table []. Row with Id [] does not exist解决方法:实体类实现接口 Persistable重写 isNew() 方法package com.xx.message.entity.po;import lombok.*;import org.springframework.data.annotation.Id;imp

2022-01-05 13:42:47 1316 1

原创 自定义线程池拒绝策略,将参数打印出来

自定义拒绝策略

2021-12-13 19:07:49 1201

原创 排查和解决:Lock wait timeout exceeded; try restarting transaction

一、问题如图:二、排查思路1、什么问题引起这种报错?某一个SQL或者大事务,将表或者行记录进行了加锁操作,然后长时间不释放锁。导致其他事务超时。2、解决方法一:修改超时时间# 查询全局等待事务锁超时时间SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';# 设置全局等待事务锁超时时间SET GLOBAL innodb_lock_wait_timeout=100;# 查询当前会话等待事务锁超时时间SHOW VA

2020-08-06 14:39:17 24516

原创 一次代码报错的分析:MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

一次代码报错的分析:MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction1. 报错信息2. 报错原因3. 问题过程4. 问题解决1. 报错信息### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbac...

2019-11-18 10:26:53 12570 3

转载 mysql远程访问 “1130 - xxx.xxx.x.xxx is not allowed to connect to this MySQL server”

操作:登录到mysql服务端,指令为mysql -h localhost -u root -p,然后输入密码创建远程登陆用户并授权,指令如下:grant all PRIVILEGES on *.* to 'root'@'192.168.0.129' identified by '111111' WITH GRANT OPTION;Query OK, 0 rows affected (...

2019-06-21 11:54:30 598

原创 service mysqld start 报错 Redirecting to /bin/systemctl start mysqld.service

使用如下命令操作mysql:systemctl restart mysqld.servicesystemctl start mysqld.servicesystemctl stop mysqld.service这样就解决了

2019-06-21 11:08:14 6031

原创 8个HAPPEN-BEFORE原则

1、单线程happen-before原则: 在同一个线程中,书写在前面的操作happen-before后面的操作。2、锁的happen-before原则: 同一个锁的unlock操作happen-before此锁的lock操作。3、volatile的happen-before原则: 对一个volatile变量的写...

2019-03-15 18:37:03 2980 2

原创 谈谈反射

1、什么是反射?2、写一个反射的常用案例

2019-02-28 22:14:46 178

原创 MySQL锁分类

一、按锁的粒度分类,可分为表级锁、行级锁、页级锁行级锁:行级锁是MySQL锁定粒度最小的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,单加锁开销最大。InnoDb支持行级锁。 表级锁:表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。最常使用的MYISAM与IN...

2019-02-26 10:38:08 817

原创 缓存淘汰算法--LRU算法、LFU、FIFO

目录一、LRU1、什么是LRU2、如何实现3、分析4、Java LinkedMap 实现二、FIFO三、LFU一、LRU1、什么是LRULRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。2、如何实现最常见的实现是使用一个链表保存缓存...

2019-02-22 11:06:31 626

转载 SQL中的where条件,在数据库中提取与应用浅析

转载自:SQL中的where条件,在数据库中提取与应用浅析,感谢大神登神1、问题描述     一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都...

2019-02-15 15:37:12 233

原创 【MySQL】如何优化慢SQL

1、druid 是阿里巴巴开源的为监控而生的数据库连接池我们开发项目的时候尽可能的提前发现问题,增加数据库监控是一个很好的方法。感兴趣的可以查看https://github.com/alibaba/druid2、MySQL慢日志监控show variables like "%query%";slow_query_log_file    慢日志地址slow_query_log  ...

2019-02-15 13:18:25 1581

原创 【详解】ThreadLocal为什么会内存泄漏

1、ThreadLocal 真的会内存泄漏吗?       在网上去学习ThreadLocal经常看到,在不使用的时候需要调用remove()方法,否则会有内存泄漏。通过查找资料和阅读源码并验证(验证)发现是不会出现内存泄漏。      ThreadLocal存储将存储对象放置到Thread线程中,threadLocals 变量中,ThreadLocalMap是ThreadLocal的静态...

2019-01-24 10:35:34 2095

转载 正确理解Thread Local的原理与适用场景

本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ThreadLocal解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用 实例 代表具体类型(如 StringBuidler )的实例。...

2019-01-20 10:41:03 266 6

转载 Semaphore基本方法与应用场景实例

本章主要对Semaphore进行学习。1.Semaphore简介Semaphore,是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类。所谓Semaphore即 信号量 的意思。这个叫法并不能很好地表示它的作用,更形象的说法应该是许可证管理器。其作用在JDK注释中是这样描述的:A counting semaphore. Conceptual...

2019-01-18 16:24:27 1004 2

原创 CyclicBarrier的使用和常见问题

1、什么是CyclicBarrier?CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,所以被阻塞的线程才能继续执行。CyclicBarrier好比一扇门,默认情况下关闭状态,堵住了线程执行的道路,直到所有线程都就位,门才打开,让所有线程一起通过。(引于深入浅出java CyclicBarrier -- 战小狼,感觉...

2019-01-18 15:30:06 1243

转载 系统性能提升优先法宝 | 缓存应用实践

        缓存是系统性能提升优先法宝,在互联网应用系统中,屡试不爽。网上有很多资料介绍缓存理论及使用策略,本文就不再涉及了,今天简单将缓存做个归类,重点分享以前在实际业务中碰到场景以及如何使用。 接下来主要分两部分介绍:缓存分类与应用实践案例。一、缓存分类缓存一般有以下几类:客户端、浏览器、CDN缓存、NGINX缓存、应用缓存及统一缓存(如redis)。     ...

2019-01-16 13:48:50 151

原创 单例模式的实现方式和推荐实现方式

一、实现单例模式的两个要素1)私有的构造函数2)提供一个static修饰的getInstance方法二、难点:1)线程安全2)避免资源浪费3)避免反序列化破坏单例三、实现1、饿汉模式(线程不安全,不推荐使用)public class SingletonExample1 { public static SingletonExample1 single...

2019-01-13 16:21:25 127

转载 浅析CountDownLatch用法

1、CountDownLatch是什么CountDownLatch可以控制线程的执行,他可以让所有持有他的多个线程同时执行,也可以控制单个线程执行。他初始化的时候会传出一个int类型的参数i,调用一次countDown()方法后i的值会减1。在一个线程中如果调用了await()方法,这个线程就会进入到等待的状态,当参数i为0的时候这个线程才继续执行。await() 方法:在Count...

2019-01-03 22:00:25 203

原创 面试题集锦

记录面试题和详解博客链接,持续更新缓存:1、什么是一致性哈希算法?答:一致性哈希算法及其在分布式系统中的应用2、系统性能提升优先法宝 | 缓存应用实践多线程1、 你真的了解volatile关键字吗?2、浅析CountDownLatch用法3、CyclicBarrier的使用和常见问题4、Semaphore基本方法与应用场景实例 网络:1、OSI七层协...

2019-01-03 11:42:22 146

转载 八、TCP三次握手和四次挥手

1.三次握手TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。  第一次握手: 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SY...

2019-01-02 21:03:52 105

转载 七、DNS

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。作者:Ruheng链接:https://juejin.im/post/598ba1...

2019-01-02 20:55:01 120

转载 六、TCP/UDP

TCP/UDP都是是传输层协议,但是两者具有不同的特性,同时也具有不同的应用场景,下面以图表的形式对比分析。  面向报文面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。面向字节流面向字节流的话,虽然应用程序和TCP的交互是一次一个数据...

2019-01-02 20:54:09 115

转载 五、Traceroute

Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。Traceroute的原理是非常非常的有意思,它收到到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个...

2019-01-02 20:38:00 117

转载 四、PING

ping可以说是ICMP的最著名的应用,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。例如:当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下: ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0...

2019-01-02 20:35:50 109

转载 三、网络层

1.IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGMP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制,这被认为是上层协议:TCP或UDP要做的事情。1.1 IP地址在数据链路层中我们一般通过MAC地址来识别不同的节点,而在IP层我们也要有一个类似的地址标识,这就是IP地址。32位IP地...

2019-01-02 20:31:07 111

转载 二、数据链路层

物理层负责0、1比特流与物理设备电压高低、光的闪灭之间的互换。 数据链路层负责将0、1序列划分为数据帧从一个节点传输到临近的另一个节点,这些节点是通过MAC来唯一标识的(MAC,物理地址,一个主机会有一个MAC地址)。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。  封装成帧: 把网络层数据报加头和尾,封装成帧,帧...

2019-01-02 19:53:55 148

原创 强引用、软引用、弱引用、幻象引用有什么区别?有哪些使用场景?

在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。 1、 强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也...

2019-01-02 16:18:10 307

转载 一、OSI七层协议和TCP/IP四层协议

网络模型历史及起源网络模型不是一开始就有的,在网络刚发展时,网络协议是由各互联网公司自己定义的,比如那时的巨头网络公司 IBM、微软、苹果、思科等等,他们每家公司都有自己的网络协议,各家的协议也是不能互通的,那时候大家觉得这是可以的,但对消费者来说这实际上是技术垄断,因为你买了苹果的设备就不能用微软的设备,因为他们的协议不是一样的,没有统一的标准来规范网络协议,都是这些公司的私有协议。这样...

2019-01-02 15:48:46 560

转载 一致性哈希算法及其在分布式系统中的应用

摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读...

2018-12-27 17:07:06 127

原创 什么进程?进程与程序之间的关系?

进程(英语:process):        是指计算机中已运行的程序。进程为曾经是分时系统的基本运作单位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和...

2018-12-26 14:32:38 5179

转载 jvm系列(一):java类的加载机制

本文转自: 纯洁的微笑 ,感谢作者辛苦整理,转载为了自己更好的学习1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访...

2018-11-16 17:04:25 105

原创 SpringAOP 实现日志打印

1、添加注解扫描和支持AOP的配置 <context:component-scan base-package="com.sp8.web.aop"/> <aop:aspectj-autoproxy proxy-target-class="true" />2、不啰嗦,代码示例:package com.sp8.web.aop;import com...

2018-10-29 20:37:05 661 1

原创 什么是跨域?和跨域的解决方案

一、跨域的由来         跨域大家都不陌生,跨域是为了克服浏览器的同源策略。但可能对浏览器为什么会出同源策略有些陌生。这里先简单介绍跨域的由来。        浏览器的同源策略是为了限制CSRF攻击,因为我们有些场景确实需要,访问不同域名下的资源,所以需要跨域。所以就出现了各种跨域的方式,如JSONP、CORS、H5的postMessage、Nginx等方式,本文住要介绍JSONP和...

2018-10-16 20:59:21 1034

原创 数据结构:队列,数组实现、链表实现和循环队列

 一、什么是队列:        一种先进先出的数据结构(FIFO结构)。新元素添加在队尾(push),删除操作删掉第一个元素(pop)二、队列的实现方式:        队列的实现方式数组实现、链表实现三、常见的队列:        常用队列循环队列、阻塞队列、并发队列四、怎么实现一个无BUG的队列思考       思考1:head(头元素)和tail(尾元素)的初始值...

2018-10-12 13:52:59 1048

转载 你真的了解volatile关键字吗?

 一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传...

2018-08-15 20:59:41 138

毕业设计-商城

毕业设计-商城

2019-01-11

instantclient-basic-win32-10.2.0.5.zip

instantclient-basic-win32-10.2.0.5.zip

2015-01-31

Java swing 俄罗斯方块

Java swing 俄罗斯方块

2014-07-09

Struts2+Spring3+mybatis3整合Jar包全了

Struts2+Spring3+mybatis3整合Jar包全了

2014-01-16

Java经典案例-小游戏-雷霆战机!

Java经典案例-小游戏-雷霆战机! 简单易懂,让效果好

2012-08-16

空空如也

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

TA关注的人

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