![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA 高级
文章平均质量分 80
JAVA 高级
默 语
Java高级工程师、自媒体博主,北京城市开发者社区的主理人。喜欢记录工作中的技术心得,创作文章,全网 10余万粉丝,总阅读量超过700万。活跃于CSDN、掘金、阿里云和51CTO等平台,是CSDN博客专家、阿里云专家博主和掘金博客专家,曾获博客专家、优秀社区主理人等多项荣誉,并在2023年度博客之星评选中名列前50。目前就职于国企并担任技术经理,拥有丰富的项目开发经验和产品设计能力。希望在不断的学习过程中,可以帮助到更多的人,结交更多的朋友。
展开
-
从xls或xlsx文件转换为PDF文件的Java代码示例
本文介绍了如何使用Java代码将Excel文件转换为PDF文件,重点演示了如何使用iText库来实现这一功能。通过深入了解代码示例,您将能够轻松地将Excel文件转换为PDF,并且可以自定义字体、样式等。在正文部分,我们将深入探讨如何使用Java代码将Excel文件转换为PDF文件。首先,我们需要准备好工作环境,确保项目中包含所需的依赖库。在本示例中,我们将使用iText库来处理PDF文件的生成。原创 2024-04-27 20:54:10 · 1077 阅读 · 6 评论 -
liunx命令 如下快速下载文件或者日志
liunx命令 如下快速下载文件或者日志有时候我们因为各种的原因没有办法直接从liunx中拿到想到文件或者日志就像我:xftp 被禁止使用了 只能找命令下载;下面直接上命令:sz redis.log下面之后直接打开即可:希望可以帮助到大家;...原创 2020-12-18 09:48:02 · 5335 阅读 · 0 评论 -
Log4j学习及其深入(从浅入深)
通常,我们写代码的过程中,免不了要输出各种调试信息。在没有使用任何日志工具之前,都会使用 System.out.println 来做到。原创 2022-09-23 01:07:02 · 317 阅读 · 0 评论 -
Nginx安装及其常用命令(实操版)
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种,一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。通过 location 指定不同的后缀名实现不同的请求转发。原创 2023-05-17 20:35:58 · 2417 阅读 · 0 评论 -
nginx配置全解析
【代码】nginx配置全解析。原创 2023-11-28 14:52:23 · 22244 阅读 · 0 评论 -
java 数组与list的转换
/数组转换为list集合System.out.println("\n****** 数组转换为list集合 ******");//方式一System.out.println("\n****** list集合转换数组 **方式一****");//方式二System.out.println("\n****** list集合转换数组 **方式二****");}}地址。...原创 2022-08-17 16:02:02 · 164 阅读 · 1 评论 -
JVM- 第一章-JVM与Java体系结构(前言介绍)
作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题?● 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM● 想解决线上JVM GC问题,但却无从下手● 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就JJ了● 每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优VM参数,如何解决GC、OOM等问题,一脸懵逼。原创 2022-12-29 16:59:58 · 462 阅读 · 0 评论 -
excel的导入导出和异常非空 总计等处理;导出多个excel合并导出zip(hutool导出)(详细讲解包括分析等等)
配置文件pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/m原创 2021-10-31 19:58:30 · 1142 阅读 · 2 评论 -
synchronized的简单理解
synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。它能够保证在同一时刻,被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果。原子性:确保线程互斥地访问同步代码;可见性:保证共享变量的修改能够及时可见;有序性:有效解决重排序问题。原子性"表示一个操作是不可分割的,要么成功执行,要么完全不执行。通常与线程同步相关,可以确保多个线程同时对共享变量进行读写时不会产生竞争条件和数据冲突。可见性。原创 2023-04-12 23:44:59 · 10487 阅读 · 0 评论 -
logger的日志笔记
private final static Logger logger= LoggerFactory.getLogger(HelloController.class);HelloController就写本类可以记录这个错误;设置为private是为了防止其他类使用当前类的日志对象;如果当前类需要被子类继承,并且都使用同一个日志对象时,可设置为protected 。设置为static是为了让每个类中的日志对象只生成一份,日志对象是属于类的,不是属于具体的实例的。设置成final是为了避免日志对象在运行原创 2021-11-07 22:26:51 · 146 阅读 · 0 评论 -
⚡️⚡️Java多线程编程的高效、安全实践
Java作为一门强大而广泛使用的编程语言,多线程编程是其重要的特性之一。在本文中,我们将深入探讨Java多线程编程与并发控制的方方面面。我们将从多线程的基本概念入手,了解多线程编程的优势和挑战。然后,我们会介绍Java中创建和管理线程的几种方式,并探讨如何避免常见的并发问题。通过本文的学习,将能够优雅地掌控Java多线程编程,构建高效、稳定的并发应用。原创 2023-07-27 18:12:56 · 6796 阅读 · 2 评论 -
随机ID生成的几种 方式整理(现阶段基础)
有其他更好的方式,欢迎留言;原创 2023-02-02 13:52:39 · 5033 阅读 · 0 评论 -
综合管控平台基础环境部署
综合管控平台基础环境部署I、基础环境安装一、服务器安装centos7systemctl status firewalld (查看防火墙状态)systemctl stop firewalld (停止防火墙)systemctl disable firewalld(禁止开机启动)二、安装docker环境注意:docker 一般安装在linux7以上,内核3.1以上以下安装都在【root】用户下操作查看内核uname -a官网地址:https://docs.docker.com/engi原创 2020-12-03 17:12:03 · 340 阅读 · 0 评论 -
Nginx的原理
(1)可以使用热部署,利用 nginx 进行热部署操作(2)原创 2023-05-17 20:17:48 · 364 阅读 · 0 评论 -
Java 多线程学习
栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,栈和堆的大小都可以通过 JVM 的启动参数来进行调整,栈空间用光了会引发 StackOverflowError,而堆和常量池空间不足则会引发 OutOfMemoryError。上面的语句中变量 str 放在栈上,用 new 创建出来的字符串对象放在堆上,而 “hello” 这个字面量是放在方法区的。例子:开车 + 打电话吃饭 + 玩手机这些动作都可以抽象为任务,虽然看起来一心二用,但人只有一个大脑,在一个时间片刻只能处理一个任务。原创 2023-04-01 23:29:33 · 363 阅读 · 0 评论 -
Java 8 中使用 Lambda 表达式和 Stream API 解决 LeetCode 的两数之和问题
在使用 Lambda 表达式时,我们可以使用 IntStream.range() 方法来遍历数组元素的下标,并使用 Collectors.toMap() 方法将对应的元素和下标存储到一个 Map 对象中。相比于双重 for 循环,这个算法的时间复杂度为 O(n),并且空间复杂度也只需要 O(n),因为我们需要存储数组中所有的元素和它们的下标。需要注意的是,在最终结果数组中,下标的顺序可能与之前提供的标准解决方案中的顺序不同,但它们仍然是符合条件的元素对的下标。方法来遍历数组元素的下标,并使用。原创 2023-04-20 18:00:47 · 7245 阅读 · 10 评论 -
springboot项目设置开启自启
编写service文件配置文件主要放在/usr/lib/systemd/system下,在/etc/systemd/system都行。选一个即可;这里我们以/etc/systemd/system为例:进入之后创建servicecd /etc/systemd/system/touch 名字.servicetouch demo.service成功之后vim demo.service //编写内容如下#添加下面内容[Unit] //名字随意 其它的别随意修改Descript原创 2021-11-09 16:00:59 · 2390 阅读 · 0 评论 -
VM在使用过程中开机频繁黑屏(VM14版本问题导致的,频繁开机黑屏)
VM在使用过程中开机频繁黑屏(VM14版本问题导致的,频繁开机黑屏)解决办法我已经写好博客了,但是由于CSDN的审核过不去,一直没有办法发出,大家有需要的,可以及时联系我; 希望可以帮助大家及时解决问题...原创 2021-02-23 10:57:28 · 176 阅读 · 1 评论 -
netstat -anp | grep 应用 讲解 详细
一个叫“redis-server”的进程,外部有个“40116”端口,连接了它的“6379”端口,“ESTABLISHED”表示已连接。一个叫“redis-server”的进程,外部有个“40126”端口,连接了它的“6379”端口,“ESTABLISHED”表示已连接。一个叫“redis-server”的进程,外部有个“40114”端口,连接了它的“6379”端口,“ESTABLISHED”表示已连接。标记情况: PID:均为38464 他们是一个服务。查看端口 : 例如 9090 端口我们看下。原创 2020-12-18 10:27:16 · 42052 阅读 · 2 评论 -
如何在Java中高效地实现数字的反转和字符串的拼接?
代码中使用了两种不同的方法来实现,第一种方法中,通过取余和除法操作,反向遍历每一位数字,并将其添加到反转数中;具体来说,代码中首先将计算得到的数字num中的每一位数字添加到一个列表digits中,然后通过stream()、map()和collect()等方法,将列表中的数字反转并拼接成字符串。具体地讲,我们可以维护一个表示进位的变量carry,然后将两个链表上对应的节点相加并加上进位carry,最后得到的结果就是当前位置上的数字,如果超过了10,那么需要将进位carry设置为1,否则设为0。原创 2023-04-23 16:38:45 · 7541 阅读 · 10 评论 -
JVM- 第二章-类加载子系统
Class文件类加载子系统运行时数据区方法区堆程序计数器虚拟机栈本地方法栈执行引擎本地方法接口本地方法库如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什么要自定义类加载器?隔离加载类修改类加载的方式扩展加载源防止源码泄漏。原创 2023-01-11 18:19:57 · 310 阅读 · 0 评论 -
List,Map多层循环嵌套Demo及其理解
希望大家可以通过demo更好的理解他们之间的转换循环与嵌套逻辑;原创 2022-11-12 21:54:44 · 5088 阅读 · 0 评论 -
List,Map 三种遍历方式:(总结理解)
当处理`List`和`Map`这两种数据结构时,有以下三种常见的遍历方式:原创 2022-11-16 00:58:22 · 6559 阅读 · 0 评论 -
java 1.8 stream使用总结(个人总结有一些经典文章的集合)
stream是jdk1.8引入的一个新概念,把列表流stream化,然后再加工成我们想要的列表或者别的数据我们经常会对列表list数据用for循环,用stream来替换for循环会更简洁。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排原创 2022-04-11 21:37:47 · 5062 阅读 · 0 评论 -
MapUtils常用方法
MapUtils是一个用于处理Map对象的实用工具类,它提供了许多方便的方法来执行常见的操作,如获取值、设置默认值、合并Map等。本文将介绍MapUtils的常见用法,以帮助你更轻松地处理Map数据。处理Map中的数据:MapUtils的主要目标是处理和操作Map中的数据。它提供了一组方法,涵盖了各种常见的需求,包括获取、修改、转换和合并Map中的数据。这些方法帮助开发人员在不必编写大量重复代码的情况下完成常见的Map操作。类型安全的值获取。原创 2023-09-07 14:41:51 · 1473 阅读 · 1 评论 -
性能优化的重要性
本篇博客将探讨在软件开发中性能优化的重要性。通过优化代码和系统,我们可以提升应用程序的速度、响应能力和用户体验,在本文中,我们将深入探讨软件开发中性能优化的重要性。通过精心优化代码和系统,我们能够提升应用程序的速度、响应能力以及用户体验。。性能优化是软件开发中至关重要的一环,它可以让应用程序更加高效、流畅。通过不断地优化,我们可以在数字世界中绘制出一幅更加美好的画卷,为用户创造更出色的体验。原创 2023-08-17 23:00:39 · 24674 阅读 · 0 评论 -
深入探索Java集合框架:List、Set和Map的使用和特性
当谈到Java程序开发中的集合框架时,了解集合的使用和特性是至关重要的。集合框架提供了一组接口和类,用于存储和操作数据。在本篇博客文章中,我们将深入探讨Java中的集合框架,包括List、Set和Map等常用的数据结构。原创 2023-07-18 20:07:11 · 5902 阅读 · 1 评论 -
Java中的类与对象的理解(详细介绍)
本文将介绍Java中的类和对象的概念,以及如何创建和使用对象。我们将深入探讨类的定义、属性和方法的声明,以及对象的实例化和使用。通过详细的示例和解释,帮助读者更好地理解和掌握Java中类与对象的重要概念。原创 2023-07-18 19:53:52 · 6949 阅读 · 0 评论 -
Java常规写法与新特性对比详解
Java是一门广泛应用的编程语言,近年来引入了许多新特性,如Lambda表达式和Stream API等。尽管这些新特性非常流行,但很多开发者仍然对它们使用不够熟练。本文将详细介绍Java的常规写法和新特性的对比,包括示例代码和说明,以帮助您更好地理解和运用这些新特性。原创 2023-07-15 00:32:25 · 6810 阅读 · 0 评论 -
掌握Java中常用的数组操作方法
本文将介绍Java中常用的数组操作方法,通过详细的示例和解释,帮助读者全面理解和掌握这些方法,并提升在数组处理方面的编程能力。原创 2023-07-14 23:07:20 · 9159 阅读 · 0 评论 -
Java 17 版本的新特性
Java 17是Java编程语言的一个新版本,它引入了一些新的特性和改进,使得Java编程更加高效和方便。本文将介绍Java 17版本中的一些新特性,包括Sealed类、Pattern Matching for instanceof、垃圾回收器改进、HTTP/2客户端、Vector API和Switch表达式的增强。我们将详细解释这些新特性的作用和用法,以帮助Java程序员更好地理解和使用Java 17版本。原创 2023-06-27 00:05:59 · 11765 阅读 · 3 评论 -
CorsConfig 跨域 初认识
分析次报错是因为 服务访问的时候被判定为断域,跨域的打头兵,其实跨域还么有发出去跨域请求的流程: 浏览器 先会给服务器发送一个 预检请求 ,服务器 返回同意不同意 ,同意的话 浏览器 在发送真实的请求 ,服务再返回响应成功是否。原创 2023-05-17 20:44:13 · 1375 阅读 · 5 评论 -
同步(Synchronous)和异步(Asynchronous)的理解和区别讲解
同步(Synchronous)和异步(Asynchronous)同步和异步是什么?怎么理解下呢?同步 :你去商城买东西,你看上了一款手机,能和店家说你一个这款手机,他就去仓库拿货,你得在店里等着,不能离开,这叫做同步。同步“ 就好比:你去外地上学(人生地不熟),突然生活费不够了;此时你决定打电话回家,通知家里转生活费过来,可是当你拨出电话时,对方一直处于待接听状态(即:打不通,联系不上),为了拿到生活费,你就不停的 oncall 、等待,最终可能不能及时要到生活费,导致你今天要做的事都没有完成,而白白原创 2021-11-09 10:58:17 · 17468 阅读 · 1 评论 -
异步方法 理解(demo附代码)
简而言之:异步编程相对于单体线程而言,不像单体编程那样等上面的代码执行完才能执行下面的 ,他是可以同时多部分一起进行运行的,在代码运行过程能大大节省时间提升效率;关注点是通过调度不同任务之间的执行和等待时间,通过减少处理器的闲置时间来达到减少整个程序的执行时间;异步编程跟同步编程模型最大的不同就是其任务的切换,当遇到一个需要等待长时间执行的任务的时候,我们可以切换到其他的任务执行;与多线程和多进程编程模型相比,异步编程只是在同一个线程之内的的任务调度,无法充分利用多核CPU的优势,所以特别适合IO阻塞性任务原创 2022-06-19 00:28:06 · 818 阅读 · 0 评论 -
多线程实例代码(demo)
在介绍多线程的时候,我们首先要知道什么是线程,而要了解线程还要了解进程。1.进程:一个正在执行中的程序,每个进程执行都有一个执行顺序,该顺序是一个执行路径,或者是一个控制单元。2.线程:进程中的一个独立控制单元,线程在控制进程的执行。一个进程中至少有一个线程。3.多线程:一个进程中不只有一个线程。eg:比如我们开车从北京到上海,进程可以理解为我们在去的上海的路上,坐飞机去相当于一个进程,我们不只只可以坐飞机还可坐高铁,自驾等这便是我们上面说的多线程。原理:多线程就是把操作系统中的这种并发执行机制原原创 2022-06-19 01:21:25 · 5495 阅读 · 0 评论