JVM -Java内存模型以及内存屏障深入解读(Java merory model)

1.Java内存模型1.1主内存与工作内存java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量存储到内存和从内存中取出变量值这样的底层细节。此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的不会被共享,自然就不会存在竞争问题。主内存(Main memory):此处的主内存与物理硬件得主内存名字一样,两者也可以互相类比,但此处仅是虚拟机内存得一部分。java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

JVM-- Happens-before(先行发生原则)

happens-before的定义先行发生是Java内存模型中定义的两项操作数之间饿的偏序关旭,如果操作A先行发生于操作B,其实就是在发生操作B之前,操作A产生的影响能被操作B观察到,“影响”包括修改了内存中共享变量的值、发送了消息、调用了方法等。 先行发生是判断是否存在竞争、线程是否安全的主要依据,依据这个原则,我们可以通过几条规则一揽子解决并发环境下两个操作之间是否可能存在冲突的所有问题。特性程序顺序性规则一个线程中的每个操作,happens-before于该线程中的任意后续操作。简单来
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

JVM 多线程高并发--synchroized

1.synchroized 基本用法1.1语义 原子性:确保线程互斥的访问同步代码 可见性:保证共享变量的修改能够即时可见,其实通过对Java内存模型中“对一个变量unlock操作之前,必须同步到主内存中;如果对一个变量进行lock操作,则将会清空工作内存中此变量的值,在执行引擎使用此变量前,需要重新从主内存中load操作或者assign操作初始化变量值”来保证。 有序性:有效的解决重排问题,即“一个unlock操作先行发生(happen-before)于后面对同一个锁的locjava
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

JAVA SHA-1加密及DES加解密

1、SHA-1加密SHA-1标准加密://SHA-1 public static String getSha1(String str){ if(str == null || str.length() == 0){ return null; } char hexDigits[] = {0,1,2,3,4,5,6,7,8,9,a,java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

Spring Boot + Mybatis + Pagehelper+Swagger2整合

一、简介Spring Boot    Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。写SpringBoot核心功能1、独立运行Spring项目    Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行2、内嵌s...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

仿抖音底部菜单响应式html代码十分酷炫

可以放在自己的网站手机端,也可以加一些图标美化一下。简单html代码,复制下面代码,修改里面的href链接就可以了。代码如下:​<!DOCTYPE html><html><head> <meta charset=utf-8> <meta name=author content=http://www.wuiso.com//> <title>抖音底部样式html代码</title>.javascript
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

绿色自适应网址发布页html源码

绿色自适应网址发布页源码如图所示,十分简洁,大气好看,自适应手机pc。复制下面的代码就可以使用了。<!DOCTYPE html><html><head> <meta charset=utf-8> <meta name=Author content=Noah> <meta name=Keywords content=> <meta name=Description c
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

PHP聚合直播盒子网站源码聚合全网直播

php聚合全网直播源码PHP聚合直播盒子网站源码,搭建属于自己的聚合直播网站平台!特性:直播平台多达100+,选择丰富,适应手机界面。搭建这个不必多说了,php环境,然后将源码解压到网站根目录下即可。...php
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

分享一个网页截图html代码

可以自定义选区截图网页,适合需要生成网页截图的网站使用。<!DOCTYPE html><html> <head> <meta name=layout content=main> <title>我爱搜www.wusiou.com网页截图html代码</title> <meta http-equiv=Content-Type content=text/html;javascript
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

分享全网首发Java原生类抖音短视频Android源码

分享全网首发Java原生类抖音短视频Android源码安卓语言是:android stdio苹果语言是:OC环境是:php5.6数据库是:sql5.5伪静态设置:thinkphp如上图所示;只有java源码,没有php源码,感兴趣的自行测试吧。下载地址:我爱搜技术资源...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

SpringBoot使用aspectj实现注解登录验证拦截

1,导入Maven依赖 <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <dependenc...
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

栈-Java实现栈数据结构

1、栈的基本概念栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

队列-Java实现队列数据结构

1、队列的基本概念队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

mysql启动报错systemctl status mysqld.service" and "journalctl -xe" for details

背景:在使用quartz的数据库的时候,使用的是大写表名建表语言,结果生成的是小写表名,所以应该是大小写不敏感造成的,需要去my.cnf里面去修改配置然后重启mysql数据库,然后出现这个问题启动失败网上很多方法都是删除/var/lib/mysql /后重启MySQL服务就可以了,然后我告诉你这里面全是数据库的数据,还想删库跑路?一般出现这个问题都是my.cnf里面的配置文件有问题,所以一一...数据库
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

quartz定时任务不能注入service导致NullPointException

背景:在使用spring框架的时候整合quartz定时任务,在定时任务的job继承类里面注入service导致空指针异常原因:原因是job是在quartz中实例化出来的,不受spring的管理。所以就导致注入不进去了解决方法:1,需编写一个MyAdaptableJobFactory类则可解决对象无法注入的问题@Component(myAdaptableJobFactory)publ...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

Https安全通信机制

1,http的缺点通信使用明文(不加密),内容可能可能会被窃听不验证通信方的身份,因此可能遭遇伪装无法验证报文的完整性,所以可能已被篡改2,http+加密+认真+完整性保护 = https(1)加密处理和认证如果在http中使用未经加密的明文,比如在web页面中输入了信用卡号,如果这条通信线路找到窃听,那么你的信用卡号就暴露了,另外服务端和客户端都是没法确认通信方的,所以很有可能不...
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

Netty实现TCP私有协议栈的开发

为什么使用TCP通信?因为在进行对接机器C语言开发的直播主机)的时候,TCP是一种更安全更高效率的连接,它是一种会确认通信对方,保持通信状态,并且能检查报文完整性的连接,而HTTP则是在TCP服务层上面的应用层,当然TCP通信稍微要复杂一点。为什么要使用Netty?先说一下BIO,NIO,AIO的关系:BIO:是一种同步阻塞的io,当io建立连接等待应答的时候,当前的线程就被挂起不能做...网络
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

nacos+springboot+dubbo微服务整合

1,安装nacos从 Github 上下载源码方式git clone https://github.com/alibaba/nacos.gitcd nacos/mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al distribution/target/// change the $version to...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

springboot启动后第一次使用session速度慢

有两种解决方案:1,可以通过配置JRE使用非阻塞的Entropy Source:在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。2,在JVM环境中解决打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:securerandom.source=file:...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0

SpringBoot集成JWT登录鉴权

什么是JWT?Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。JWT的请求流程JWT的应用场景身份认证在这种场景下,...java
分类: 其他 发布时间: 05-29 10:07 阅读次数: 0