Volatile可见性及非原子性验证

1.测试(可见性)1.1 代码public class JMMTest { private static int num = 0; public static void main(String[] args) { new Thread(()->{ while (num==0) { } }).start(); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) {
分类: 其他 发布时间: 01-29 22:25 阅读次数: 0

AtomicXXX JUC保证原子性

1.如果不加synchronized如何保证原子性操作?使用原子类 AtomicXXX原子类底层都直接和操作系统挂钩!(效率更高)java.util.concurrent.atomic;包下子类
分类: 其他 发布时间: 01-29 22:24 阅读次数: 0

Volatile禁止指令重排

Volatile禁止指令重排什么是指令重排?你写的程序,计算机并不是按照你写的那样去执行的。源代码 -> 编译器优化的重排 -> 指令并行可能会重排 -> 内存系统可能会重排 -> 执行处理器在进行指令重排的时候,考虑,数据之间的依赖性!指令重排 不会造成影响的例子int x = 1;//1int y = 2;//2x = x + 5;//3y = x * x;//4我们所期望的: 1234 执行的时候可能会变成 2134 1324 但是不可能是 4321
分类: 其他 发布时间: 01-29 22:24 阅读次数: 0

设计模式23之 单例模式

单例模式1.饿汉式2.懒汉式2.1反射破坏单例2.2改良懒汉式单例 (三重检测)2.3改良单例信号灯法2.4破坏单例信号灯3.使用枚举 保护单例模式(防止反射攻击)3.1为什么枚举可以保护 单例模式?3.2 枚举创建单例3.3查看底层 反编译3.4 使用jad.exe4.总结饿汉式 DCL懒汉式1.饿汉式package JUC;/** * 饿汉式 浪费内存 */public class SingletonHungry { private byte[] data1 = new byte[
分类: 其他 发布时间: 01-29 22:24 阅读次数: 0

公平锁 非公平锁

公平锁 非公平锁公平锁:公平,不允许插队非公平锁:不公平,允许插队(默认为非公平)
分类: 其他 发布时间: 01-29 22:23 阅读次数: 0

各种锁的理解

锁1.公平锁 非公平锁2.可重入锁2.1 synchronized 是通一把锁2.2 lock 是不同的锁3.自旋锁4.死锁1.公平锁 非公平锁公平锁:公平,不允许插队非公平锁:不公平,允许插队(默认为非公平)2.可重入锁2.1 synchronized 是通一把锁2.2 lock 是不同的锁package JUC;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLoc
分类: 其他 发布时间: 01-29 22:22 阅读次数: 0

单机MySQL演进,为什么要用Nosql

单机MySQL演进,为什么要用Nosql1.为什么要用Nosql1.1整个网站的瓶颈是什么?1.2Memcached(缓存) + MySQL + 垂直的拆分 但是数据不同步1.3 分库分表 + 水平拆分 + MySQL集群1.4 如今最近的年代1.5为什么要用NoSQL!1.为什么要用Nosql大数据时代,一般的数据库无法进行分析处理单机MySQL的年代!90年代,一个基本的网站访问量不会太大,单个数据库完全足够!那个时候,更多的使用静态网站html!(hao123网站)服务器根本没有太大的
分类: 其他 发布时间: 01-29 22:22 阅读次数: 0

大数据时代的3V 和3高

大数据时代的3V 和3高大数据时代的3V:主要是描述问题的海量Volume多样Variety实时Velocity互联网需求的3高:对程序员的要求高并发高可拓高性能
分类: 其他 发布时间: 01-29 22:22 阅读次数: 0

阿里巴巴数据库架构演进分析

阿里巴巴数据库架构演进分析阿里巴巴架构的发展历程 (1999-2010)数据架构日益复杂,和一个简单的页面所拥有的数据分析大型互联应用的问题:解决方案UDSL热点缓存阿里巴巴架构的发展历程 (1999-2010)数据架构日益复杂,和一个简单的页面所拥有的数据分析如果你未来想当一个架构师:没事什么是加一层解决不了的!1.商品的基本信息 (名称、 价格、 商家信息)关系型数据库就可以解决了! MySQL/Oracle (去IOE - 王坚:阿里云的这群疯子)淘宝内部的MySQL,不是大家用的M
分类: 其他 发布时间: 01-29 22:21 阅读次数: 0

NoSQL的四大分类

NoSQL的四大分类KV键值对:文档型数据库(bson格式 和 json一样)MongoDBConthDB列存储数据库HBase分布式文件系统图关系数据库Neo4jInfoGridNoSQL的四大分类对比KV键值对:新浪:Redis美图:Redis + Tair阿里、百度:Redis + memcache文档型数据库(bson格式 和 json一样)MongoDB基于分布式文件存储的数据库,C++编写,处理大量的文档!MongoDB 是介于关系型数据库和非关系型数据库中间的产品!Mongo
分类: 其他 发布时间: 01-29 22:21 阅读次数: 0

Redis 01——(Redis 概述)

Redis 入门概述Redis是什么?Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源!是当最热门的NoSQL技术之一!也被人们称之为结构化数据库!Redis能干嘛?内存存储
分类: 其他 发布时间: 01-29 22:21 阅读次数: 0

Redis 02——(Windows 下安装 Redis )

Windows 下安装 Redis1.下载安装包github下载2.下载完毕得到压缩包3.解压到自己电脑上的环境目录下就可以4.开启Redis 双击redis-server.exe如果出现闪退解决方案检查java环境要放在存英文目录下使用端口号被占用内存不足不太可能(又不是小霸王游戏机)5.客户端连接Redis服务器 双击redis-client.exeping (测试连接 得到PONG)记住一句话,Window下使用确实简单,但是Redis推荐我们使用Lin
分类: 其他 发布时间: 01-29 22:21 阅读次数: 0

如何使用easyCode逆向生成后端代码,详解如下!

第一步:idea连接数据库先连接上自己的数据库,之后能在Database里面找到第二步:下载easyCode插件第三步:pom依赖有些其他的依赖 如果不需要刻意去除! <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta
分类: 其他 发布时间: 01-29 22:20 阅读次数: 0

【Nacos】nacos启动报错client error: invalid param. null

快要凌晨一点了,终于解决了这个憨憨问题特此记录!!***************************APPLICATION FAILED TO START***************************Description:client error: invalid param. nullAction:please check your client configurationDisconnected from the target VM, address: 'ja
分类: 其他 发布时间: 01-29 22:20 阅读次数: 0

【手把手搭环境】Linux下JDK8的安装

因为服务器的问题又要重新搭建环境了,与其这样干脆写下自己搭建的步骤,免得以后一步步搭建环境翻阅资料,顺便分享给读者。首先,得先下载我们的jdk:大家可以自行去官网百度下载记得一定要下载tar.gz,因为这是Linux版本的:JDK下载地址之后大家可以通过一些工具上传至自己的Linux服务器如本人用的xftp 6然后安装在自己的文件夹下,笔者的选在/user/local/xxxxxxx/下通过以下指令查看是否已经上传成功:cd /usr/local/cocowwy/ll可以看到已经
分类: 其他 发布时间: 01-29 22:20 阅读次数: 0

【手把手搭环境】Linux下安装MySQL

本人选用的版本号是5.7的版本MySQL下载地址先使用xftp传到自己的Linux服务器。接着使用解压命令解压,并且修改文件名:tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql接下来我们可以看到你在自己的/usr/local/cocowwy下已经存在mysql,注意本人的路径是cocowwy,如果有此时正在看的你使用的是其他的路径,请把这个文件夹改成
分类: 其他 发布时间: 01-29 22:19 阅读次数: 0

【手把手搭建】单机版Nacos的安装以及项目的配置和服务发现

首先我们得先知道Nacos可以用来做配置中心以及服务的注册和发现。1.搭建项目我们使用idea自带的spring Initializr来创建项目:其他的依赖不都说了,滑到最底下,注意此时的springboot的版本,切记,不然高版本会出现选不了的情况:选择这三个(sentinel可选可不选,如果需要做降级熔断就需要选上)之后创建自己的项目即可。2.搭建Linux环境下载地址:Nacos,本人的版本号为1.2.1的版本,尽量保持一致。使用xftp将Nacos拖动到Linux环境下,本人的目
分类: 其他 发布时间: 01-29 22:19 阅读次数: 0

【手把手搭环境】Linux下搭建Sentinel项目

Sentinel下载:点击这里我们使用idea自带的spring Initializr来创建项目:其他的依赖不都说了,滑到最底下,注意此时的springboot的版本,切记,不然高版本会出现选不了的情况:选上我们的sentinel即可!并且在自己的yml文件上加上:spring: application: name: orange-api(自己的服务名) cloud: sentinel: transport: #配置sentine
分类: 其他 发布时间: 01-29 22:19 阅读次数: 0

【手把手搭环境】Springboot 2.X项目如何配置SSL证书,能让项目通过HTTPS进行访问?

最近接触了微信小程序,但是部署到服务器的时候需要使用HTTPS协议才能进行数据的交互,那么要怎么弄呢?第一步:博主使用的是腾讯的服务器,首先先登入我们的控制台搜索SSL证书,点击。第二步:傻瓜式的申请证书即可申请完可以看到此处我们下面已经申请好了,此时我们点击下载,如果有弹窗拦截,点掉即可,接下来可以看到我们下载下来的文件目录结构为:选择自己的服务器(博主使用的是springboot自带的内置的tomcat)点击进去tomcat文件夹:将上面的文件jks文件复制,等会需要用到!另外一个是
分类: 其他 发布时间: 01-29 22:19 阅读次数: 0

LeetCode刷题之T146LRU缓存机制

这次讲解的题目是LeetCode刷题之T146LRU缓存机制:首先我们先看下题目:这道题的思路是使用LinkedHashMap进行K-V键值对,首先我们知道LinkedHashMap是一个有序的HashMap,利用其有序性,将最近操作的key取出,放到LinkedHashMap的最后边。接下来上代码:class LRUCache { int max; HashMap<Integer,Integer> cache=new LinkedHashMap(); p
分类: 其他 发布时间: 01-29 22:19 阅读次数: 0