- 博客(22)
- 收藏
- 关注
原创 安装VirtualBox、安装vagrant、安装docker、docker安装mysql
VirtualBox、vagrant、docker、mysql
2024-06-04 16:29:51 378
原创 常见开发软件安装及开发环境配置
一、java环境变量二、idea安装1、安装InerlinJ_Idea_20180602.zip2、配置三、xshell四、Navicat五、向日葵(远程控制)六、postman七、WebStorm
2021-09-23 14:19:02 669
原创 面试题总结
面试题总结一、dubbo和spring cloud区别二、微服务 服务间调用失败问题排查1、先说解决思路a、设置超时机制b、重试**c、双发**d、熔断**2、问题排查思路一、dubbo和spring cloud区别都是当下流行的RPC框架,各自都集成了服务发现和治理组件。dubbo组织架构图SpringCloud组织架构SpringCloud特点1:约定优于配置2:开箱即用、快速启动3:适用于各种环境4:轻量级的组件5:组件支持丰富,功能齐全总体来说:1、dubbo由于是二进
2021-09-09 19:56:04 453
原创 jclasslib插件使用
1、安装File->setting->plugins->Brower Repositories安装好后如下图2、查看二进制码即指令
2021-09-08 14:49:58 388
原创 JVM基础学习
JVM一、Java虚拟机运行时数据区程序计数器虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存二、对象创建三、垃圾回收器与内存分配策略四、虚拟机性能监控与故障处理工具一、Java虚拟机运行时数据区程序计数器 当前线程执行的字节码的行号指示器字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。为了线程切换后能恢复到正确的执行位置,每个线程都有一个独立的线程计数器。虚拟机栈虚拟机栈描述的是java方法执行的内存模型,每个方法执行时都会创建一个栈帧(Stack
2021-08-31 16:49:37 560
原创 三高系统架构演变
三高系统架构演变1、什么是三高系统2、三高系统演变历史单节点maven聚合项目集群环境maven聚合项目微服务项目云原生分布式微服务项目1、什么是三高系统高并发、高可用、高性能你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。2、三高系统演变历史单节点maven聚合项目在项目创建之初,赶进度、抢时间、为了尽快做出可用产品,往往选择最为简单的单节点maven聚合项目。有点:
2021-08-30 16:15:26 2562
原创 无锁------JVM锁------分布式锁
一、为什么要加锁?在单线程情况下,不加锁程序也可以正常运行。一但多线程使用,就会发生运行结果和预期结果不一致问题,比如超卖、死锁、数据非预期值等问题二、Redis高频面试题1、高并发场景秒杀下单超卖bug实战重现2、秒杀场景下实战JVM级别锁与分布式锁3、大厂分布式锁Redisson框架实战4、从Redisson与那吗剖析lua解决锁的原子性问题5、Redis主从架构锁失效问题及Redlock详解6、双十一大促如何将分布式锁性能提升100倍7、利用Redis缓存集群架构抗住双十一流量洪峰
2021-08-23 17:32:46 526 1
原创 为什么Java基本类型不能准确表示部分小数
为什么Java基本类型不能准确表示小数?示例: public static void main(String[] args) { double num1=0.2; double num2=0.1; double sum=num1+num2; System.out.println(sum); }"D:\Program Files\Java\jdk1.8.0_201\bin\java.exe" ...0.300000000000
2021-08-21 17:04:04 183
原创 Elasticsearch应用场景及基本概念
一、应用场景Elasticsearch具有广泛的应用场景,包括全文搜索、日志分析、运维监控、安全分析等。- 全文搜索Elasticsearch提供了全文搜索的功能,适用于电商商品搜索、App搜索、企业内部信息搜索、IT系统搜索等。例如当您运营一个提供客户检索商品的在线电子商城的时候,可以使用Elasticsearch来存储整个商品的目录和库存,并且为客户提供检索和自动推荐的功能。- 日志分析复杂的业务场景通常会产生繁杂多样的日志,如Apache Log、System Log、MySQL Log
2021-08-21 15:29:19 14911
原创 BreakIterator-----根据中文符号切分语句
根据中文符号切分语句import java.text.BreakIterator;import java.util.Locale;/* *根据中文符号切分语句 */public class JavaBreakIterator { String context="明教因争立教主发生内讧,群雄彼此反目。虽为护教重新纠合,白眉鹰王殷天正带领天鹰教救援,毕竟已有离心离德之虞。光明顶上," + "光明左使杨逍与青翼蝠王韦一笑以及五散人因矛盾火拼,致使成昆乘虚而入,以幻阴指重
2021-08-21 10:52:50 412
原创 CountDownLatct || CyclicBarrier
CountDownLatct参考博客:https://www.cnblogs.com/skywang12345/p/3496101.htmlimport java.util.concurrent.CountDownLatch;/* *CountDownLatch的本质也是一个"共享锁" * CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 */public class Test_CountDownLatct { p
2021-07-28 00:00:10 83
原创 ReentrantLock
一、出现锁竞争的现象import java.util.concurrent.TimeUnit;/* *m1获得当前对象的锁后,m2需要一直等待m1释放后才能得到执行 */public class Test_ReentrantLock { public synchronized void m1(){ for (int i = 0; i < 10; i++) { System.out.println(i); try {
2021-07-27 23:48:12 75
原创 Long(sync)、AtomicLong、LongAdder
一、Long使用synchronized加锁,锁升级:偏向锁(无锁)->自旋锁 -> 重量级锁import java.util.ArrayList;import java.util.List;public class Test_Long { Long num =0L; private /*synchronized*/ void increase(){ for (int i = 0; i < 100; i++) { num+
2021-07-27 00:45:11 143
原创 多线程与高并发基础(基础篇二)
synchronized关键字一、什么时候程序需要锁?多个线程同时访问某段代码或者某个临界资源进行修改操作时,需要加锁二、程序为什么需要锁?eg. 线程A和线程B同时对数字n(默认1)做++操作,1、线程A读取到数字n为1是,去做++(非原子性)操作,2、同时线程B读取到数字n为1是,也去做++操作3、做了两次++操作,最终结果还是2(正确应该是3)。/** * @Auther wangdongdong * @Date 2021/7/21 0021 下午 21:14 * @Descri
2021-07-25 16:09:14 118
原创 多线程与高并发基础(基础篇一)
多线程与高并发基础一、程序、进程、线程、纤程(协程)的定义程序:可执行文件进程:程序中资源分配的最小单元纤程:程序中资源调度的最小单元携程:用户管理的纤程二、单核系统做多线程设计是否有意义有纤程分为io密集型和CPU密集型,对于IO密集型纤程,cpu多数时间处于空闲状态,适当的多线程设计可提供cpu利用率,充分压榨cpu性能,提高处理能力。三、是不是线程数设计越多越好?不是cpu只负责操作指令的执行,操作系统负责任务的调度。OS在多个线程间切换会消耗一定的性能,线程数过度会消耗过多性能
2021-07-19 11:35:55 264 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人