自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在 Kubernetes 中应对 OOM:Java 应用程序

在Java应用程序领域,OutOfMemoryError(OOM)问题是一个挑战,当应用程序耗尽其分配的内存时会发生。传统上,在处理标准Java设置中的OOM时,该过程涉及触发堆转储 - 即应用程序在特定时间点的内存快照。这个诊断工具通过提供应用程序内存使用情况的状态来帮助开发人员准确定位与内存相关的问题。在Kubernetes中,当Java应用程序遇到OOM时,平台会启动重新启动以保持运行的顺利进行。与传统设置不同,在那里OOM可能导致完全关闭,Kubernetes会自动恢复,确保持续可用性。

2024-02-21 15:17:53 935

原创 MySQL设计开发&使用规范

【强制】业务中列值选择性很少的字段,如:status、is_delete字段类型使用tinytint(1)。虽然timestamp仅占用4字节,但是范围为1970-01-01 00:00:00:01到2038-01-01 00:00:00。:varchar规约varchar(32)、varchar(64)、varchar(255)【建议】存储金钱的字段,建议用int单位’分’比如100元,存储为10000分。【建议】使用varchar(20)存储手机号,不要使用整数。(财务金钱字段除外,可能为负值)

2024-01-27 23:33:19 915

原创 在 Spring Boot 中使用事务

您可以使用 @Transactional 注解的 rollbackFor 或 noRollbackFor 属性来自定义回滚行为。@Service// ...在这个例子中,我们指定 RuntimeException 不应触发回滚。这在您希望在事务内保留更改,即使发生错误时也很有用。

2024-01-24 17:41:48 1472

原创 OceanBase使用规范

所有使用OceanBase的数据库。降低故障率和维护成本。

2024-01-21 22:55:42 1262

原创 Java多线程基础:虚拟线程与平台线程解析

虚拟线程成为一个颠覆性的变革者,提供了轻量级、高效的并发性,与平台线程资源密集型的特性形成鲜明对比。它们通过在最小资源开销下使大量并发任务成为可能,从而改变了Java处理多线程的方式,简化了编程模型并增强了应用程序的可扩展性。然而,在这个新背景下对ThreadLocal的使用的复杂性突显了需要谨慎考虑的必要性。虽然ThreadLocal在传统线程中保持特定于线程的数据方面仍然是一个强大的工具,但在虚拟线程中,它的应用变得更加复杂,需要替代策略来进行状态和上下文管理。

2024-01-16 20:25:46 947

原创 使用注解@GrpcService在Spring Boot 中开始使用gRPC

在现代微服务架构中,不同服务之间高效、健壮和可扩展的通信至关重要。gRPC是由Google开发的高性能开源框架,使客户端和服务器应用能够无缝、高效地进行通信。本文将指导您通过使用@GrpcService注解将gRPC集成到Spring Boot应用程序中的步骤。在微服务和分布式系统的世界中,高效和可扩展的通信机制的需求比以往任何时候都更为关键。作为开发人员和架构师寻找强大而有效的方式来促进服务间通信的时候,他们经常在REST和gRPC之间进行权衡。

2024-01-15 18:00:15 1336

原创 OceanBase与MySQL兼容性对比

OB针对于高并发和大数据更有优势,公司的dba让我们把数据从mysql迁移到OceanBase了,这里记录一下OceanBase的MySQL模式。OceanBase的MySQL模式兼容MySQL5.7的绝大部分功能和语法,兼容MySQL5.7版本的全量以及8.0版本的部分JSON函数。

2024-01-13 19:29:03 983

原创 使用OceanBase必知的十件事

使用MySQL JDBC驱动连接OceanBase时,版本必须<=8.0.25,大于该版本可能会出现奇奇怪怪的问题分区表创建:3年内单表行数可能超过10亿行或者单表容量超过200GB,推荐创建分区表;分区表在表创建的时候需要指定,后续不支持改造,也不下支持分区数量、分区类型、分区键值的在线调整;建分区表时,表上的每一个主键、唯一键所对应的字段里都必须至少有一个字段包含在表的分区键字段中;不建议使用全局索引(删除分区的时候会重建全局索引,期间全局索引不可用)对于分区表,为了保障业务sql的访问

2024-01-13 18:30:08 494

原创 Springboot中的@DependsOn注解

在我的最近的Spring Boot项目中,我遇到了涉及两个Bean的情况,Bean1和Bean2。在初始化过程中,我需要Bean2依赖于Bean1。其中Spring中的注解,允许我指定在创建Bean2之前,Spring应确保Bean1已初始化。

2024-01-12 15:34:21 641

原创 在Java中正确使用Optional

为了使代码更简洁清晰,我们可以使用ifPresent()方法,该方法接受一个Consumer或一个Runnable,或者两者都接受。让我们看一下具体的用法。但是,只有在正确使用的情况下,Optional对象才是安全的。在上面的示例中,只有当wallet不为null时,即存在时,才将money添加到savings中。使用Optional.empty(),我们可以创建一个不包含任何类型的空的optional对象。现在让我们看一下Optional类中的不同方法,我们可以利用这些方法来编写促进空安全的清晰代码。

2024-01-12 09:25:40 1002

原创 Java 内存泄漏:原因、检测和预防

尽管 Java 语言具有强大的自动垃圾回收功能,但 Java 中的内存泄漏对于程序猿来说仍然是一个具有挑战性的问题。当应用程序不再需要对象但仍从其他对象引用对象时,就会发生这些泄漏,从而阻止垃圾收集器回收其内存。随着时间的推移,这可能会导致应用程序性能显着下降,甚至导致应用程序因OutOfMemoryError. 这篇文章旨在深入研究 Java 内存泄漏的细微差别,探索其检测方法和预防策略。

2024-01-11 11:01:04 1209

原创 通过示例解释序列化和反序列化-Java

总之,在Java中,序列化涉及将对象转换为字节流,从而实现其存储或传输;这些过程对于诸如将对象状态保存到文件、通过网络发送对象或将数据持久化到数据库等任务至关重要,确保数据能够轻松存储、传输和随后重建。序列化和反序列化是Java(以及通常的编程)中涉及将对象转换为字节流,以及反之的过程。当你需要传输或存储对象的状态时特别有用,比如将其通过网络发送或持久化到文件中。示例:客户端-服务器应用程序,其中对象在客户端和服务器之间发送。用例:当需要通过网络在不同应用程序或系统之间发送对象时。

2024-01-10 21:04:10 544 1

原创 MySQL 枚举类型如何定义比较好 tinyint?enum?varchar?

先来介绍一下enum类型吧。ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。(建表的时候写到建表语句里)虽然表面是字符串值,但其内部是数字索引,其索引值从1开始。注意:下标并不是从 0 开始,而 0 则具有其它的意义(空)节省存储空间,MySQL ENUM使用数字索引(1,2,3,…)来表示字符串值。可读查询和输出,数字将转换回查询结果中的相应字符。

2023-09-05 11:25:32 443

转载 mybatis <if test=““></if>标签0为null 无效的 踩坑

这里有必要再提一个“坑”,如果类似于String str =”A”;这样的写法时时,根据第三条规则,OGNL将会识别为Java 中的 char类型,显然String 类型与char类型做==运算会返回false,从而导致表达式不成立。本来只有String类型的才会进行这样的判断——xx!= ‘’,其实是自己码代码时只顾自制粘贴,自己给自己埋了个坑。=‘’  传入0时,表达式的值为false;当状态值设置为0时,操作完了,数据库没反应,没有设置为0。把状态用1和2表示,不使用0,一切正常,问题消失了。

2022-10-09 17:45:19 826

原创 判别式模型和生成式模型

在机器学习中,对于有监督学习可以将其分为两类模型:判别式模型和生成式模型。简单地说,判别式模型是针对条件分布建模,而生成式模型则针对联合分布进行建模。01 基本概念假设我们有训练数据(X,Y),X是属性集合,Y是类别标记。这时来了一个新的样本样本 x ,我们想要预测它的类别y。我们最终的目的是求得最大的条件概率 P(y|x)作为新样本的分类。判别式模型这么做根据训练数据得到分类函数和分界面,比如说根据SVM模型得到一个分界面,然后直接计算条件概率 P(y|x),我们将最大的 P(y|x)。作

2022-05-13 00:56:56 367

原创 Convolutional Neural Networks for Sentence Classification原文下载

写毕业论文的缘故要用这篇开创论文的图,结果到处收费下载。特地去sci-hub下的。各位要看什么论文可以直接去SCI-hub下。附上论文。链接:https://pan.baidu.com/s/1PmPi4GT46U2WCkCwsBYy6w提取码:hcru

2022-03-14 00:34:48 166

转载 为什么 Mysql 用 B + 树做索引而不用 B 树或红黑树

B + 树只有叶节点存放数据,其余节点用来索引,而 B -树是每个索引节点都会有 Data 域。所以从 Mysql(Inoodb)的角度来看,B + 树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。那么 Mysql 如何衡量查询效率呢?– 磁盘 IO 次数。 B - 树 / B + 树 的特点就是每层节点数目非常多,层数很少,目的就是为了就少磁盘 IO 次数,但是 B - 树的每个节点都有 data 域(指针),这无

2021-09-23 19:29:50 249

原创 Java中newInstance()和new()区别

一、newInstance()和new()区别:1、两者创建对象的方式不同,前者是实用类的加载机制,后者则是直接创建一个类:2、newInstance创建类是这个类必须已经加载过且已经连接,new创建类是则不需要这个类加载过3、newInstance: 弱类型(GC是回收对象的限制条件很低,容易被回收)、低效率、只能调用无参构造,new 强类型(GC不会自动回收,只有所有的指向对象的引用被移除是才会被回收,若对象生命周期已经结束,但引用没有被移除,经常会出现内存溢出)二、伸缩、扩展性:在开发中,我

2021-08-26 14:35:56 581

原创 线程池面试内容整理

第一部分:线程池类的结构线程池存在于Java的并发包J.U.C中,线程池可以根据项目灵活控制并发的数目,避免频繁的创建和销毁线程,达到线程对象的重用。下面是线程池的类图:1、 接口Executor接口Executor中,只有一个方法,为execute()2、 接口ExecutorService,继承自Executor几个重要的方法:(1) 关闭线程池的方法,有两种一个ExecutorService(J.U.C)可以关闭,这将导致它拒绝新的任务。 ExecutorService的两种关闭线程

2021-08-25 22:03:00 122 1

原创 并发与并行的区别是什么?

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。吃饭的时候先接电话跟后接电话的比较更像是中断优先级高低的不同,并发应该是一手筷子,一手电话,说一句话,咽一口饭。你吃一会饭,再去打一会电话,然后再继续吃饭,如果速度足够快,就给人一种吃饭打电话同时进行的感觉,这个叫并发。并行才是咽一口饭同时说一句话,而这光靠一张嘴是办不到

2021-08-25 13:58:00 195

原创 Java中正则表达式

一、概念正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在众多语言中都可以支持正则表达式,如Perl、PHP、Java、Python、Ruby等。当然在Java中也可以通过处理字符串的方式达到检索,替换文本字符串的目的,但是有了正则表达式写代码更加简洁,通常两三行代码就可以达到目的,当然这也是建立在熟悉正则表达式的基础之上的。二、正则表达式的规则

2021-08-25 13:51:50 132

原创 基于卷积神经网络cnn的情感分析代码

说先看一下这个图,它大体介绍了CNN的自然语言处理流程:1.首先每个单词对应一行,d=5表示分了5个维度,一般是分128维,300维之类的,这里为了方便,用d=5。这样的话矩阵就是7*52.然后第一步进行卷积的操作,分别使用了四行的卷积核两个,三行的卷积核两个,两行的卷积核两个。然后分别对75的矩阵进行卷积,对于75的话,45放上去可以向下移动4次,所以产生了41矩阵(feature map),35的则可以移动5次,所以得到51的矩阵,同理,25的得到61的矩阵。3.然后第二步进行池化操作,图中使

2021-05-08 13:56:19 1141

原创 RuntimeError: ‘lengths‘ argument should be a 1D CPU int64 tensor, but got 1D

pytorch版本不对,我出错的版本是1.7.0,换成pytorch1.4.0后错误消失

2020-12-05 17:12:41 2593 3

原创 module ‘torch‘ has no attribute ‘BoolTensor‘

网上找了很久没有找到解决方法。出错的环境是pytorch0.4.1,突发奇想把代码换到了pytorch1.4.0的环境。报错消失 问题解决~

2020-12-04 16:57:48 1796

原创 lap模块安装

捣鼓了一下午,在一个lap的压缩包里的readme文件里找到了安装代码。网上没有关于lap的安装方法。我记录一下避免后人走弯路,在cmd里输入 pip install git+git://github.com/gatagat/lap.git回车,过两分钟就安装成功了...

2020-11-25 21:22:40 4325 3

原创 所有版本的pytorch的whl文件下载资源

https://pytorch.org/get-started/previous-versions/

2020-11-12 22:33:02 1214

转载 AttributeError: module ‘tensorflow‘ has no attribute ‘keras‘问题

https://blog.csdn.net/aioy123456/article/details/99306439

2020-09-02 21:32:59 1633

原创 数据集

大学公开数据集(Stanford)69G大规模无人机(校园)图像数据集【Stanford】http://cvgl.stanford.edu/projects/uav_data/人脸素描数据集【CUHK】http://mmlab.ie.cuhk.edu.hk/archive/facesketch.html自然语言推理(文本蕴含标记)数据集【NYU】https://www.nyu.edu/projects/bowman/multinli/Berkeley图像分割数据集BSDS500【Berkele

2020-08-08 19:14:02 554

原创 glove.840B.300d、glove.42B.300d、glove.6B下载

迅雷下载链接:http://downloads.cs.stanford.edu/nlp/data/glove.840B.300d.zip网盘链接:链接:https://pan.baidu.com/s/14BBlq17X8ObJMApwaILqyg提取码:qcxx

2020-06-19 14:11:51 5554 8

原创 stanfordSentimentTreebank数据集下载

链接:https://pan.baidu.com/s/19_CqrQDLcIIlf3e2jeyXaA提取码:ivcb

2020-06-19 11:24:31 805

原创 神经网络中的激活函数的作用和选择

f(*)称为激活函数或激励函数(Activation Function),激活函数的主要作用是完成数据的非线性变换,解决线性模型的表达、分类能力不足的问题;激活函数的主要作用是改变之前数据的线性关系,如果网络中全部是线性变换,则多层网络可以通过矩阵变换,直接转换成一层神经网络。所以激活函数的存在,使得神经网络的“多层”有了实际的意义,使网络更加强大,增加网络的能力,使它可以学习复杂的事物,复杂的数据,以及表示输入输出之间非线性的复杂的任意函数映射。激活函数的另一个重要的作用是 执行数据的归一化,将输入数

2020-06-17 20:53:37 1716

原创 机器学习之One-Hot Encoding

很多机器学习任务中,特征并不总是连续值,有可能是分类值。考虑以下三个特征:["male", "female"]["from Europe", "from US", "from Asia"]["uses Firefox", "uses Chrome", "uses Safari", "uses Internet Explorer"]如果将上述特征用数字表示,效率会高很多。例如:["male", "from US", "uses Internet Explorer"] 表示为[0, 1, 3

2020-06-16 09:21:39 260

原创 词向量与Embedding究竟是怎么回事?

https://zhuanlan.zhihu.com/p/53194407?utm_source=qq&utm_medium=social&utm_oi=1066622868011413504https://spaces.ac.cn/archives/4122词向量(word2vec):https://www.bilibili.com/video/BV12W411v7Ga

2020-06-03 15:02:58 423

原创 Numpy.argmax()

返回沿轴axis最大值的索引。Parameters:a : array_like 数组axis : int, 可选默认情况下,索引的是平铺的数组,否则沿指定的轴。out : array, 可选如果提供,结果以合适的形状和类型被插入到此数组中。Returns: index_array : ndarray of ints索引数组。它具有与a.shape相同的形状,其中axis被移除。>>> aarray([[0, 1, 2], [3, 4, 5]])>

2020-06-02 17:59:38 162

原创 batch_size,iterations,epochs等概念的理解

1.batch_size深度学习的优化算法,用大白话来说其实主要就是梯度下降算法,而每次的参数权重更新主要有两种方法。(1)遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。(2)stochastic gradient descent每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降。这个方法速度比较快

2020-05-29 18:47:52 635

原创 python 中的 re.compile 函数

同时正则表达式很难掌握。正则表达式的各种规则就不在此赘述了,以下介绍在python的re模块中怎样应用正则表达式1. 使用re.compilere模块中包含一个重要函数是compile(pattern [, flags]) ,该函数根据包含的正则表达式的字符串创建模式对象。可以实现更有效率的匹配。在直接使用字符串表示的正则表达式进行search,match和findall操作时,python会将字符串转换为正则表达式对象。而使用compile完成一次转换之后,在每次使用模式的时候就不用重复转换。当然,

2020-05-28 16:13:34 873

原创 通俗理解归一化指数函数—Softmax函数

在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广。它能将一个含任意实数的K维向量z“压缩”到另一个K维实向量σ(z)中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。该函数多用于多分类问题中。做过多分类任务的同学一定都知道softmax函数。softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法:下面为大家解释一下为什么softmax

2020-05-22 10:19:08 5963

原创 如何理解TensorFlow中的batch和minibatch——梯度下降

深度学习的优化算法,说白了就是梯度下降。每次的参数更新有两种方式。第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stocha...

2020-05-04 19:52:26 264

原创 python中的del用法

python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题。python的del不同于C的free和C++的delete。由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。if __name__=='__main__': a=1 # 对象 1 被 变量a引用...

2020-03-30 17:24:36 478

原创 TensorFlow安装教程

安装说明:平台:windows版本:tensorflow2.0.0-alpha0(cpu版本)安装方式:pip一、安装环境Tensorflow2.0.0的CPU版本环境需求简单,安装比较简洁。二、安装过程anaconda安装在anaconda安装不需要重新下一个python版本,只需要后面新建一个虚拟环境就可以。接下来介绍具体的操作。1.检查anaconda安装:在cmd输入 c...

2020-03-23 00:01:53 564

空空如也

空空如也

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

TA关注的人

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