自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 JVM内存模型:理解Java程序的内存管理

2. 内存顺序模型:JVM内存模型定义了三种内存顺序约束:禁止指令重排、volatile变量内存顺序和synchronized内存顺序。4. 线程间的通信方式:JVM内存模型规定了线程间的通信方式,包括synchronized、volatile、final等关键字的使用规则。3. 对象创建和销毁:JVM内存模型规定了对象的创建和销毁必须发生在不与其他线程共享的内存区域中,以避免多线程间的竞态条件。JVM内存模型的核心概念包括:共享内存模型、内存顺序模型、对象创建和销毁、线程间的通信方式等。

2023-11-17 15:08:33 128

原创 Java内存模型:理解并发编程的核心概念

然而,Java内存模型的核心概念是通用的,它为开发人员提供了一个抽象的模型来理解并发编程中的内存访问行为。4. 线程间的通信方式:Java内存模型规定了线程间的通信方式,包括synchronized、volatile、final等关键字的使用规则。3. 对象创建和销毁:Java内存模型规定了对象的创建和销毁必须发生在不与其他线程共享的内存区域中,以避免多线程间的竞态条件。Java内存模型的主要组成部分包括:共享内存模型、内存顺序模型、对象创建和销毁、线程间的通信方式。二、Java内存模型的组成部分。

2023-11-17 14:47:58 81

原创 spring-integration-redis中分布式锁RedisLockRegistry的使用

解决同一个用户并发操作同一个资源时,如提交时按钮连击、多端调用同一个业务接口:使用方式1;方式2(使用方式2时需要做幂等判断,如连击操作多次调用时,对第二次调用不做处理)解决并发限流时,如抽奖系统中对商品sku库存做锁操作,防止多个用户同时扣减库存导致库存数量少扣:使用方式2、或者方式3(锁等待时间=预计业务代码执行时间)//第二个参数registryKey,分布式锁前缀,设置为项目名称会好些。//该构造方法对应的分布式锁,默认有效期是60秒.可以自定义。三方式都要注意释放锁时做锁过期处理。

2023-03-08 14:05:16 852

原创 netty在xxl-job中的使用分析

com.xxl.job.core.executor.impl.XxlJobSpringExecutor#initJobHandlerMethodRepository//启动9999服务前把job注册到admin。com.xxl.job.admin.core.trigger.XxlJobTrigger#runExecutor //调用xxl客户端执行。com.xxl.job.core.server.EmbedServer#start//创建netty服务。admin启动流程同springboot启动流程;

2023-02-28 15:50:22 873

原创 个人小程序借助免费插件实现智能语音问答功能

借助tenserflow js的小程序插件+tenserflow免费训练库(代办)小程序免费插件chatbot(微信智能开发平台)目标:个人小程序实现智能语音问答功能。微信同声传译插件(免费)

2023-02-13 14:22:09 325

原创 在没有自己的服务器的情况下,搭建自己的网站-开发自己的小程序接口

在没有自己的服务器的情况下,开发自己的小程序;后端接口使用第三方网站的某些功能完成小程序前后端数据交互能力

2023-02-13 14:13:43 224

原创 JDK9版本引入JShell工具使用

JDK9版本引入JShell工具

2023-01-30 10:52:36 81

原创 Java SpringBoot 实战B2b笔记

Java SpringBoot 实战B2b笔记

2022-12-04 18:22:26 359

原创 使用java连接Mongodb时报错code:18codeName:AuthenticationFailed时的解决方法

一、用户权限和db不对应参考https://www.cnblogs.com/niwotaxuexiba/p/10642291.html二、链接url写的有问题错误方式:spring:data:mongodb:uri:mongodb://name:pass@localhost:27017/test,其中name是用户名,pass是密码正确方式:spring:...

2021-08-04 17:59:52 426

原创 docker-compose安装mysql5.7

目录docker-compose.yml:yml文件同级目录新建文件夹mysql;mysql文件夹下添加文件my.cnf:docker-compose.yml:version: '3'services: mysql: image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql5.7 # 原镜像`mysql:5.7` container_name: mysql5.7

2021-07-02 21:51:48 742

原创 springboot教程第二课_JPA、Mysql实现增删改查

目录配置DataSource添加Model添加Repository添加Service添加Restfull接口启动测试去掉排除校验数据源的注解,在dev对应的yml文件中设置开发环境的数据源信息:server: servlet: context-path: /demospring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localho

2021-06-30 17:45:58 258 1

原创 springboot教程第一课_服务搭建及接口开发

目录安装开发工具IDEA新建springboot项目添加restfull接口启动项目验证新建项目选址Spring Initializr, Project SDK选择本地安装的版本;新建项目时根据提示填好参数;组件依赖可以选择必要的jpa和redis及辅助插件lombok;把配置文件改为yml文件添加dev环境的配置文件去掉数据库的校验(暂时不需要使用数据库)添加restfull接口:启动项目后在浏览器中验证接口...

2021-06-30 11:40:28 247 1

转载 公众平台群发规则

公众平台群发规则1、公众平台群发人数的上限?微信公众平台群发消息的人数没有限制,只能群发给粉丝,不支持群发给非订阅用户。2、公众平台群发都支持哪些内容?目前支持群发的内容:文字、语音、图片、视频、图文消息。3、公众平台群发消息的规则及限制。1)订阅号(认证用户、非认证用户),1天只能群发1条消息(每天0点更新,次数不会累加)。2)服务号(认证用户、非认证用户),1个月(按自然月)内可发送4条群发消息(每月月底0点更新,次数不会累加)。3)上传至素材管理中的图片、语..

2020-09-26 11:51:50 301

转载 为什么群发后粉丝收不到消息?

为什么群发后粉丝收不到消息?官方知识库06-04在微信公众平台消息群发成功后,而粉丝未收到群发消息,可能是以下原因导致:1、通过微信公众平台群发消息时,若默认群发给了全部用户,则可以正常接收消息;若对群发对象、性别、群发地区进行了选择,而该粉丝不在所选择的范围内,则无法接收群发消息。2、被加入黑名单的粉丝,不会接收到群发信息,建议进入微信公众平台->用户管理->黑名单,查看是否有进行设置。3、如果该粉丝在您群发消息时,取消了关注,同样不会收到群发消息。4、若帐号属于服务.

2020-09-26 11:45:12 1127

原创 Spring MVC深入分析

目录一、前言二、spring mvc 核心类与接口三、spring mvc核心流程图四、spring mvcDispatcherServlet说明五、spring mvc 父子上下文的说明六、springMVC-mvc.xml 配置文件片段讲解七、spring mvc如何访问到静态的文件,如jpg,js,css八、spring mvc请求如何映射到具体的Acti...

2019-08-24 08:21:56 177

原创 使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之六房间直播

使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之六房间直播coding...

2019-01-12 19:21:51 483

原创 使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之熊猫直播

使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之熊猫直播coding...

2019-01-12 19:21:27 1631 2

原创 使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之斗鱼直播

使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之斗鱼直播coding...

2019-01-12 19:20:59 695

原创 使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之虎牙直播

使用nodejs+puppeteer+mysql+electron+vue等解决自动化弹幕之虎牙直播核心代码:1、发送消息代码:const startHySendOne = async function(href,contsOne) { stateData.href = href; stateData.contsOne = contsOne; window.s...

2019-01-06 17:04:12 3023 2

原创 jsp有哪些内置对象?作用分别是什么?

JSP共有以下9个内置的对象:        1,request 用户端请求,此请求会包含来自GET/POST请求的参数        2,response 网页传回用户端的回应        3,pageContext 网页的属性是在这里管理        4,session 与请求有关的会话期        5,application servlet 正在执行的内容  ...

2018-10-10 09:46:09 2534

原创 Servlet API中forward()与redirect()的区别

1.从地址栏显示来说        forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.        redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客户端向服务...

2018-10-10 09:45:16 1155

原创 java中heap和stack有什么区别

java的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。        堆是与栈作用不同的内存,一般用于存放不在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用f...

2018-10-10 09:25:24 1652

原创 字节流与字符流的区别

要把一段二进制数据数据逐一输出到某个设备中,或者从某个设备中逐一读取一段二进制数据,不管输入输出设备是什么,我们要用统一的方式来完成这些操作,用一种抽象的方式进行描述,这个抽象描述方式起名为IO流,对应的抽象类为OutputStream和InputStream,不同的实现类就代表不同的输入和输出设备,它们都是针对字节进行操作的。       计算机中的一切最终都是二进制的字节形式存在。对于经常...

2018-10-10 09:24:51 569

原创 MariaDB安装

MariaDB 安装mysql的作者另起炉灶的开源版本:maria DB(maria DB如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容)。1.安装:yum install -y mariadb-server2.启动maria DB服务:systemctl sta...

2018-10-09 09:44:38 224

原创 mac环境变量配置路径

open -e .bash_profilesource .bash_profile

2018-10-09 09:38:15 3142

原创 NodeJs服务端调试代码

1、使用console.log();在需要调试的代码前加上改语句能够在控制台打印出结果2、在vscode中进行nodejs服务端代码调试(代码修改自动重启服务端)使用到的是nodemon,具体在package.json文件中配置如下:"scripts": { "start": "node ./bin/www", "debug": "nodemon --inspec...

2018-10-09 09:29:35 1200

原创 NodeJs全栈开发、部署方式

1、首先安装脚手架及创建基于webpack项目首先下载vue相关  cnpm install vue 安装 vue-cli脚手架  全局安装 vue-cli $ cnpm install –global vue-cli 创建一个基于 webpack 模板的新项目 $ vue init webpack my-project 如果有提示,默认回车即可 进入项目,安装...

2018-10-09 09:24:07 1790 1

原创 什么是区块链

区块链:1.区块即是账本,记的都是流水账。张三10元买了李四一只鸡、小王5个斤花生米换了小郑两斤鸡蛋。老赵打赌赢了老周一百元。 2.每个人手里都有一份账本,内容一模一样,谁也无法作假。 3.链即是账本之间无形的连线,随时同步大家的账本。...

2018-04-25 22:39:09 174

转载 NodeJs概述

$(document).ready(function(){ alert(“ready”); });1、NodeJs是什么? 运行时环境:与JRE类似,Node.js有一个称为JavaScript Virtual Machine(JsVM?)的虚拟机。它为基于JavaScript的应用程序生成机器代码,以便在不同的平台上启用它。 2、NodeJs不是什么? No...

2018-03-15 22:14:32 295

转载 ,,,,

安装步骤如下(当然,R的安装需要依赖系统的一些东西,这些步骤并不保证一定能安装成功): wget http://lib.stat.cmu.edu/R/CRAN/src/base/R-3/R-3.0.0.tar.gz tar xzf R-3.0.0.tar.gz cd R-3.0.0 mkdir -p /home/work/R ./configure –prefix=/home/work/...

2018-01-15 23:43:44 193

转载 Linux系统安装R语言

R语言是一款开源、免费的用于绘图和统计分析的语言和集成环境。该语言使用起来十分方便,提供了许多扩展包供下载使用。目前网上一些linux安装R语言的教程太过繁琐。其实,在ubuntu linux 系统下利用其提供的apt-get命令可以方便的安装R语言。工具/原料 ubuntu5.10 方法/步骤 进入系统,打开终端。输入命令:sudo -s。回车,输入用户密码,将权限提升为root权限。Lin

2018-01-15 23:42:02 5139

转载 使用Rserve远程执行R脚本

注1:关于Rserve网上有很多资料可以参考,详细情况可以参考博客下面的“参考资料”部分,本文只是简单介绍一下Rserve,主要目的是记录一下Java远程执行R脚本文件的方法。 注2:这里提到的远程执行R脚本文件的方式都是R脚本存在于Rserve服务端,如果R脚本文件存在客户端,可以使用RUtils工具包:http://blog.csdn.net/zhyh1986/article/details/

2018-01-15 23:38:33 735

转载 gurobi安装

gurobi安装,先去官网下载 ,Gurobi Optimizer,同时申请一个免费的license(学术用途的),土豪随意买。以最新的6.5版本为例进行解说,解压下载的gurobi6.0.5_linux64.tar.gz,命令 tar zxvf gurobi6.0.5_linux64.tar.gz,这里解压完之后一定要注意看一下这个文件的所有者是不是你这个账户,因为如果加了sudo操作之后,可能文

2018-01-11 17:12:41 10210 1

转载 zookeeper简介

一直对zookeeper的应用和原理比较迷糊,今天看一篇文章,讲得很通透,分享如下: 场景一 有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。

2018-01-05 10:25:06 528

原创 html页面集成markdown编辑器

1、markdown安装包下载地址:https://github.com/pandao/editor.md/archive/master.zip2、html中引入markdown时需要引入的js文件包括:editormd.js或者editormd.min.js3、需要引入的css文件包括:editormd.css 或 editormd.min.css相关文件可以下载安装包后解压安装包获得。4、然后在

2017-10-18 13:47:50 15523 13

转载 Freemarker原理

一、Freemarker的介绍Freemarker 是一款模板引擎,是一种基于模版生成静态文件的通用 工具,它是为java程序员提供的一个开发包,或者说是一个类库,它不是面向最终用户的,而是为程序员提供了一款可以嵌入他们开发产品的应用程序。Freemarker 是使用纯java编写的,为了提高页面的访问速度,需要把页面静态化, 那么Freemarker就是被用来生成html页面。到目前为止,Fr

2017-10-16 12:54:09 930

原创 页面模板——freemaker对比velocity、jsp的模板

一、velocity优点:简单、轻量级、易上手易于第三方组件集成社区庞大缺点:功能相对单调需要编写自定义的通用模板代码(toolbox)与java代码耦合度高二、freemaker优点:相对来说使用更简单性能,velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面

2017-10-16 09:57:42 341

原创 IDEA开发中比较常用的快捷键

一.找文件找代码找引用相关1.双击shift 在项目的所有目录查找,就是你想看到你不想看到的和你没想过你能看到的都给你找出来2.ctrl+f 当前文件查找特定内容3.ctrl+shift+f 当前项目查找包含特定内容的文件4.ctrl+n 查找类5.ctrl+shift+n 查找文件6.ctrl+e 最近的文件7.alt+F7 非常非常频繁使用的一个快捷键,可以帮你找到你的函

2017-09-27 12:36:55 260

转载 Oracle中发生表加锁、死锁的原因,查看,与解决方法

一.表加锁、死锁出现的现象 1.对数据库操作update,insert,delete时候,数据库无法更新,操作等待时长,操作结果不发生改变 2.在程序中,底层(数据访问层)操作时候,不成功,数据库连接超时,无法操作,或者操作等待时长等现象 【加锁的原理】:比如一个操作在进行修改一表,它没完成,另一个操作也操作这张表时候就需要等待, 前面操作结束之后才可进行操作

2017-09-22 11:28:27 1037

原创 win10修改jdk版本不生效

1、删除目录C:\Windows\System32下java.exe,javaw.exe,javaws.exe若不能解决,则 2、将新的jdk下java.exe,javaw.exe,javaws.exe拷贝到C:\Windows\System32 若报错: Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\Curr

2017-09-21 11:38:09 4191

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除