自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liululee的博客

闲话技术,大笑人生

  • 博客(168)
  • 收藏
  • 关注

原创 Python判断节假日的几种方式,你学废了吗?

最近在推进信息安全巡检的工作,按公司制度要求和信息安全标准,要求按时对硬件设备、网络、机房、应用系统、数据库等等做巡检工作。为了保证达到信息安全的目标,要求在每周四和节假日的前一天对各类设备和系统进行巡检。

2024-04-15 22:32:46 275

原创 我现在已经有点反感有些产品直接套AI壳子了

自ChatGPT爆火后,听到最多的一句话是:所有的产品都可以结合AI重做一遍,所有的商业模式都可以通过AI重来一遍。近些天与诸多厂家通过线上线下的方式,交流了RPA、BI、iPass、BPM等各类产品,很多产品都令人耳目一新,搭配上令人心动的AI技术,确实有些产品可以说做的已经很不错了,但也有玩概念AI滥竽充数的,能力尚且不足,训练尚且不够,业务理解尚且不清,就拿出来吹牛X的。这样的AI能力,用又用不了,还搞得你又想用,浪费大量时间,最后得出一个结论,能用,但满足不了我们复杂的业务场景。

2024-04-15 21:24:32 792

原创 WSGI与ASGI:两种Python Web服务器网关接口的比较

总之,WSGI和ASGI在处理请求、性能、支持的协议和典型实现等方面存在差异,选择哪种网关接口取决于具体情况。如果你的应用程序需要处理高并发请求并且希望利用异步编程的优势,那么ASGI是一个更好的选择。然而,如果你的应用程序更关注与现有技术的兼容性并且不需要处理大量并发请求,那么WSGI可能是一个更合适的选择。随着异步编程的日益普及和Web技术的不断发展,预期ASGI将在未来的Python Web开发中发挥越来越重要的作用。然而,WSGI作为传统的网关接口,仍将在许多现有的应用程序中发挥关键作用。

2023-11-07 13:42:16 456

原创 Python如何实现查看WiFi密码?

为了能够快速查看 Wi-Fi 密码,我们介绍了两种方法:一种是通过 Windows 的 Wi-Fi 属性查看密码,另一种是使用Python 中的 subprocess 模块来执行命令行获取密码;另外呢,有个名为 PyWifi 的第三方库,它可以用于操作 Wi-Fi,并提供了简单的 API 来获取 Wi-Fi 信息。比较适合我们获取到该网络的信息,以及使用 pywifi 模块实现一些更高级的功能,例如检测 Wi-Fi 网络的质量、分析数据流量等等。如果你觉得文章还不错,记得关注公众号: 锅外的大佬。

2023-11-06 14:44:16 926

原创 Python基础教程:Socket网络编程

网络编程是指编写程序使其能够通过网络连接与其他计算机进行通信。Python作为一种强大的脚本语言,也提供了丰富的库来支持网络编程,在这篇教程中,我们将介绍如何使用socket库实现简单的网络编程。

2023-07-31 09:50:17 597

原创 Python基础教程:面向对象编程

在Python中定义一个类非常简单,只需要使用class关键字即可。这个Car类有三个属性:make、model和year,以及一个方法print_car_info。__init__方法是一个特殊的方法,用于初始化对象的属性。self参数表示该方法属于对象本身,因此在访问对象属性时需要使用self关键字。Python基础教程:函数式编程以上就是Python面向对象编程教程的全部内容,在本教程中,我们主要学习了如何定义类,创建对象,以及理解python面向对象编程中的封装、继承和多态。

2023-07-24 09:08:31 142

原创 Python基础教程:函数式编程

Python函数式编程是一种编程范式,它的核心思想是将计算视为数学函数的运算,并且避免使用可变状态和副作用。在这篇教程总结中,我们将讨论如何使用Python进行函数式编程。第一步是理解函数是什么。在函数式编程中,函数被认为是“一等公民”,这意味着它们可以像任何其他数据类型一样传递和操作。因此,函数通常会接受输入并返回输出,而不会修改状态或影响外部环境。然后,我们需要了解Python中的lambda表达式。Lambda表达式是一种匿名函数,它可以在需要时方便地定义和调用。

2023-07-20 09:01:04 106

原创 Python基础教程:数据结构

在Python中,列表、元组、字典和集合是常见的数据结构。这些数据结构都有不同的特点和适用场景。列表是一种可变序列类型,可以存储任意类型的对象。列表的元素是有序的,并且可以通过索引访问和修改。列表还支持切片操作和各种方法,如添加元素、删除元素、排序等。由于列表是可变的,因此在需要修改数据时使用它是一个不错的选择。元组与列表类似,但是元组是不可变的。元组中的元素也是有序的,但是不能修改。由于元组不可变,因此在需要保证数据不被修改时使用它是一个不错的选择。字典是一种键值对的映射关系。

2023-07-17 11:06:03 170

原创 Python基础教程:异常处理try...except语句

由于各种原因,我们的代码可能会出现异常情况,例如输入错误、文件读写异常等等。为了保证程序的稳定性和可靠性,我们需要使用异常处理来及时捕获和处理这些异常情况。Python异常处理是Python中非常重要的一部分,它可以帮助我们避免程序出现错误,同时也提供了一种优雅的方式来处理程序出现的异常情况。

2023-07-11 12:58:33 1827

原创 Python基础教程:读写文件IO操作

Python 是一门优秀的开发语言,它不仅是一种动态的脚本语言,还支持多种应用场景。在 Python 中,我们可以使用文件和 I/O 操作来读取和写入文件。它比起其他编程语言,使用更加方便。

2023-07-06 15:42:34 359

原创 Python基础教程: 模块和包的创建及使用

Python模块和包的使用可以使程序员更加有条理地组织和管理代码,提高程序的复用性和可读性。同时,Python的标准库中已经包含了大量的模块和包,可以满足程序员的大部分需求。因此,掌握Python模块和包的使用方法,是成为Python高级程序员的必要条件之一。

2023-06-30 13:05:53 504

原创 Python基础教程: 入门简介

本文只是针对Python基础语法做了简单介绍,Python还有很多高级特性和应用,如面向对象编程、数据科学工具包(如NumPy、Pandas)、Web框架(如Django、Flask)等。如果你想深入了解Python的话,可以参考一些优秀的教材和在线资源,如《Python编程:从入门到实践》、《Python Cookbook》、《Python官方文档》等。同时,也可以通过参加在线课程或实践项目来提升自己的编程能力

2023-06-29 09:00:24 100

原创 微服务之间如何共享DTO?

1. 概述近些年来,微服务变得越来越流行。微服务基本特征是模块化、独立、易于扩展的。它们之间需要协同工作并交换数据。为了实现这一点,我们创建了名为 DTO 的共享数据传输对象。在本文中,我们将介绍在微服务之间共享DTO的方法。2. 将域对象发布为DTO使用微服务管理表示应用程序域的模型。域模型的关注点与 DTO 不同,我们将它们与DAO层中的数据模型分开。这样做的主要原因是我们不想通过服务向客户暴露我们领域的复杂性。恰恰相反,我们通过 REST API 暴露 DTO 为客户端提供服务。当DTO在这

2020-12-22 13:33:37 1906

原创 谁再问Servlet的问题,我就亲自上门来教学了

1. 概述在这篇简短的文章中,我们将从概念上理解什么是servlet 和 servlet 容器以及它们是如何工作的。同时,还能在请求、响应、会话对象、共享变量和多线程的上下文中看到它们的身影。2. Servlets 和 它的容器servlet 是 JEE 用于 web 开发常用的组件。它们基本上是运行在容器边界内的Java程序。总的来说,它们负责接受请求,处理请求,并返回响应。要使用它们,首先需要容器注册 servlet ,无论是基于 JEE 还是基于 Spring 的容器,都可以在启动时接收它

2020-12-18 09:00:33 178

原创 配置 Spring Batch 批处理失败重试机制

1. 引言默认情况下,Spring批处理作业在执行过程中出现任何错误都会失败。然而有些时候,为了提高应用程序的弹性,我们就需要处理这类间歇性的故障。在这篇短文中,我们就来一起探讨 如何在Spring批处理框架中配置重试逻辑。2. 简单举例假设有一个批处理作业,它读取一个CSV文件作为输入:username, userid, transaction_date, transaction_amountsammy, 1234, 31/10/2015, 10000john, 9999, 3/12/201

2020-12-11 09:16:42 1301

原创 Java 8 中的方法引用,轻松减少代码量,提升可读性!

1. 引言Java8中最受广大开发中喜欢的变化之一是因为引入了 lambda 表达式,因为这些表达式允许我们放弃匿名类,从而大大减少了样板代码,并提高了可读性。方法引用是lambda表达式的一种特殊类型。它们通常通过引用现有方法来创建简单的lambda表达式。方法引用包括以下四种类型:静态方法特定对象的实例方法特定类型的任意对象的实例方法构造方法在本篇文章中,我们将探讨Java中的方法引用。2. 引用静态方法We'll begin with a very simple exa

2020-12-08 08:57:15 3017 11

原创 Apache Beam,批处理和流式处理的融合!

1. 概述在本教程中,我们将介绍 Apache Beam 并探讨其基本概念。我们将首先演示使用 Apache Beam 的用例和好处,然后介绍基本概念和术语。之后,我们将通过一个简单的例子来说明 Apache Beam 的所有重要方面。2. Apache Beam是个啥?Apache Beam(Batch+strEAM)是一个用于批处理和流式数据处理作业的统一编程模型。它提供了一个软件开发工具包,用于定义和构建数据处理管道以及执行这些管道的运行程序。Apache Beam旨在提供一个可移植的编程层

2020-12-02 09:06:54 650

原创 Spring 对Apache Kafka的支持与集成

1. 引言Apache Kafka 是一个分布式的、容错的流处理系统。在本文中,我们将介绍Spring对Apache Kafka的支持,以及原生Kafka Java客户端Api 所提供的抽象级别。Spring Kafka 通过 @KafkaListener 注解,带来了一个简单而典型的 Spring 模板编程模型,它还带有一个 KafkaTemplate 和消息驱动的 POJO 。2. 安装和设置要下载和安装Kafka,请参考官方指南。然后还需要在 pom.xml 文件中添加 spring-kafk

2020-11-26 15:41:53 212

原创 小游戏2048最佳算法怎么实现?思路全解析!

1.简介很多人都玩过2048,我就比较老套,因为我一向看不上这类单机游戏。但是就在某一天泡脚的无聊时光,拿了媳妇儿的手机,左看看右点点,莫名打开了2048。嗯... 这真是一款打发无聊时光的 "good game"。通过滑动来使得每行或每列相邻并且相同的数字相加而得到一个最大的数字,最后的数字越大,得分越高!于是,我在想,是否能像魔方一样,有一定的套路来帮助我们决定每一步该往哪个方向滑动最佳,以便获得最好的成绩呢?2.如何玩20482048是在4×4方格中玩的游戏。方格的每个位置都

2020-11-23 08:38:21 16075 11

原创 Java初始化静态变量的时间顺序

1. 开始吧!今天,我们来探讨交流下静态变量初始化过程。Java虚拟机在类加载期间也同样遵循这个过程。2. 初始化过程在较高的层次上,JVM执行以下步骤:首先,加载并链接类。然后,这个过程的“初始化”阶段处理静态变量初始化。最后,调用与类关联的main方法。在接下来的讨论中,我们来探索下类变量初始化。3. 类变量在Java中,静态变量也称为类变量。也就是说,它们属于一个类,而不是一个特定的实例。因此,类初始化的时候也将初始化静态变量相反,类的实例 初始化的时候也将初始化 实例变量(非静态变

2020-11-19 08:47:42 1849

原创 Java泛型中<?> 和 <? extends Object>的异同分析

相信很多人和我一样,接触Java多年,却仍旧搞不清楚 Java 泛型中 <?>和 <? extends Object>的相似和不同。但是,这应该是一个比较高端大气上档次的Question, 在我们进行深入的探讨之前,有必要对Java泛型有一个基础的了解。详细请看上一篇文章!1. 泛型产生的背景在 JDK5 中引入了泛型来消除编译时错误和加强类型安全性。这种额外的类型安全性消除了某些用例中的强制转换,并使程序员能够编写泛型算法,这两种方法都可以生成更具可读性的代码。例如,在 J

2020-11-18 12:57:15 3698

原创 Spring Boot 创建 Docker 镜像

随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分。为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Docker 镜像的能力。这篇文章的目的,就是为了给大家介绍如何为 Spring Boot 应用程序创建 Docker 镜像。1. 传统Docker构建使用Spring Boot 构建 Docker 镜像的传统方法是使用 Dockerfile 。下面是一个简单的例子:FROM openjdk:8-jdk-alp

2020-11-17 10:18:28 1087

原创 为什么大多数IOC容器使用ApplicationContext,而不用BeanFactory

1. 引言Spring框架附带了两个IOC容器– BeanFactory 和 ApplicationContext. BeanFactory是IOC容器的最基本版本,ApplicationContext扩展了BeanFactory的功能。那么本篇文章中,我们将通过实际例子了解这两个IOC容器之间的显著差异。2. 延迟加载 vs. 预加载BeanFactory 按需加载bean,而 ApplicationContext 则在启动时加载所有bean。因此,BeanFactory与ApplicationC

2020-11-13 08:43:15 233

原创 重温Java泛型,带你更深入地理解它,更好的使用它!

1. 引言jdk5.0中引入了Java泛型,目的是减少错误,并在类型上添加额外的抽象层。本文将简要介绍Java中的泛型、泛型背后的目标以及如何使用泛型来提高代码的质量。2. 为什么要用泛型?设想一个场景,我们希望用Java创建一个列表来存储Integer;代码可能会写成这样:List list = new LinkedList();list.add(new Integer(1)); Integer i = list.iterator().next();令人惊讶的是,编译器会提示最后一行。它不

2020-11-12 09:38:22 207

原创 看完了这篇,面试的时候人人都能单手撸冒泡排序!

鸡汤给大家备好了:岁月流逝是多么残酷啊,对我们也是如此,不要把时间浪费在不重要的人和事情上!在计算机科学中,排序是一个经典的主题。学习排序算法的好处有三:1.创造性解决问题2.练习和巩固程序设计技能3.演示算法性能的极好例子冒泡排序属于比较简单的一种排序方法。但是,很多同学到现在也不能手写一个冒泡排序。甚至经过和一些刚毕业甚至工作一两年的朋友交流后,发现他们内心对算法,抱着深深的恐惧和盲目崇拜,觉得算法好像高不可攀,只适合那些高学历、高智商的人来学习和研究!今天,我想把这篇献给他们,希望他们能树

2020-11-11 08:52:53 531

原创 一文搞懂什么是单代号网络图!

项目管理之进度管理——单代号网络图1. 概念前导图法(Precedence Diagramming Method, PDM),也称之为紧前关系绘图法,是用于编制项目进度网络图的一种方法,它使用方框(称之为节点)代表活动,节点之间用箭头连接,以显示节点之间的逻辑关系。这种网络图也被称作为单代号网络图(只有节点需要编号)或活动节点图(Active On Node, AON)。前导图法包括活动之间存在4种类型的依赖关系,分别是:1.结束-开始的关系(F-S型):前序活动结束后,后续活动才能开始。例如:只有

2020-11-03 08:39:46 21996

原创 Java In This Week : 打工人的一周

1. Spring and Java>> The JPA and Hibernate first-level cache [vladmihalcea.com]关于JPA/Hibernate中第一级缓存的好处:写后缓存、批处理和应用程序级可重复读取。>>Java模块化状态的更新 [blog.frankel.ch]对Java生态系统中一些著名图书馆采用Java模块系统的分析。>> 使用jEnv管理多个JDK安装 [reflectoring.io]在处理多个Java

2020-11-02 15:26:55 257

原创 如何更好的记忆 LinkedBlockingQueue 以及 ConcurrentLinkedQueue

1. 简单的开篇LinkedBlockingQueue 和 ConcurrentLinkedQueue 是 Java 高并发场景中最常使用的队列。尽管这两个队列经常被用作并发场景的数据结构,但它们之间仍有细微的特征和行为差异。在这篇文章中,我将和大家一起探讨这两者之间的异同点。欢迎大家在留言讨论~2. LinkedBlockingQueue首先 LinkedBlockingQueue 是一个 “可选且有界” 的阻塞队列实现,你可以根据需要指定队列的大小。接下来,我将创建一个LinkedBlocki

2020-08-19 14:24:45 551

原创 spring boot 整合 ehcache

1. 该说的话每个人都应当学会独立地去思考、去寻找答案,而不是一味地伸手向他人索取所谓的标准答案。 首先,别成为“拿来主义”者,其次远离"拿来主义"的人。2. ehcache2.1 主要特性快速,简单.多种缓存策略缓存数据有两级:内存和磁盘,因此无需担心容量问题缓存数据会在虚拟机重启的过程中写入磁盘可以通过RMI、可插入API等方式进行分布式缓存具有缓存和缓存管理器的侦听接口支持多缓存管理器实例,以及一个实例的多个缓存区域提供Hibernate的缓存实现2.2

2020-07-21 13:16:33 589

原创 对比Memcached和Redis,谁才是适合你的缓存?

Memcached vs Redis近期公司采购软件,评估时,某软件谈到使用了 Memcached 和 Redis 缓存。在本文中,将研究这两个流行的缓存的异同,方便理解和记忆。1. Memcached 与 Redis通常,我们会考虑在处理大量数据时使用缓存提高性能。Memcached 是一个分布式内存缓存系统,设计简单易用,非常适合用作缓存或会话存储。Redis 是一个内存中的数据结构存储,它提供了一系列丰富的特性。它作为缓存、数据库、消息代理和队列非常有用。2. 安装2.1. 安装 Mem

2020-05-22 14:22:05 969 1

原创 Top 10 顶级项目管理工具

成功的项目都要归功于成功的项目管理。这些工具帮你踏上成功之旅!项目管理是成功完成项目并使公司变得伟大的秘诀。不,这不是标题党(clickbait) —— 我已经看到两家软件公司(我在那里工作)因为项目管理不善而在1 - 2年内濒临破产,其他一些人看到他们的产品发布推迟了几个月。虽然我同意,与其他大多数学科一样,项目管理中也有很多骗人的把戏,但这并没有降低其重要性和影响。适用于项目管理的内容也适...

2020-04-29 13:12:20 1243

原创 读一本书却发现收获不大?了解下该怎么读书吧!

不知道大家有没有这样的经历,经常想要看完一本书,却总是半途而废。哪怕最后硬着头皮看完,也感觉收获无几。如果你有这种情况,那么,你并未掌握读书的方法和技巧,你只是学会了“看书看文字”而已。如果你不及时调整自己的读书方法,继续这样“看书”,那还不如翻翻新华字典,起码还可以认识几个新字。1.看书和读书看书和读书是完全不同的状态,看书很简单,就像看小说,看电视,一遍过去,再过一段时间回忆,基本已经忘...

2020-04-20 08:50:43 1547 1

原创 NullPointerException的处理新方式,Java14真的太香了

在Java语言中,处理空指针往往是一件很头疼的事情,一不小心,说不定就搞出个线上Bug,让你的绩效考核拿到3.25。最近新出的Java14,相信大家都有所耳闻,那么今天就来看看,面对NullPointerException,Java14有哪些更好的处理方式呢?1.传统的 NullPointerException我们编码过程中呢,经常会使用链式调用的方式来写代码,这样写起来很方便,也很清晰,但是...

2020-04-15 08:51:55 1096

原创 ThreadPoolTaskExecutor 中 corePoolSize vs. maxPoolSize

1. 概览Spring中的 ThreadPoolTaskExecutor 是一个 JavaBean ,提供围绕java.util.concurrent.ThreadPoolExecutor 的抽象实例,并作为Spring 中org.springframework.core.task.TaskExecutor 暴露出来. 此外,它可以通过corePoolSize、maxPoolSize、queue...

2020-03-30 08:50:38 4016

原创 不管你年底换不换工作,了解下单例模式

1. 单例模式什么是单例模式?简言之就是确保定义为单例模式的类在程序中有且只有一个实例。单例模式的特点:只有一个实例 (只能有一个对象被创建)自我实例化(类构造器私有)对外提供获取实例的静态方法2.单例模式的实现常见的单例模式实现方式有五种:2.1. 懒汉式懒汉式(一般也称之为 饱汉式),具体代码实现如下:public class Singleton { /*...

2019-12-01 23:00:23 1287 1

原创 Spring Boot: Spring Doc生成OpenAPI3.0文档

1. 概述公司正好最近在整理项目的文档,且文档对于构建REST API来说是至关重要的。在这篇文章中,我将介绍Spring Doc , 一个基于OpenAPI 3规范简化了Spring Boot 1.x和2.x应用程序的API文档的生成和维护的工具。2. 设置springdoc-openapi如果想让 springdoc-openapi 为我们的API生成标准的 OpenAPI 3 文档, ...

2019-11-25 09:42:07 10397 1

原创 微服务中的Kafka与Micronaut

今天,我们将通过Apache Kafka主题构建一些彼此异步通信的微服务。我们使用Micronaut框架,它为与Kafka集成提供专门的库。让我们简要介绍一下示例系统的体系结构。我们有四个微型服务:订单服务,行程服务,司机服务和乘客服务。这些应用程序的实现非常简单。它们都有内存存储,并连接到同一个Kafka实例。我们系统的主要目标是为客户安排行程。订单服务应用程序还充当网关。它接收来自客户的请求...

2019-11-21 08:54:41 8226 1

原创 用Java实现简单的区块链

用 Java 实现简单的区块链1. 概述本文中,我们将学习区块链技术的基本概念。也将根据概念使用 Java 来实现一个基本的应用程序。进一步,我们将讨论一些先进的概念以及该技术的实际应用。2. 什么是区块链?因此,让我们首先了解到底什么是区块链...它的起源可以追溯到2008年 Satoshi Nakamoto 在比特币上发布的白皮书。区块链是一个分散的信息分类账。它由通过使...

2019-11-13 07:48:01 8129 7

原创 谁说搞Java的不能玩机器学习?

简介机器学习在全球范围内越来越受欢迎和使用。 它已经彻底改变了某些应用程序的构建方式,并且可能会继续成为我们日常生活中一个巨大的(并且正在增加的)部分。没有什么包装且机器学习并不简单。 它对许多人来说似乎非常复杂并常常令人生畏。像谷歌这样的公司将自己的机器学习概念与开发人员联系起来,在谷歌帮助下让他们逐渐迈出第一步,故TensorFlow的框架诞生了。TensorFlow为何物?Tensor...

2019-11-05 21:32:01 2098

转载 关于 JShell,开发人员需要知道的10件事情

点击左上角蓝字,关注“锅外的大佬”专注分享国外最新技术内容Jshell 作为 Kulla 项目下 Java 增强建议(JEP) 222 的一部分而被引入在 JDK 9 中...

2019-10-28 08:18:00 686

空空如也

空空如也

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

TA关注的人

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