自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java 读取 Excel、docx、pdf 和 txt 等文件万能方法!

如何使用 Java 读取 Excel、"doc"、"docx"、"pdf" 和 "txt" 文件。在 Java 开发中,我们经常需要读取不同类型的文件,包括 Excel 表格文件、"doc" 和 "docx" 文档文件、PDF 文件以及纯文本文件。其中最常用的是 Apache POI 库。Apache POI 是一个流行的 Java 库,提供了许多 API 来读取和写入 Microsoft Office 文档,包括 Excel、Word 和 PowerPoint 等。

2024-06-07 17:11:44 2061

原创 Java 项目防止 SQL 注入的四种方案

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。SQL案列这个id从请求参数中获取,若参数被拼接为:此时,数据库的数据都会被清空掉,后果非常严重。

2024-06-06 14:27:33 497

原创 Java计算百分比保留整数

注意,当使用整数进行除法时,Java会执行整数除法(丢弃小数部分),因此我们通常需要将一个操作数转换为。假设我们有一个产品的销售额和销售总额,我们想计算该产品的销售额占总销售额的百分比并保留整数。最后,我们打印出原始数值、基准数值、原始百分比和四舍五入后的百分比。假设我们有一个学生的分数和满分,我们想计算学生的分数占满分的百分比并保留整数。假设我们有一个候选人的得票数和总投票数,我们想计算该候选人的得票率并保留整数。方法对得到的百分比进行四舍五入到最接近的整数。的公式来计算百分比,并使用。

2024-06-06 14:23:22 486

原创 Java有几种字符串拼接方式,源码如何实现,说一下它们的优缺点

对于简单的字符串拼接,使用是方便的。在处理大量数据或循环中,应优先考虑使用或。Java 8 的和提供了更灵活的字符串处理能力,特别是在需要分隔符的情况下。

2024-06-05 16:06:48 1073

原创 Java内存马基础(一)--三大件(Servlet、Filter、Listener)

Servlet 是一个用Java 编写的程序,此程序在服务器上运行以处理客户端请求。

2024-06-04 15:07:52 785

原创 4 种方法,帮你快速新建 Java 项目!

除了以上方法外,最推荐的方法还是在学习和开发过程中,持续整理和沉淀一套属于自己的万用项目模板,企业中也通常都会有适应业务的基础建设代码。阿里提供了一款云原生应用脚手架,如果你的项目需要用到 Spring Cloud Alibaba 组件,那么强烈建议使用该脚手架来创建项目,可以保证各组件依赖版本号的一致性。这些项目一般都是大而全的、功能十分丰富的管理系统,对于企业来说会比较实用,但是对于编程学习者来说,不是很推荐,想要自定义开发一些额外的功能会比较麻烦。

2024-06-03 15:48:05 1948

原创 一篇文章掌握Java的80%:面向对象与并发编程

Java作为一种广泛使用的计算机编程语言,其强大之处在于其面向对象的特性和对并发编程的良好支持。作为一名程序员,我深知掌握Java的面向对象概念、集合框架、多线程与并发编程,以及JVM基础对于编写高效、可维护的代码至关重要。本文将引导你快速掌握Java的这些核心概念。

2024-06-03 09:47:08 939

原创 软件开发,一定要有这5个流程!

刚开发的软件,肯定不是百分百完美,需要反复进行测试,测完了总结bug,修改完Bug、继续找Bug,一直到系统没有bug了为止。在这个阶段,测试人员会根据需求文档和设计文档,使用适当的测试方法和工具对软件进行全面的测试,以检测和修复潜在的缺陷和错误。2、深入了解和分析需求,做出一份文档系统的功能需求文档。在这个阶段,开发人员会根据需求和设计文档,使用所选技术和工具进行前、后端编码,并不断进行交互式开发和反馈。测试团队需要遵循良好的测试规范和标准,以确保测试结果的准确性和可重复性,并及时跟踪和报告问题。

2024-05-31 16:55:56 503

原创 关于软件开发你知多少?

详细设计:在总体设计的基础上,对系统的各个模块进行详细的规划和设计,包括模块的功能、输入输出、处理逻辑、界面设计等。域名又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识,相当于一个家庭的门牌号码,别人通过这个号码可以很容易找到你。例:www.xxxx.com。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效地利用数据。

2024-05-31 15:07:51 1022 1

原创 软件研发常见的开发模型和管理流程

一个项目被拆解为多个小项目,每个小项目如同一个瀑布模型,都包括需求分析,设计,实现,测试。每个小项目的完成,就可以认为是产品的一次迭代,虽然还不完善,但用户可以使用。它把开发过程分解为按顺序进行的六个阶段:计划,需求分析,设计,实现,测试,运行维护。开发模型指的是软件开发的全部过程、活动和任务的框架,它规定了软件开发的具体活动和任务,并且以清晰直观的方式表达出软件开发的全部过程。除了以上这两种,还有不少变种,如快速原型模型,螺旋模型,智能模型,增量模型,喷泉模型,V模型,混合模型,演化模型。

2024-05-31 10:55:23 844

原创 你们对PHP的误解有哪些 ??

PHP 比其它脚本型语言的扩展成本更低,因为它需要更少的资源来开始运行,并且可以在具有更多 CPU 的较小内存的服务器上运行。通过在 SQL 中使用 prepared 语句,避免了 SQL 注入攻击(这是由于需要构建 SQL 查询并将查询和数据一起发送导致的,其中用户可以向查询中增加额外的 SQL 命令)。另外,ORM 的使用也很普遍,它确保用户数据和查询是分开发送的,而 SQL 不能将其视为单独的命令。而且,这些年来,一些糟糕的实践是由缺失的特性造成的,导致了一些本不应该被允许的事情被允许。

2024-05-30 17:21:06 545

原创 PHP 8.3 来了,快来看看最新更新

它包含了许多新功能, 它包含了许多新功能,例如:类常量显式类型、只读属性深拷贝,以及对随机性功能的补充。这种方法可以使开发者更轻松的生成随机的标识符(如域名),以及任意长度的数字字符串。属性,PHP 将确保在父类或实现的接口中存在同名的方法。添加该属性表示明确说明覆盖父方法是有意为之,并且简化了重构过程,因为删除被覆盖的父方法将被检测出来。由于浮点数的精度和隐式四舍五入的限制,在特定区间内生成无偏差的浮点数并非易事,常建的用户解决方案可能会生成有偏差的结果或超出要求范围的数字。时未提供参数,已被废弃。

2024-05-30 11:44:47 243

原创 PHP的一些安全设置,我都是这样设置的

跨应用程序使用Cookie:不正确配置的应用程序可能具有相同的会话存储,如所有会话默认存储在/tmp目录下,一个应用程序的cookie可能永远不会被重新用于另一应用,只要加密密钥不同。它的设计初衷是为了保护服务器和用户,抵御PHP程序和PHP核心中已知或者未知的缺陷(感觉挺实用的,可以抵御一些小攻击)。不允许包含已上传的文件;,你可以得到一些错误日志,你能把这些日志放到系统日志中,也可以同时写到其他任意的日志文件中去;第一部分是一个用于PHP核心的补丁,它能抵御缓冲区溢出或者格式化串的弱点(这个必须的!

2024-05-30 11:34:05 730

原创 【php开发教程】PHP中如何处理9大缓存技术难题?

比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;所以,对于相同的php文件,第一次运行时可以缓存其Opcode码,下次再执行这个页面时,直接会去找到缓存下的opcode码,直接执行最后一步,而不再需要中间的步骤了。就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的访问才会先取缓存文件的内容,但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;

2024-05-29 17:59:18 727

原创 如何使用 PHP 函数进行网站性能监控和优化?

以上介绍了几种常用的 PHP 函数和代码示例,用于进行网站性能监控和优化。通过了解脚本执行时间、内存使用情况、数据库查询性能、代码性能和 HTTP 请求性能,我们可以更好地进行网站性能的优化工作,提升网站的性能和用户体验。当然,除了这些示例之外,还有许多其他的性能监控和优化方法,需要根据具体情况进行选择和使用。希望本文对您有所帮助!

2024-05-29 14:40:24 577

原创 PHP:历久弥新、不断进化的 Web 开发利器

PHP,全称“PHP:超文本预处理器”,是一种广泛应用于网站构建的编程语言。它如同餐厅中的厨房,静静地运行在服务器上,为网站提供强大的后端支持。当访客浏览网页时,PHP便如同技艺高超的厨师,默默地烹饪出一道道精美的网页佳肴,并将其呈现给访客。因此,PHP在构建动态、交互性强的网站中扮演着至关重要的角色。

2024-05-29 10:52:13 458

原创 2024 年的最佳 PHP 框架

将 PHP 框架想象成一个已经提供了一个正在运行的原始级系统,你可以在其中嵌入自己的代码,而无需从头开始遍历每个细节。比如安全身份验证?已经搞好了!路由?是的!依赖注入?不需要考虑!通过使用框架,开发者可以大大减少编写所需的代码量并提高工作效率,同时由于使用代码标准和最佳实践,还可以确保高水平的软件质量。探索框架的功能也能帮助我们开发技能的提高,是 PHP 学习的另一种好方法。什么时候用 PHP 框架。

2024-05-27 16:46:34 1659

原创 2024年 15 大软件开发趋势

人工智能与机器学习的融合。

2024-05-27 14:28:58 938

原创 C++17特性:折叠表达式

C++17新增了一个特性用于对参数列表中所有实参应用二元操作符并计算结果。注意,返回表达式两边的括号是折叠表达式的一部分,不能省略。还要注意折叠表达式参数顺序的不同有不同的效果:比如写成则结果为意味着它是重复地往后相加。还可以写成。

2024-05-27 10:18:36 957

原创 Modern C++特性:聚合初始化

总结一下,从C++17开始,聚合定义如下:可以是一个数组或是一自定义类型(类、结构体、或联合),但需要:没有用户定义或显式的构造函数没有通过using声明继承而来的构造函数没有private或protected的非静态成员变量没有虚函数没有virtualprivate或“protected*的基类要能使用聚合,它还必须在初始化过程中没有private或“protected*的基类成员或构造函数。C++17引入了新的类型粹取// C++17开始正确。

2024-05-27 10:07:56 621

原创 Modern C++特性:聚合初始化

总结一下,从C++17开始,聚合定义如下:可以是一个数组或是一自定义类型(类、结构体、或联合),但需要:没有用户定义或显式的构造函数没有通过using声明继承而来的构造函数没有private或protected的非静态成员变量没有虚函数没有virtualprivate或“protected*的基类要能使用聚合,它还必须在初始化过程中没有private或“protected*的基类成员或构造函数。C++17引入了新的类型粹取// C++17开始正确。

2024-05-25 14:36:44 779

原创 Modern C++特性:lambda表达式

Lambda表达式就是匿名函数,在C++11之前Boost凭借C++语言强大的template和预处理宏,以及库作者强悍的奇技淫巧实现了Boost.lambda和更高级用法Boost.phoenix,但没有语言层面的支持,完全用库实现不但稍显累赘,而且代码观感不佳。Lambda表达式在功能上跟仿函数(functor,也称函数对象,function object)非常相似:可以保存外部变量的状态,可以传入参数,可以被调用。:参数列表,同普通函数相同的参数列表定义,如果没有参数,可以留空括号。

2024-05-25 12:17:19 837

原创 C++17特性:新标准属性

除了可以用在函数上,也可以用在类或结构体上,作用是该类或结构体被作为返回值类型时,如果不使用该返回值,则编译器警告。,就会导致非预期的运行逻辑,有的语言比如Go则默认会跳出当前。属性可以多一次机会提醒程序员仔细思考这里正常逻辑应该是怎样的。属性,如果确实任何情况下都没理由可以忽略掉返回值,则可以使用。默认是会继续往下走,有的时候程序员可能因为粗心会漏写。函数被调用时并没有使用它的返回值,则会报一个诸如。,编译也是能通过的,但会报诸如。变量没有被使用而报警告了。编译时可能会报警告说。这样编译器就不会再对。

2024-05-25 10:06:54 425

原创 Modern C++特性:基于范围的for循环

遍历容器是种广泛的需求,在C++11之前,有些库提供了遍历容器内所有元素的封装方法,比如Boost中的BOOST_FOREACH,Qt中的foreach关键字等等,甚至C++自己也提供了一个std::for_each算法。

2024-05-24 14:12:46 416

原创 C++11特性:auto(自动类型推导)

在C++11之前,template就已经具有类型推导能力,而C++11中增加的。自动类型推导是降低编码负担的一种手段,在其他编程语言比如Go中也有类似的功能。类型名比较难书写,比如临时定义一个lambda表达式,又要把它保存到一个变量中以便之后调用,就可以用。,即使指定了默认参数也不行(仅C++11而言,C++14中lambda表达式部分已经修改)另外,由于C++11新增了初始化列表功能,使用。是不同的类型,因为初始化列表拥有特有的类型。(仅C++11而言,C++14中已经修改)函数的形参类型不能是。

2024-05-24 09:33:31 229

原创 C++17特性:inline变量

C++有个强大之处是支持header-only(仅头文件)的库。然而直到C++17,只有该库不用到全局变量/对象,才能做到header-only。从C++17开始,可以在头文件中将变量/对象定义为inline。

2024-05-23 17:25:46 702

原创 C++17特性:带初始化的if和switch

循环中的初始化语句一样的工作方式。从原理上说,一个简单的像“_”这样的名字就足够了(有些程序员喜欢这样,有些不喜欢还不允许在全局名字空间内使用):​​​​​​​。却不指定名字,就会不再锁住,当判断条件检查时:​​​​​​​。另一个例子是执行依赖于某条件的任务时加锁:​​​​​​​。在C++17之前,相应的检查要这样做:​​​​​​​。根据类模板参数推导,现在可以这样写:​​​​​​​。可以检查是否插入成功:​​​​​​​。这段代码等价于:​​​​​​​。前先初始化:​​​​​​​。​​​​​​​

2024-05-23 15:43:04 480

原创 C++17特性:扩展using声明

Using声明被扩展了,可以用来声明逗号分隔一组声明的列表。C++17之前,需要用三次using声明。

2024-05-23 14:47:44 239

原创 推荐几款SSH客户端

特别是做运维的,而对于做Linux或Android系统开发的,一般会在公司搭建一台性能强劲的服务器,然后大家一起在上面做开发。可以设置主题界面,支持分栏,功能非常强大,这款软件在github上还是很受欢迎的。相比较其他软件,Xshell的界面是比较好看的,它有免费版的,也有收费的,对于一般的用户而言,免费版的基本都够用了。SecureCRT这款软件应该大家都很熟悉,很多人用它来抓串口log,但是它也是一款SSH的客户端。对于喜欢轻量级的,可以使用putty,其他的我觉得都差不多,看个人使用习惯。

2024-05-23 11:15:53 389

原创 Linux devres机制

在驱动中经常要在初始化函数或probe函数中对设备分配一些资源,比如:irq、regulator、gpio等。在驱动进行初始化的时候如果失败,那么通常会goto到某个地方释放资源。有时候编写驱动时会忘记释放资源,Linux为了解决这个问题而引入了devres机制。而资源的处理时机是在驱动的 install / remove 时候。目前除了一些旧代码之外,大部分驱动都使用devres相关的接口。也推荐大家在代码中更多的使用相关接口,这样代码会更简洁,不容易出现内存泄露。

2024-05-22 18:31:04 330

空空如也

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

TA关注的人

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