文章目录前言源码获取一、认识PDFBox二、导入依赖三、基础功能demo1:读取pdf所有内容demo2:读取所有页内容(分页)demo3:添加页眉、页脚demo4:添加居中45°文字水印demo5:添加图片到右上角参考文章资料获取前言博主介绍:✌目前全网粉丝2W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。涵盖技术内容:Java后端、算法、分布式微服务、中间件、前端、运维、ROS等。博主所有博客文件目录索引:博客目录索引(持续更新)视频平台:b站-Coder长路源码获取项目源码:Gitee、Github本篇文档的视频系列讲解:Java
ChatGPT高效提问—基础知识为了更好地学习AI和prompt相关知识,有必要了解AI领域的几个专业概念。1.1初识AIGCAIGC(artificialintelligencegeneratedcontent)即人工智能生成的内容,可以理解为利用人工智能技术自动生成文本、图像、音频和视频等内容。神经网络和深度学习技术的迅猛发展使得AIGC成为众多领域的重要工具,包括新闻撰写、艺术创作、广告制作和聊天机器人等。有关AIGC的一些关键概念和技术,包括生成模型、数据集、数据预处理、训练与微调以及评估生成内容。这些内容密切相关且相互依赖,通过全面了解AIGC,你将更好地理解它们之间的关系,并进一步
Linux内核的官方网站:https://www.kernel.org/目录命令备忘录1.关机/重启/注销2.系统信息和性能查看3.磁盘和分区4.用户和用户组5.网络和进程管理6.常见系统服务命令7.文件和目录操作8.文件查看和处理9.打包和解压10.RPM包管理命令11.YUM包管理命令12.DPKG包管理命令13.APT软件⼯具常用的命令1.不同目录下切换2.进入到某个目录3.显示当前目录中的文件和子目录4.解压缩文件5.创建文件或文件夹6.删除文件或文件夹7.关于终端的常用操作8.打开终端9.建立符号连接(软连接)10.全局查找某一个文件11.关于ip的设置12.关节和重启13.启动和关
本篇文章主要讲述一下在面试过程中TCP的高频知识点1.TCP三次握手流程图:客户端发送一个SYN(同步)报文段给服务器,选择一个初始序列号,并设置SYN标志位为1。服务器接收到客户端的SYN报文段后,回复一个ACK(确认)报文段,其中确认号设置为客户端发送的序列号加1,同时也选择一个初始序列号,并设置SYN和ACK标志位为1。客户端接收到服务器的ACK报文段后,回复一个ACK报文段作为确认应答。其中确认号设置为服务器发送的序列号加1。2.TCP的基本性质 1.TCP是全双工的可靠的基于字节流的传输协议2.同一个五元组只允许建立一条连接3.通过序列号可以实现数据包按序收发丢失重传3.TCP三次握
Git1.git是什么?2.versioncontrolsystem?3.git:4.部署5.git相关命令1.查看git版本2.使用:版本控制1.创建仓库2.使用6.分支:7.`.git`文件夹目录介绍8.如何修改commit的msg信息9.工作区vs暂存区vs本地仓库10.删除文件文件重命名11.紧急任务12..gitignore13.仓库备份:克隆14.本地仓库与远程仓库交互1.本地仓库连接到远程仓库场景:思考:【学有余力的同学试试】2.如何切换远程仓库版本1.git是什么?官网地址:https://git-scm.com/·distributedversioncontrolsystem
第一次尝试报名蓝桥杯的Python组,好好备战,希望省赛可以拿奖!目前是整理了一些Python的常用函数和常用内置库,后面可能会开始刷题,如果有比较需要记住的知识点,会再写一篇刷题篇一、输入输出1.输入字符串和浮点数n=input()#字符串可以直接遍历,输入字符串时遇到需要输出字符串的题,可以再建一个字符串用来更新,比如这道题#输入一个由小写英文字母组成的字符串,请将其中的元音字母(a,e,i,o,u)转换成大写,其它字母仍然保持小写n=input()res=''foriinn:ifiin'aeiou':res+=i.upper()else:res+=iprint(res)n=float(i
自从ChatGPT发布以来,国内外的开源大模型如雨后春笋般成长,但是对于很多企业和个人从头训练预训练模型不太现实,即使微调开源大模型也捉襟见肘,那么直接部署这些开源大模型服务于企业业务将会有很大的前景。本文将介绍七中主流的LLM推理和服务开源库。下面首先来总结一下这些框架的特点,如下表所示:LLM推理有很多框架,各有其特点,下面分别介绍一下表中七个框架的关键点:vLLM[1]:适用于大批量Prompt输入,并对推理速度要求高的场景;Textgenerationinference[2]:依赖HuggingFace模型,并且不需要为核心模型增加多个adapter的场景;CTranslate2[3]
本文分享自华为云社区《【理解云容器网络】1-基础篇-iptables介绍》,作者:可以交个朋友。iptables规则下图为数据包到达linux主机网卡后,内核如何处理数据包的大致流程什么是规则规则是管理员对数据包制定的一种触发机制,即当数据包达到某种条件,就执行指定的动作。条件:可以是数据包源地址、目的地址、协议等动作:可以是拒绝、接受、丢弃等;详细介绍见下表动作说明ACCEPT将封包放行,进行完此处理动作后,将不再比对其它规则,直接跳往下一个规则链(nat:postrouting)REJECT拦阻该封包,并传送封包通知对方,可以传送的封包有几个选择:ICMPport-unreachable、
今天同事发开中遇到了一个代码性能优化的问题,原本需求是:从一个数据库中查询某个表数据,存放到datatable中,然后遍历datatable,看这些数据在另一个数据库的表中是否存在,存在的话就要更新,不存在就要插入。 就这个需求本身来说很简单,但是随着数据量的增大,之前通过循环遍历的方式就出现了性能问题。我在思索片刻后,给出的建议是分页查询和利用事务批量提交。1.利用数据库事务批量提交1using(SqlTransactiontransaction=targetConnection.BeginTransaction())2{3foreach(DataRowrowindataTable.R
TLDR修饰变量的时候,可以把constexpr对象当作加强版的const对象:const对象表明值不会改变,但不一定能够在编译期取得结果;constexpr对象不仅值不会改变,而且保证能够在编译期取得结果。如果一个const变量能够在编译期求值,将其改为constexpr能够让代码更清晰易读。constexpr函数可以把运行期计算迁移至编译期,使得程序运行更快(但会增加编译时间)。但如果constexpr函数中存在无法在编译期求值的参数,则constexpr函数和普通一样在运行时求值,此时的返回值不是常量表达式。1.常量表达式和constexprC++11中引入了constexpr关键字。c