![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 92
java基础知识日常整理
java_zhangjiawei
初来乍到,请多多指教
展开
-
【CompletableFuture模拟真实场景之性能优化】
基于真实场景的CompletableFuture实战经验,远比你想象更强大!原创 2022-10-21 16:15:01 · 392 阅读 · 1 评论 -
MySQL产生死锁的根本原因及解决方法
一、 什么是死锁死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等的进程称为死锁进程.二、 死锁产生的四个必要条件•互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放•请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此转载 2020-08-26 11:35:50 · 509 阅读 · 0 评论 -
IDEA 2019.3 下载插件 Plugins Nothing found
问题: 如下如示,下载插件Key Promoter X时,搜索结果显示Nothing found解决: File - Settings - Plugins - HTTP Proxy Settings勾选箭头指示的框 - 点击OK重启IDEA...........................................................................................................转载 2020-08-20 12:02:42 · 1009 阅读 · 0 评论 -
++小Flag实现,一百期面试题汇总++
1-10期【10期】Redis 面试常见问答【09期】说说hashCode() 和 equals() 之间的关系?【08期】说说Object类下面有几种方法呢?【07期】Redis中是如何实现分布式锁的?【06期】单例模式有几种写法?【05期】消息队列中,如何保证消息的顺序性?【04期】分库分表之后,id 主键如何处理?【03期】如何决定使用 HashMap 还是 TreeMap?【02期】你能说说Spring框架中Bean的生命周期吗?【01期】Spring,Spr转载 2020-08-17 15:36:55 · 166 阅读 · 0 评论 -
面试官最爱的 volatile 关键字,这些问题你都搞懂了没?
前言volatile相关的知识点,在面试过程中,属于基础问题,是必须要掌握的知识点,如果回答不上来会严重扣分的哦。volatile关键字基本介绍volatile可以看成是synchronized的一种轻量级的实现,但volatile并不能完全代替synchronized,volatile有synchronized可见性的特性,但没有synchronized原子性的特性。可见性即用volatile关键字修饰的成员变量表明该变量不存在工作线程的副本,线程每次直接都从主内存中读取,每次读取的都是最转载 2020-08-17 14:49:53 · 182 阅读 · 0 评论 -
spring boot 防止重复提交
服务器端实现方案:同一客户端在2秒内对同一URL的提交视为重复提交上代码吧pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache..转载 2020-07-29 16:55:56 · 275 阅读 · 0 评论 -
迄今为止最好理解的ZooKeeper入门文章
大家好,今天来讲讲zookeeper,其实很早就计划写关于它的文章,但是由于各种原因一直推到了今天。本文会以类比的方式循序渐进、层层展开。各位坐稳了,让我们开启一段大脑的旅程。边界的产生与突破不觉间孩子已经上小学了,前段时间还参加了一次家长会,那就以学校和开会来说吧,这大家都很熟悉。如果一个班要想开班会,那随时开都行,不需要提前安排与通知,因为一个班级从内部看就是一个整体,在班级内,同学之间以及与老师之间都可以随意交流,没有任何隔阂与阻碍。一个班级从外部看就是一个独立的个体,因为班级与班.转载 2020-07-18 13:58:14 · 99 阅读 · 0 评论 -
Java生成唯一不重复的订单编号的方法
原理其实很简单,就是借助 java 中 String 类的 hashcode() 方法即可。整个代码实现如下所示: 1 2 3 4 5 6 7 8 9 10 11 publicstaticStringcreateOrderId(){ intmachineId=1;//最大支持1-9个集群机器部署 inthashCodeV=UUID.ran...原创 2020-07-15 13:56:23 · 1942 阅读 · 0 评论 -
utf-8的中文是一个字符占几个字
英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE中文汉字:字节数 : 2;编码:GB2312字节数 : 2;编码:GBK字节数 : 2;编码:GB18030字节数 : 1;转载 2020-07-09 11:18:17 · 1095 阅读 · 1 评论 -
Spring Boot + redis解决商品秒杀库存超卖,看这篇文章就够了
问题描述在众多抢购活动中,在有限的商品数量的限制下如何保证抢购到商品的用户数不能大于商品数量,也就是不能出现超卖的问题;还有就是抢购时会出现大量用户的访问,如何提高用户体验效果也是一个问题,也就是要解决秒杀系统的性能问题。本文主要介绍基于redis 实现商品秒杀功能。先来跟大家讲下大概思路。总体思路就是要减少对数据库的访问,尽可能将数据缓存到Redis缓存中,从缓存中获取数据。在系统初始化时,将商品的库存数量加载到Redis缓存中;接收到秒杀请求时,在Redis中进行预减库存,当Redis中的库转载 2020-07-07 17:26:26 · 989 阅读 · 0 评论 -
四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.一:token 简介Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请转载 2020-07-03 14:43:05 · 100 阅读 · 0 评论 -
Java中去除字符串中空格的方法
1、方法分类str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾、中间 str.replaceAll("",""); //去掉所有空格,包括首尾、中间 str.replaceAll(" +",""); //去掉所有空格,包括首尾、中间 str.replaceAll("\\s*",""); //可以替换大部分空白字符,不限于空格; \\s*可以匹配空格、制表符、换页符等空白字符的其中任意一个。2、代码示例p...转载 2020-06-30 10:00:52 · 255 阅读 · 0 评论 -
使用Java生成二维码图片
下面我来分享两种生成二维码图片的方法。第一种,填入你扫描二维码要跳转的网址直接生成二维码第一步:导入相关的包1 <dependency>2 <groupId>com.google.zxing</groupId>3 <artifactId>core</artifactId>4 <version>3.3.3</version>5 </dependency>第二步:配置转载 2020-06-29 15:30:32 · 1904 阅读 · 1 评论 -
一线大厂的分布式唯一ID生成方案是什么样的?
来源:老顾聊技术www.toutiao.com/i6682672464708764174一、前言分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,永不迁移数据和避免热点的文章中要求需要唯一ID的特性: 整个系统ID唯一 ID是数字类型,而且是趋势递增的 ID简短,查询效率快 什么是递增?如:第一次生成的ID为1...转载 2020-06-15 11:11:48 · 110 阅读 · 0 评论 -
Java中的BigDecimal,你真的会用吗?
作者:LanceToBigDatacnblogs.com/zhangyinhua/p/11545305.html一、BigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(Stri.转载 2020-06-15 11:08:53 · 127 阅读 · 0 评论 -
“干掉” Date,Java8 LocalDate 真香!
作者:Wayfreemwww.sf.gg/a/1190000012922933简介伴随 lambda表达式、stream 以及一系列小优化,Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。然后就在 java8 上面增加新的特性。全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant)、 长短(duration).转载 2020-06-15 11:04:08 · 99 阅读 · 0 评论