自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程(二)线程状态

(1)守护线程:守护线程是守护主线程的,主线程结束后守护线程也停止。可通过thread.setDaemon(true);线程默认是非守护线程。典型守护线程:垃圾回收线程。使其他线程阻塞,等待t线程执行完,其他线程再继续执行。可以理解为“ t线程加入进来了,其他的等等 ”线程礼让,使当前执行的线程回归到Runnable状态,重新等待cpu调度。

2024-10-11 17:30:15 160

原创 认证与授权

1、认证就是验证客户身份,解决“我是谁”的问题。比如登录用户密码、手机验证码、邮箱认证等2、授权就是授予用户权限,解决“我能做哪些事”的问题。比如登录某个系统,A可以编辑数据,B只能查看数据。身份认证是授权的第一步,认证通过后才能授予权限。

2024-08-29 09:35:39 408

原创 Spring家族之Spring Secutiry(二)配置原理

由上文我们在springboot项目中配置spring-security依赖后即开启了登录认证,那么springboot是如何集成的呢,答案就在 SpringBootWebSecurityConfiguration。HttpSecurity的配置过程就是向这个SecurityFilterChain添加不同功能的Filter对象。具体的配置源码可阅读以下文章,讲解的非常详细。中,我们实际体验了一下SpringSecurity的配置,发现它就是一组过滤器链,那么这个过滤器链是如何加载的,本文来进行一定的剖析。

2024-08-28 09:32:43 157

原创 Spring家族之Spring Secutiry(一)入门

1、自定义过滤器@OverrideSystem.out.println("自定义过滤器---------");2、将自定义过滤器添加到过滤器链@BeanSpring Security 基本介绍及基础项目搭建-优快云博客如何使用SpringSecurity_spring security使用-优快云博客。

2024-08-27 16:28:17 287 1

原创 java多线程(一)基本使用

(4)Runnable接口:多个线程可以共享同一个接口实现类的对象,非常适合多个相同线程来处理同一份资源。(1)Thread是类,如果继承Thread类就不能继承其他类了,而实现Runnable接口的限制就少一些。使用单线程耗时为各线程执行时间之和:4697,3个线程则耗时为最长线程执行时间:2299。(2)如果只是简单地需要启动一个线程并执行一些任务,直接继承Thread类更加方便。如果需要返回结果,肯定需要实现Callable接口的方式。(3)Runnbale接口可以将任务代码与线程代码解耦。

2024-08-23 17:25:01 318

原创 软件设计原则

修改前:定义绘画类,添加画圆形方法,画三角形方法。如果该类是别人写的可能修改不了,而且修改可能会引入错误,这不是我们想要的。不同模块之间尽可能少了解彼此的细节,降低代码的复杂性和耦合度,提高代码的可读性和可维护性。场景举例:造汽车,汽车依赖依赖底盘,底盘依赖轮子。类继承最小接口集合,避免实现其他不需要的接口方法。场景举例:动物有天上飞的,有地上跑的,会吃东西等,如果把这些行为放到同一个接口就会造成冗余。子类替换父类,尽量避免重写父类方法,尽量遵循父类的约束和行为,不引入新的约束和行为。

2024-08-22 11:42:08 718

原创 Netty入门

Netty是JBOSS开源的一款NIO网络编程框架,可用于快速开发网络的应用。Netty是一个异步的、基于事件驱动的网络应用框架,用于快速开发高性能的服务端和客户端。它可以极大的简化基于TCP、UDP等协议的网络服务。对于各种传输类型(阻塞或非阻塞式的socket)、通信方式(HTTP或websocket)都提供了统一的API接口;提供了灵活的可扩展性;高度可自定义的线程模型(多线程、线程池等);支持使用无连接的数据报UDP进行通信。具有高吞吐量、低延迟、资源消耗低、最低限度的内存复制等特性。

2024-08-12 10:24:36 300

原创 langchain-chatchat快速上手

是基于海量文本数据训练的深度学习模型。它不仅能够生成自然语言文本,还能够深入理解文本含义,处理各种自然语言任务,如文本摘要、问答、翻译等。世界上大约超过百分之八十的数据都是非结构化数据,例如:图像、音视频、自然语言等,这些模型不遵循预定义的模式或组织方式,可以使用各种人工智能 (AI) 和机器学习 (ML) 模型转换为向量。嵌入向量是非结构化数据的特征抽象,例如电子邮件、物联网传感器数据、Instagram 照片、蛋白质结构等等。从数学上来说,嵌入向量是浮点数或二进制数的数组。

2024-05-27 10:19:16 779

原创 python之迭代器、生成器、生成器表达式

生成器的优点:(1)节约内存。生成器一次只生成一个值,这意味着在处理大数据时它不需要存储所有序列,可以大大节省内存。(2)提升效率。延迟计算,在需要时生成值而不是预先生成整个序列。(3)处理大数据甚至无限流。因为它是按需生成,所以可以处理无限流而不会耗尽内存,如斐波那契数列9. 类 — Python 3.12.3 文档Python基础:生成器(Generators)和生成器表达式(Generator Expressions)详解-优快云博客。

2024-05-20 15:09:04 409 1

原创 Pycharm搭建Django项目-简单版

Django默认使用的是开发服务器,可以用于开发环境调试,但是不适合生产环境,在生产环境可以使用gunicorn来托管Django项目。注意gunicorn与windows系统不兼容,在windows环境下使用gunicorn启动项目会报错。

2024-05-16 17:17:14 282

原创 python-logging配置

1、logging四个组件:logger(日志记录器),handler(日志处理器),formatter(格式化器)、filter(日志过滤器)一个项目中可以设置多个logger,logger = logging.getLogger('***'),每个logger定义不同的日志级别、处理器过滤器等,以便日志分类查询handler可以配置日志级别、日志格式化样式、日志过滤器等。

2024-05-15 16:38:10 888 1

原创 Django用户登录认证与权限控制之request.user

在django框架中,可以通过request.user取到用户信息,那么request.user是如何设置的呢。

2024-05-09 17:14:13 599 1

原创 总结工作中常用linux命令,持续更新...

(1)查看磁盘分区空间使用情况:df -h (df: disk free h:human)(2)查看当前目录/指定目录空间已用情况:du -sh:展示当前目录大小du -sh *:展示当前目录下各文件夹/文件夹大小du -ah:展示当前目录下所有文件(包括多级目录下、包括隐藏文件)大小du -ah --max-depth=1:展示一级目录下文件、文件夹大小(包括隐藏文件)

2024-04-30 15:25:35 158 1

原创 logging.basicConfig配置仅第一次生效

if len(root.handlers) == 0,即未设置过handlers才会设置相应参数,如果已有handlers则不再处理新参数设置。场景简化为设置两次basicConfig,仅第一次设置的生效。

2024-04-19 11:24:22 608

原创 django数据模型中null和blank的区别说明

class Student(models.Model): name = models.CharField(max_length=255, blank=True,null=True) age = models.IntegerField(blank=True) description = models.CharField()null是数据库级别的null,默认为false,如果设置为null=True,则字段值可以为:null或空字符串null=false时,若不给字段赋值..

2022-02-10 17:33:04 1496

原创 python制作词云图

一、相关库及函数pip install wordcloud 文档:wordcloud.WordCloud — wordcloud 1.8.1 documentation1、生成词云对象classwordcloud.WordCloud(font_path=None,width=400,height=200,margin=2,ranks_only=None,prefer_horizontal=0.9,mask=None,scale=1,color_func=None...

2022-01-25 15:11:20 4620

原创 编码问题小记

计算机的基本存储单元为byte,表示1个字节(8bit),但是人类需要的符号太多,用1个字节表示是远远不够的,于是有了新的数据结构char。从char到byte需要编码。那么常见的acsii,Unicode、utf8等便是编码规则,按照这个规则将字符翻译成计算机理解的语言。1、数字转成字符的对应关系?输入的数字为unicode十进制数字,转为相对应的字符2、string与char的关系string本质是char数组,汉字后面的数字为Unicode十进制编码值3、string与

2022-01-17 17:19:52 663

转载 UTF8编码规则

上文:编码演进历史(ASCII-Unicode-UTF8)_球球888的博客-优快云博客介绍了编码类型,接下来学习UTF8的编码规则UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。UTF-8是一种变长字节编码方式。对于某一个字符的UTF-

2022-01-12 15:30:59 6065 1

原创 编码演进历史(ASCII-Unicode-UTF8)

编码演进历史ASCII编码:由于计算机最早是美国发明的,最早只有127个字符编码到计算机里,包括大小写字母,数字和一些符号。如(十进制:A-65, a-97),完整版见:ASCII码一览表,ASCII码对照表各国编码:由于世界上有百种语言,只用127个字符显然是远远不够的,于是各国制定了自己的编码标准,如中文的GB2312,韩文的Euc-kr ,日文的Shift_JISUnicode编码: 各国编码有各自的标准,多语言的时候就会出现...

2022-01-12 11:33:47 698

转载 事件驱动模型

通常,服务器处理模型有以下几种:接收到请求,创建新的进程处理 接收到请求,创建新的线程处理 接收到请求后,放入一个事件列表,让主进程通过非阻塞I/O方式处理请求第1中方式中,由于创建进程的开销比较大,...

2021-12-22 14:24:09 275

空空如也

空空如也

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

TA关注的人

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