- 博客(83)
- 问答 (5)
- 收藏
- 关注
原创 【JUC-锁升级】简要版本
为什么不全部使用Synchronized、Lock等重量级锁呢?重量级锁底层是基于操作系统的互斥锁实现的,涉及到用户态与内核态之间的切换。
2024-12-04 19:19:42
591
原创 Java对象布局|对象头锁状态
Java对象内存布局一、内存对象布局二、对象标记三、类型指针四、实例数据一、内存对象布局Java对象布局分为三类:对象头、实例数据、对齐填充。对象头又细分为两类:类型指针、对象标记:为什么对象头有这两部分呢?其实想想也很简单,在前几章我们知道每个对象都可以作为管程,那就需要知道当前对象被哪个线程持有,这部分信息存储在哪里呢? GC的时候,如何记录当前对象经历了几次GC?当前对象的hashcode存储在哪里?这些东西都存储在对象头的对象标记中。类型指针表明了当前对象是什么类型,指向方法区的某一个
2024-12-03 11:46:32
850
原创 【JUC-ThreadLocal】
之前在JMM章节我们提到,线程不能直接修改主存中的变量,应该将变量复制一份到本地栈内存,由此引发了一系列线程并发安全的问题。TheadLocal,从名字上看,线程局部,该方法提供了线程局部变量。ThreadLocal的值是每个线程独有的,因为独有,所以不存在什么竞争问题。下面看一个例子,简单的使用一下API: 5个销售卖房子,需要知道每个销售卖多少,以及总共卖了多少。// 赋值初始值// 统计最终买了多少个i < 5;
2024-12-02 15:57:19
561
原创 【JUC-Atomic原子类】含LongAdder源码探究
这种操作的时候也无法保证原子性,需要加锁保证。统计base + 各个窗口的值,不保证精确,因为有些线程可能还在窗口自旋的尝试修改,没办法累加起来。上面都是Java内部的原子类,如何让自己写的类也成为原子类?在低竞争下,两个类的效率相似,但是当线程竞争激烈的时候,这里我们从头模拟一下,假设初始的时候(new 出来),分散一下压力,会更快,但是相应的,统计就不会那么准确了。就好比开了好几个窗口,将热点分散,减少自旋的时间。类似,像这种只有类型不同的,我们只看一个就行了。锁普通方法,锁的是当前实例对象,包括。
2024-11-30 15:39:21
839
原创 【JUC-CAS】原子类基础
虽然对 input 执行了一些基本检查,但这些检查是尽力而为的,并且当性能是压倒一切的优先级时,例如当运行时编译器优化此类的方法时,可能会省略部分或全部检查(如果有)。自旋锁其实采用了CAS的思想,不对共享资源加锁,如果内存中的值不是我手中的值,我就把内存中的值拿过来,继续比较,如果是,做交换。,比较并交换,工作流程就是比较内存中的值与我现在获取的是否一致,如果一致才做修改,否则什么也不做。类中,由于操作的是底层资源,是不安全的,所以类也命名成。,就是调用了底层的指令,并对总线加锁保证原子性。
2024-11-29 16:29:20
289
原创 【JUC-Volatile】
中,我们提到程序在运行过程中,并不是按照我们写的代码顺序执行的,如果修改代码位置之后与串行执行之后结果一致,那么允许指令重排,但是只保证单线程下的安全。加一放回主存中,这时候缓存一致性协议就生效了,告知B线程中的值已经是旧的了,本次操作就无效了。高并发环境下可能会发生后续情况:线程A,B分别将主存中的值读到本地栈内存中,然后A先将。A:在编译成指令的前后加上相应的屏障,重排序的时候就会保证对应的操作发生。是Java中的一个关键字,被其修饰的变量,可以保证保证多线程环境下的。粗分,分为读屏障与写屏障。
2024-11-28 13:50:05
657
原创 【JUC-JMM】Java Memory Model Java内存模型
JMM规定,任何线程不能直接操作主内存中的变量,应该先将主内存的变量复制一份到本地独立栈空间内,然后进行操作,操作完之后,将变量写回主内存,线程B再读取主存中的值就是最新的了。带着这个问题,学过计算机组成原理的同学应该知道,CPU中寄存器的访问速度很快,内存的访问速度相较来说,比较慢,为了协调CPU中寄存器与内存的访问速度差异,设计了。那么,我们不禁思索,Java内存模型有什么用,是用来做什么的呢?有了缓存之后,我们尽可能操作缓存中的数据,接下来问题来了,如果缓存中的数据被修改了,会造成缓存与内存中数据。
2024-11-26 21:59:22
1026
原创 【JUC-LockSupport】阻塞唤醒机制
调用了 park,那么当这个线程再次显式调用 park 时,它可能会错过由另一个线程发出的 unpark 请求,从而导致该线程无法继续执行,即出现“丢失的解除暂停”问题。当线程被阻塞时,会记录这个对象,以便监控和诊断工具能够识别线程被阻塞的原因。的时候,如果指定的线程没有许可,会给指定的线程发放一个许可;如果指定的线程有许可了,什么也不做,因为一个线程的。首先从名称上看,锁支持, 是一种用于线程间阻塞唤醒的机制,脑海中没有概念的可以想一下生产者消费者模型。此外,如果调用者的线程被中断,
2024-11-26 13:44:49
846
原创 【JUC-Interrupt】中断相关概念
Java并没有给中断提供额外的语法,中断过程完全需要程序员自己实现,调用相关API如。如果执行这个方法的线程不是本身(因为别的线程也能调用你的这个方法),将会调用。如果编程的时候没有注意上面这一点,可能没有办法中断线程,引起不可预知的错误。在Java中没有办法立即停止一个线程,因此提供了用于停止线程的。NIO部分不太清楚,大致意思也是会设置中断位。2024-11-25 23点08分。一个线程不应该由其他线程中断或停止,应该有。如果线程因为I/O操作阻塞,调用。将会设置中断位,但是会报一个错误。
2024-11-25 23:08:43
900
1
原创 uTools安装教程
下载完成后双击下载好的文件就行,它会自动安装在C盘。可以找一些方便的插件,例如图片转Latex公式。这里可以改呼出方式,作者习惯使用。点击自己需要的版本进行下载。打开utools的设置。
2024-08-06 11:06:27
535
原创 【黑马头条】 article微服务编译失败,包com.heima.model.common.article.dtos 不存在
解决办法, 将 model微服务重新打包编译下载。然后在service的pom文件里面加上版本号。这样编译就不会找不到啦。
2024-07-05 11:24:29
264
原创 【JUC-AQS】JDK17 AQS源码分析
在学习阳哥的的时候,阳哥讲AQS用的是JDK8,我用的是JDK17,想着自己分析一下,分析完之后发现JDK17与JDK8还是有些不同的,感觉更高效了。
2024-06-06 19:03:34
801
1
原创 【arxiv加载慢的解决方法】
比如我们要访问的链接是:https://arxiv.org/pdf/2306.04670.pdf。使用中科大的镜像地址:http://xxx.itp.ac.cn。
2024-01-27 16:50:47
923
原创 【回溯算法】n-皇后
回溯的过程可以看作是决策树中做决策与撤回决策,决策就是走向下一层,撤回决策就是返回。如果当前位置所在行、列、正对角线、负对角线有放置皇后,那么当前位置就不可以放置皇后了。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。的棋盘上,并且使皇后彼此之间不能相互攻击。研究的是如何将 n 个皇后放置在。给你一个整数 n ,返回所有不同的。的棋子放置方案,该方案中。每一种解法包含一个不同的。分别代表了皇后和空位。:将棋盘想象成下面样子。
2024-01-08 20:52:19
427
原创 【Vue3组件间通信理解】
可以实现子传父注意区分好:原生事件、自定义事件。原生事件:事件名是特定的(clickmouseenter等等)事件对象$event: 是包含事件相关信息的对象(pageXpageYtargetkeyCode自定义事件:事件名是任意名称事件对象$event: 是调用emit时所提供的数据,可以是任意类型!!!demo<Child @xxx = “function / 表达式”/>这里相当于在Child组件上绑定了一个事件xxx获取自定的事件.然后emits('xx', 相关数据)
2024-01-02 20:50:19
1032
原创 【Selenium+Webmagic】基于JAVA语言实现爬取js渲染后的页面,附有代码
事先声明笔者最近需要查看一些数据,自己挨个找太麻烦了,于是简单的学了一下爬虫。笔者在这里声明,,没有其他用途,希望来这篇文章学习的同学能抱有同样的目的。枪本身不坏,坏的是使用枪的人效果。
2023-12-04 18:59:54
2491
2
原创 【重磅】:Spring Initializer 已经不支持Java8,也就是SpringBoot2.x项目初始化
Spring Initializer 现在已经不支持初始化SpringBoot2.X项目了,也就是不能选择Java8了,本文介绍如何解决这种情况,包括升级Java版本使用SpringBoot3.X或者更换镜像源继续使用SpringBoot2.X
2023-11-27 16:50:17
9724
7
原创 windows10使用wheel安装tensorflow2.10.0(GPU版本)/2.13.0(最新版本) (保姆级教程)
安装tensorflow2.10.0 / 2.13.0
2023-09-08 12:38:10
5411
2
原创 解决Could not load dynamic library ‘cudnn64_7.dll‘; dlerror cudnn64_7.dll not found
发现这个问题是挺偶然的,在网上看别人如何解决的时候有了灵感。文献1中的方法对我没有效果,但是我发现我系统环境变量中配置好了路径,并且,下图中能加载的文件我都可以在这个路径下找到,唯独找不到文件,于是有了一个大胆的尝试,将这个文件复制到系统环境变量提示的路径下,然后就成功了。当然,我的方法不一定适用所有的情况,也许您的情况可以在文献1中得到解决。
2023-09-01 11:24:52
1262
2
原创 windows系统下安装Nodejs并安装vue-cli
node.js会自动帮我们配置环境变量,不需要我们再手动配置,可以自行检查。点击环境变量,在系统变量中找到path,双击它就可以看到环境变量了。这时候,modules里面也有了vue-cli。其中涉及隐藏目录,首先我们要显示隐藏目录。cd到你需要下载vue-cli的文件位置。在windows左下角的搜索窗口搜索。输入cmd,按回车,打开命令窗口。安装完之后npm指令可以直接使用。下载完成后点击下载好的文件。,若显示版本号则安装成功。根据自己的电脑选择下载。以管理员身份打开cmd。
2023-08-23 17:04:47
329
原创 阿里云快速部署开发环境 (Apache + Mysql8.0+Redis7.0.x)基于CentOS8
近来,根据阿里云快速搭建网站的教程去操作,在部署环境时执行‘ yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql’报错,错误如下。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。本教程中的MySQL版本仅为示例,您在实际操作时,MySQL的版本可能因软件源的更新而有所不同。下文示例中,将创建新的MySQL用户账户,用于远程访问MySQL。具体操作,请参见添加。
2023-08-03 14:37:16
1772
原创 【23王道数据结构】根据先序中序(中序后序)建立二叉树,并遍历
思路已知先序中序TreeNode* ConstructTree(char pre[], int preStart, int preEnd, char in[], int inStart, int inEnd) { if (preStart > preEnd || inStart > inEnd) return NULL; TreeNode *root = (TreeNode *) malloc(sizeof (TreeNode)); root->data =
2022-04-25 19:56:23
462
原创 【23王道数据结构】串的基本操作
//// Created by 48272 on 2022/4/20.//#include <iostream>using namespace std;const int MAXSIZE = 20;typedef struct { char data[MAXSIZE]; int length;}String;void Init(String &s);void StrCopy(String &T, String s);bool StrEmp
2022-04-20 16:53:08
1527
2
原创 【王道23数据结构】栈和队列的应用 课后题第三题。利用一个栈实现以下递归......
思路 代码//// Created by 48272 on 2022/4/18.//#include <iostream>#include <stack>using namespace std;stack<int> s;int f(int n, int x);int main() { printf("结果为:%d\n", f(3,1)); return 0;}int f(int n, int x) { if (n =
2022-04-18 15:42:54
754
原创 【王道数据结构】括号匹配
//括号匹配 bool match(SqList s, char a[]) { int i; char t; for (i = 0; a[i] != '\0'; i++) { if (a[i] == '(' || a[i] == '[' || a[i] == '{') { push(s,a[i]); } else { if (isEmpty(s)) return false; //有多余的右括号 pop(s,t); //判断栈顶元素是否与当前右括号匹配 .
2022-04-15 10:27:05
548
原创 【2023王道数据结构】链栈-不带头结点
思路:s指向第一个进栈的元素,其余的按头插法插入#include <iostream>#include <stdlib.h>using namespace std;typedef struct LinkNode { int data; struct LinkNode *next;}*LinkStack;void init(LinkStack &s);void push(LinkStack &s, int x);void pop(LinkSta
2022-04-12 15:39:53
1515
1
原创 【23王道数据结构】链表课后题25,【2019统考真题】设线性表L=·······
思路:时间复杂度 O(N) 空间复杂度O(1)主要代码void operate(LinkList &L) { if (L->next == NULL || L->next->next == NULL || L->next->next->next == NULL) return; //空链表,一个元素的链表,两个元素的链表不用操作 int length = 0; LNode *p = L, *q; //q指向后半段的第一个元素 whi
2022-04-11 17:33:01
2145
原创 【数据结构】线性表的基本操作
线性表的基本操作在第pos个位置插入删除第pos个元素后续待补充整体代码在第pos个位置插入/* @brief 在第pos个位置插入元素elem @param L 线性表 @param pos 位序 @param elem 待插入元素 @return short int*/short int ListInsert(SeqList &L, int pos, int elem) { //合法判断 if (pos < 1 || pos > L.length + 1)
2022-03-28 20:53:20
1634
原创 全栈学习之ajax基础学习
由于我用普通的maven项目没法运行样例123,于是就改用了springboot + thymeleafAjax什么是Ajax伪造一个Ajax maven实现jQuery实现的Ajax样例一 、实现失去焦点触发事件 (spring boot + thymeleaf)样例二、显示table数据 (spring boot + thymeleaf)样例三、动态验证用户名密码 (spring boot + thymeleaf)Ajax什么是AjaxAjax即Asynchronous Javascript An
2022-01-28 20:32:16
1839
原创 将云效上的代码库拷贝到github上
步骤1、打开github并登录2、点击new3、点击import a repository4、去云效仓库,复制自己仓库的url5、粘贴地址 并点击右下角的import6、等待输入账号密码https账号密码7、输入密码,提交,导入成功1、打开github并登录打开github并登录2、点击new点击new3、点击import a repository点击import a repository4、去云效仓库,复制自己仓库的url去云效仓库,复制自己仓库的url5、粘贴地址
2022-01-24 20:34:41
1314
1
原创 全栈学习之JavaWeb基础
JavaWeb1、基本概念1.1、 前言1.2、 web应用程序1.3、静态web1.4、动态web2、web服务器2.1、三个技术2.2、web服务器3、Tomcat3.1、安装Tomcat3.2、Tomcat启动3.3、Tomcat配置3.4、发布一个web网站4、http4.1、什么是http4.2、http的两个时代4.3、http请求请求行消息头4.4、http响应响应体响应状态码5、Maven5.1、Maven架构管理工具5.2、Maven下载5.3、配置环境变量5.4、阿里云镜像5.5、建立本
2022-01-24 19:30:42
2072
原创 全栈学习之CSS基础学习
CSS基础学习1. CSS导入方式行内样式内部样式外部样式2. 三种基本选择器2.1 标签选择器2.2 类选择器2.3 id选择器2.4 关联3. 层次选择器3.1 后代选择器3.2 子类选择器3.3 相邻兄弟选择器3.4 通用选择器4. 结构伪类选择器5. 属性选择器(常用)6. 美化网页6.1 为什么要美化网页6.2 字体样式6.3 文本样式6.4 超链接伪类及文字阴影超链接伪类文字阴影6.5 列表6.6 背景6.7 渐变7. 盒子模型7.1 什么是盒子模型7.2 边框7.3 外边距7.4 内边距7.5
2022-01-15 20:23:13
177
原创 全栈学习之JavaScript基础
JavaScript基础1、什么是JavaScript2、快速入门2.1、引入JavaScript2.11 内部引入2.22 外部引入2.2、基本语法内容2.3、 数据类型2.4、 严格检查模式3、数据类型3.1、字符串3.2、数组3.3、对象3.4、流程控制3.5、map set3.51、map3.52、set3.6、iterator4、函数及面向对象4.1、函数定义4.2、变量的作用域4.3、方法4.4、箭头函数 闭包4.5、创建对象4.6、class继承4.7、原型链继承5、常用对象5.1、Date5
2022-01-15 20:22:02
1599
1
原创 阿里云云效-删除远程仓库某一分支的某个文件/文件夹
打开终端依次输入指令git rm -r --cached [具体文件名,可包含文件夹路径] git commit -m “remark” git push例子打开终端此时看一下远程仓库已经没有了如果要删除一个文件夹 git rm -r --cached [具体文件名]后面就一样了...
2022-01-01 20:18:36
1604
原创 关于 Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb
我的问题是出现在了设计触发器的时候我的问题是出现在了设计触发器的时候我的问题是出现在了设计触发器的时候错误原因Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation ‘=’网上有一大堆分析,我就不分析了,说一下怎么解决的。软件 navicat for mysql问题就出现在这里
2021-12-01 19:48:31
2046
原创 实验七 数据库应用
实验目的:了解数据库系统、关系模型、客户-服务器模式等基本概念,掌握SQL的数据定义、数据操纵和数据查询等语句的语法;了解JDBC各种数据库驱动程序类型,熟悉JDBC提供的接口和类,掌握指定驱动类型、连接数据库、执行SQL语句、处理结果集等操作方法。实验内容:import java.sql.*;import java.util.Scanner;public class Final { /** * 变量定义 */ private static Connecti.
2021-10-30 20:20:41
464
空空如也
Jedis无法连接Redis客户端
2025-02-02
CAS修改Volatile变量会插入内存屏障吗
2024-12-10
navicate无法连接azure服务器上的mysql
2024-11-21
【Maven】一个module引用另一个module提示找不到包
2024-07-29
CSS实现输入框placeholder滚动显示无效
2024-05-26
echarts 自定义富文本无效
2024-04-19
Layui树形表格没有显示层级关系,只有双击父节点的时候才会展开
2023-12-07
VS Code 调试Python文件无法在断点处停止
2023-11-10
vscode导入tensorflow找不到模块
2023-08-31
h5py报错:FileNotFoundErr
2023-08-26
idea连接服务器端redis失败
2023-08-10
CentOS8配置C++环境无效
2023-08-07
thymeleaf-security报错
2023-07-27
vector erase不彻底?
2023-07-09
folium无法显示地图
2023-06-05
Tweepy报错You currently have Essential access
2023-05-07
layui行工具栏按钮失效
2023-04-24
layui数据表格不显示数据!
2023-04-24
layui轮播图加载无效果
2023-04-22
如何将数据库中的string类型转换成float类型
2023-04-09
基于潜在主题和成本的群组推荐算法
2023-03-31
python, 如何获取某一列满足其他列要求的和
2023-03-28
VSC配置C++环境
2023-01-12
atom中markdow-preview-plus没有实施预览效果
2022-06-13
springboot整合springSecurity,登录权限判定时,无法跳转
2022-05-27
为什么ajax 登录之后,页面刷新一次,必须后退一个页面才能显示提示信息
2021-12-02
ajax提交表单,页面无法跳转
2021-11-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人