自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Session、Cookie和Token的主要区别

cookie是由Web服务器保存在用户浏览器上的小文件(key-value格式),包含用户相关的信息。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response 向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie, 以此来辨认用户身份。Cookie 可以设置过期时间,过期后浏览器会自动删除。

2024-05-22 16:08:34 658

原创 基于Token的身份验证流程

用户首次登录,将输入的账号和密码提交给服务器。服务器对输入内容进行校验,若账号和密码匹配则验证通过,登录成功。服务器会生成一个Token(如JWT),这个Token包含了用户的身份信息、有效期等,并且会被签名以保证其完整性和真实性。然后服务器将这个Token返回给客户端。客户端拿到返回的Token后,将其保存在本地(如cookie/localStorage)。作为公共参数,以后每次请求服务器时都携带该Token(通常放在HTTP请求的Header中,如Authorization字段),提交给服务器进行

2024-05-22 15:57:11 131

原创 Java并发总结

由上图可以看出:线程创建之后它将处于 NEW(新建) 状态,调用 start() 方法后开始运行,线程这时候处于 READY(可运行) 状态。可运行状态的线程获得了 CPU 时间片(timeslice)后就处于 RUNNING(运行) 状态。当线程执行 wait()方法之后,线程进入 WAITING(等待) 状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态TIMED_WAITING(超时等待) 状态相当于在等待状态的基础上增加了超时限制,比如通过 sleep(long milli

2024-05-20 16:07:10 214

原创 java集合注意事项

2024-05-20 14:56:03 211

原创 Java基础——异常

捕捉错误的理想时机是在编译时,然后并不是所有的错误都可以在编译的时候发现,在运行的时候发生不正常的情况。在Java中采用类的形式对异常问题进行描述和封装对象。对比Exception和ErrorException 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。

2024-05-19 23:28:26 603

原创 Java基础——类

创建了Student类的实例对象,同时把Student的对象赋值给变量s,s实际上是一个当前对象在堆内存上的引用,s被存放在栈内存中,指向实际的student的对象,而实际上Student的对象是存储在堆内存中的。当一个对象被创建后,对象保存在堆内存中,Java程序不允许直接访问堆内存的对象,不管是数组还是对象,当程序访问引用变量的成员值或者方法时,实际上是访问引用变量的所指向的数组或者对象的成员变量或者方法。2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;

2024-05-19 23:18:08 511

原创 Java基础——字符串

基本数据类型、包装类 转成字符串,调用String类的public String valueOf(int n)可将int型转换为字符串相应的valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(doubled)、valueOf(boolean b)可由参数的相应类型到字符串的转换。下面示例中,s1 和 s2 采用 new String() 的方式新建了两个不同字符串,而 s3 和 s4 是通过 s1.intern() 方法取得一个字符串引用。

2024-05-17 19:09:52 941

原创 Java基础——数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

2024-05-17 17:58:14 267

原创 Java基础——变量和常量

标识符就是为程序代码中的变量,常量,方法,类,接口等指定的含有一定特殊含义的名称。跟我们世界万物的所拥有的名称或者我们每个人的姓名类型。标识符可以是任意的顺序的大小写字母、数字、下划线和美元符号组成,但是标识符首字母不能以数字开头。

2024-05-17 16:51:52 488

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

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

2024-02-21 15:17:53 948

原创 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 929

原创 在 Spring Boot 中使用事务

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

2024-01-24 17:41:48 1475

原创 OceanBase使用规范

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

2024-01-21 22:55:42 1298

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

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

2024-01-16 20:25:46 974

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

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

2024-01-15 18:00:15 1421

原创 OceanBase与MySQL兼容性对比

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

2024-01-13 19:29:03 1100

原创 使用OceanBase必知的十件事

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

2024-01-13 18:30:08 510

原创 Springboot中的@DependsOn注解

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

2024-01-12 15:34:21 677

原创 在Java中正确使用Optional

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

2024-01-12 09:25:40 1007

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

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

2024-01-11 11:01:04 1273

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

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

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

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

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

2023-09-05 11:25:32 485

转载 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 849

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

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

2022-05-13 00:56:56 377

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

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

2022-03-14 00:34:48 169

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

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

2021-09-23 19:29:50 257

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

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

2021-08-26 14:35:56 591

原创 线程池面试内容整理

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

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

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

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

2021-08-25 13:58:00 201

原创 Java中正则表达式

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

2021-08-25 13:51:50 135

原创 基于卷积神经网络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 1166

原创 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 2602 3

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

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

2020-12-04 16:57:48 1806

原创 lap模块安装

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

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

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

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

2020-11-12 22:33:02 1227

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

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

2020-09-02 21:32:59 1662

原创 数据集

大学公开数据集(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 561

原创 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 5617 8

原创 stanfordSentimentTreebank数据集下载

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

2020-06-19 11:24:31 811

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

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

2020-06-17 20:53:37 1728

空空如也

空空如也

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

TA关注的人

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