<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_shm的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_shm</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_shm]]></copyright><item><title><![CDATA[Apache commons (Java常用工具包)]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/129197728</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/129197728</guid><author>java_shm</author><pubDate>Fri, 24 Feb 2023 11:38:28 +0800</pubDate><description><![CDATA[Apache commons (Java常用工具包)]]></description><category></category></item><item><title><![CDATA[Hutool-Java工具类库]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/129197430</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/129197430</guid><author>java_shm</author><pubDate>Fri, 24 Feb 2023 11:28:27 +0800</pubDate><description><![CDATA[Hutool-Java工具类库]]></description><category></category></item><item><title><![CDATA[IDEA (二)安装与配置]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/90236520</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/90236520</guid><author>java_shm</author><pubDate>Wed, 25 Nov 2020 08:56:34 +0800</pubDate><description><![CDATA[下载

https://www.jetbrains.com/products.html#lang=java

Step1



Step2





step3




安装

双击安装文件



选择安装路径



选择相关安装配置







向导配置

第一次进入，是导入配置还是重新配置



界面风格



组件选择



相应组件安装



注册（试用三十天）



破解

...]]></description><category></category></item><item><title><![CDATA[java并发编程（四）共享模型之无锁]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108814192</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108814192</guid><author>java_shm</author><pubDate>Sun, 27 Sep 2020 00:48:11 +0800</pubDate><description><![CDATA[1.问题提出

有如下需求，保证account.withdraw取款方法的线程安全



public class TestAccount{
    public static void main(String[] args) {
        Account account = new AccountUnsafa(10000);
        Account.demo(account);

        Account account2 = new AccountCas(10000);
    ..]]></description><category></category></item><item><title><![CDATA[java并发编程之应用]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108765263</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108765263</guid><author>java_shm</author><pubDate>Thu, 24 Sep 2020 00:53:32 +0800</pubDate><description><![CDATA[效率

案例1 - 多线程提升效率



案例2-防止CPU占用100%



统筹

案例--烧水泡茶

阅读华罗庚《统筹方法》，给出烧水泡茶的多线程解决方案。







解法1









申明：内容来自网络，仅供学习使用
https://www.bilibili.com/video/BV1jE411j7uX


...]]></description><category></category></item><item><title><![CDATA[java并发编程之原理]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108759274</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108759274</guid><author>java_shm</author><pubDate>Wed, 23 Sep 2020 23:17:13 +0800</pubDate><description><![CDATA[三. volatile原理



1.如何保证可见性



2.如何保证有序性



3.double-checked locking问题

以著名的double-checked locking单例模式为例



4.double-checked locking解决











申明：内容来自网络，仅供学习使用
https://www.bilibili.com/video/BV1jE411j7uX
...]]></description><category></category></item><item><title><![CDATA[java并发编程（三）共享模型之内存]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108670730</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108670730</guid><author>java_shm</author><pubDate>Sat, 19 Sep 2020 01:02:28 +0800</pubDate><description><![CDATA[1.java内存模型



2.可见性

2.1 退不出的循环





2.2 解决方案

volatile（易变关键字）

它可以用来修饰成员变量和静态成员变量，它可以避免线程从自己的工作缓存中查找变量的值，必须到主存中获取它的值，线程操作volatile变量都是直接操作主存。

2.3 可见性vs原子性



2.4 模式之两阶段终止

2.5 模式之Balking

3.



























申明：内容来自网络，仅供学习使用
https:/...]]></description><category></category></item><item><title><![CDATA[java并发编程之模式]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108654208</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108654208</guid><author>java_shm</author><pubDate>Thu, 17 Sep 2020 22:18:58 +0800</pubDate><description><![CDATA[1.同步模式之保护性暂停



2.异步模式之生产者/消费者








]]></description><category></category></item><item><title><![CDATA[java并发编程（二）共享模型之管程]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108451068</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108451068</guid><author>java_shm</author><pubDate>Mon, 07 Sep 2020 19:40:03 +0800</pubDate><description><![CDATA[4.共享模型之管程



4.1 共享带来的问题






@Slf4j(topic = "c.Test17")
public class Test17 {
    static int count = 0;

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(()-&gt;{
            for (int i = 0; i &lt; 5]]></description><category></category></item><item><title><![CDATA[java并发编程（一）基础知识]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108430475</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108430475</guid><author>java_shm</author><pubDate>Sun, 06 Sep 2020 20:02:27 +0800</pubDate><description><![CDATA[1.为什么要使用并发编程

充分利用多核CPU的计算能力：通过并发编程的形式可以将多核CPU的计算能力发挥到极致，性能得到提升。
	方便进行业务拆分，提升系统并发能力和性能：在特殊的业务场景下，先天的就适合于并发编程。现在的系统动不动就要求百万级甚至千万级的并发量，而多线程并发编程正是开发高并发系统的基础，利用好多线程机制可以大大提高系统整体的并发能力以及性能。面对复杂业务模型，并行程序会比串行程序更适应业务需求，而并发编程更能吻合这种业务拆分 。
2.进程与线程

2.1 进程与线程



2.2 并行与]]></description><category></category></item><item><title><![CDATA[web基础知识回顾（一）]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108391359</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108391359</guid><author>java_shm</author><pubDate>Thu, 03 Sep 2020 23:28:39 +0800</pubDate><description><![CDATA[一.网络的历史

1.网络

网络：就是把各种终端连在一起，就成了网络。

PC,手机，IP电视，，电话 ？？





2. 网络分类



3. 主要功能



二. 网络协议

1. 网络分层





2.1网络层--IP协议

IP（网络之间互连的协议）



如何获取ip

静态ip
	动态ip -- DHCP
2.2.传输层--TCP/UDP

2.1 TCP（传输控制协议）



三次握手：



2.2 UDP（用户数据报协议）



3. 应用层--DNS，DHCP，FTP，HT...]]></description><category></category></item><item><title><![CDATA[突击训练第二季--互联网Java进阶面试]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108380870</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108380870</guid><author>java_shm</author><pubDate>Thu, 03 Sep 2020 13:19:33 +0800</pubDate><description><![CDATA[一.分布式

01、互联网大厂面试要求：技术广度、技术深度、系统设计以及项目经验
	02、Java工程师面试突击第一季总结：你离一次成功的面试还差多少？
	03、《21天互联网Java进阶面试训练营》的课程说明
	04、作业：系统分析一下，自己距离大厂offer差在哪里？
	05、感受一下BAT面试官对分布式技术的十几个面试连环炮!
	06、你们公司用的Dubbo？那你再额外说说Spring Cloud的核心架构原理？
	07、基于Dubbo和Spring Cloud分别搭建一个电商系统来快速体验一下！代.]]></description><category></category></item><item><title><![CDATA[突击训练第一季（五）分库分表]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108321475</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108321475</guid><author>java_shm</author><pubDate>Mon, 31 Aug 2020 22:43:23 +0800</pubDate><description><![CDATA[1.咱们聊一下你们公司怎么玩分库分表的？



（1） 什么要分库分表？（设计高并发系统的时候，数据库层面该如何设计？）







2.你们当时是如何把系统不停机迁移到分库分表的？





3.如何设计可以动态扩容缩容的分库分表方案？



步骤：



4.分库分表后，全局id咋生成？





5.说说mysql读写分离的原理？主从同步延时怎么解决？











申明：内容来自网络，仅供学习使用
参考：https://apppukyptrl1086.pc.xiaoe-tech.com/.]]></description><category></category></item><item><title><![CDATA[突击训练第一季（四）分布式]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108289663</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108289663</guid><author>java_shm</author><pubDate>Sat, 29 Aug 2020 01:13:56 +0800</pubDate><description><![CDATA[1.体验下分布式



单机



分布式









申明：内容来自网络，仅供学习使用
参考：https://www.bilibili.com/video/BV1FE411y79Y
]]></description><category></category></item><item><title><![CDATA[dubbo（一）基础知识]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108286190</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108286190</guid><author>java_shm</author><pubDate>Fri, 28 Aug 2020 22:14:13 +0800</pubDate><description><![CDATA[1、分布式基础理论


1.1）、什么是分布式系统？

《分布式系统原理与范型》定义：

“分布式系统是若干独立计算机的集合，这些计算机对于用户来说就像单个相关系统”

分布式系统（distributed system）是建立在网络之上的软件系统。

随着互联网的发展，网站应用的规模不断扩大，常规的垂直应用架构已无法应对，分布式服务架构以及流动计算架构势在必行，亟需一个治理系统确保架构有条不紊的演进。

1.2）、发展演变





单一应用架构

当网站流量很小时，只需一个应用，将所有功能都部署在一起..]]></description><category></category></item><item><title><![CDATA[redis 高阶（九）企业级解决方案]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108272003</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108272003</guid><author>java_shm</author><pubDate>Fri, 28 Aug 2020 02:34:15 +0800</pubDate><description><![CDATA[缓存预热

缓存预热就是系统上线后，将相关的缓存数据直接加载到缓存系统。这样就可以避免在用户请求的时候，先查询数据库，然后再将数据缓存的问题！用户直接查询事先被预热的缓存数据！









缓存雪崩

缓存雪崩是指缓存同一时间大面积的失效，所以，后面的请求都会落到数据库上，造成数据库短时间内承受大量请求而崩掉。

缓存数据的过期时间设置随机，防止同一时间大量数据过期现象发生。
	一般并发量不是特别多的时候，使用最多的解决方案是加锁排队。
	给每一个缓存数据增加相应的缓存标记，记录缓存的是否失效，如果缓]]></description><category></category></item><item><title><![CDATA[redis 高阶（八）集群]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108211648</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108211648</guid><author>java_shm</author><pubDate>Tue, 25 Aug 2020 00:35:44 +0800</pubDate><description><![CDATA[一.集群简介

1.现状问题



2.集群架构

集群就是使用网络将若干台计算机联通起来，并提供统一的管理方式，使其对外呈现单机的服务效果



3.集群作用

分散单台服务器的访问压力，实现负载均衡
	分散单台服务器的存储压力，实现可扩展性
	降低单台服务器宕机带来的业务灾难


二.redis集群结构设计

1.数据存储设计

 通过算法设计，计算出key应该保存的位置
	 将所有的存储空间计划切割成16384份，每台主机保存一部分每份代表的是一个存储空间，不是一个key的保存空间
	 将ke.]]></description><category></category></item><item><title><![CDATA[redis 高阶（七）哨兵模式]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108191805</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108191805</guid><author>java_shm</author><pubDate>Mon, 24 Aug 2020 01:02:58 +0800</pubDate><description><![CDATA[一.哨兵简介





1. 哨兵概念

哨兵(sentinel) 是一个分布式系统，用于对主从结构中的每台服务器进行监控，当出现故障时通过投票机制选择新的
master并将所有slave连接到新的master。



2.哨兵的作用

监控

不断的检查master和slave是否正常运行。
	master存活检测、master与slave运行情况检测
通知（提醒）

当被监控的服务器出现问题时，向其他（哨兵间，客户端）发送通知。
自动故障转移

断开master与slave连接，选取一个slave作为m]]></description><category></category></item><item><title><![CDATA[redis 高阶（六）主从复制]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108186536</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108186536</guid><author>java_shm</author><pubDate>Mon, 24 Aug 2020 00:44:21 +0800</pubDate><description><![CDATA[一.主从复制简介





1.你的“Redis”是否高可用

1.1 单机redis的风险与问题

问题1.机器故障

现象：硬盘故障、系统崩溃
	本质：数据丢失，很可能对业务造成灾难性打击
	结论：基本上会放弃使用redis.
问题2.容量瓶颈

现象：内存不足，从16G升级到64G，从64G升级到128G，无限升级内存
	本质：穷，硬件条件跟不上
	结论：放弃使用redis
结论：
为了避免单点Redis服务器故障，准备多台服务器，互相连通。将数据复制多个副本保存在不同的服
务器上，连接在一起，并保证]]></description><category></category></item><item><title><![CDATA[redis 高阶（五）高级数据类型]]></title><link>https://blog.youkuaiyun.com/java_shm/article/details/108185962</link><guid>https://blog.youkuaiyun.com/java_shm/article/details/108185962</guid><author>java_shm</author><pubDate>Sun, 23 Aug 2020 18:27:42 +0800</pubDate><description><![CDATA[一.Bitmaps



1.Bitmaps类型的基础操作

获取指定key对应偏移量上的bit值


getbit key offset

设置指定key对应偏移量上的bit值，value只能是1或0


setbit key offset value





2.Bitmaps类型的扩展操作

2.1 业务场景

电影网站

统计每天某一部电影是否被点播
	统计每天有多少部电影被点播
	统计每周/月/年有多少部电影被点播
	统计年度哪部电影没有被点播
2.2 业务分析



2.3 操作指令

对指定]]></description><category></category></item></channel></rss>