Java
文章平均质量分 52
ldcaws
这个作者很懒,什么都没留下…
展开
-
java中拷贝文件数据到U盘
在Linux系统中,文件写入操作通常会先写入到文件系统的缓冲区中,而不是直接写入到物理磁盘中,这意味着即使你完成了文件拷贝,文件的实际数据可能还没有写入到U盘的物理存储中。这时可以强制将文件缓冲区的内容刷新到物理磁盘上。下面通过java实现将文件数据拷贝到U盘,及注意事项。原创 2024-08-25 20:18:43 · 229 阅读 · 0 评论 -
java中log4j.properties配置文件浅析
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可按key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。原创 2024-07-22 21:00:00 · 756 阅读 · 0 评论 -
linux中Java程序调用C程序中方法的实现方式浅析
在Linux中,Java程序可以通过JNI(Java Native Interface)来调用C程序的方法。Linux系统环境,Java调用C的主要流程如下:1、创建Java类文件,如NativeLibrary.java2、编写Java代码,加载.so共享库(C程序生成该名称的.so共享库),并声明本地方法3、使用javac编译Java类,生成.class文件4、使用javah对.class文件生成C头文件,该文件包含了Java和C之间通信所需的函数声明。原创 2024-06-21 21:00:00 · 760 阅读 · 0 评论 -
Java中启动jar包命令详解
在cmd命令窗口,执行java -jar ***.jar即可启动java程序。按下ctrl+c或直接关闭cmd命令窗口,当前程序都会退出。windows环境下javaw启动命令代表后台运行,关闭cmd命令窗口仍然运行,在任务管理器可以看到相关服务原创 2024-05-16 21:18:01 · 2749 阅读 · 0 评论 -
Java中通过sftp协议实现上传下载
在java开发中,遇到需要将linux系统中指定目录下的文件下载到windows本地的需求,下面聊聊通过sftp协议实现上传和下载。原创 2024-05-08 19:00:00 · 1480 阅读 · 2 评论 -
win10环境中设置java开机自启动
在开始设置Java开机启动之前,确保你的计算机已经安装了Java开发环境(JDK)。如果没有安装,你可以从Oracle官方网站下载并安装最新的Java开发工具包。原创 2024-04-23 18:38:05 · 1671 阅读 · 2 评论 -
Java中ConcurrentLinkedQueue并发安全队列浅析
ConcurrentLinkedQueue是线程安全类,在并发编程中是非常典型的数据结构,在多线程环境中共享数据时,能够确保数据的一致性和完整性。ConcurrentLinkedQueue是Java并发包(java.util.concurrent)中的一个重要成员,它提供了一个线程安全的无界非阻塞队列。原创 2024-04-15 17:51:24 · 537 阅读 · 0 评论 -
Java中通过sftp协议获取指定目录文件列表
JSch是Java Secure Channel的缩写,是一个java实现的可以完成sftp上传下载的工具,我们可以集成它的功能到自己的应用程序,本文介绍使用JSch实现的SFTP上传下载的功能。ChannelSftp类是JSch实现SFTP核心类,它包含了所有SFTP的方法,如。上述代码中,我们首先建立了一个SFTP通道并连接,然后改变到指定的远程目录,并使用通配符*获取该目录下的所有文件和文件夹列表。在Java中,你可以使用第三方库,如JSch,来实现SFTP协议并获取指定目录的文件列表。原创 2024-04-14 18:57:18 · 1762 阅读 · 0 评论 -
Java中swing面板布局之GridBagLayout
GridBagLayout类是一个灵活的布局管理器,GridBagLayout类的对象维持一个动态的矩形单元网格,然后我们可以把组件放进一个或多个矩形单元网格,组件大就多放几个,组件小就少放几个。//该方法设置组件水平的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间。//该方法设置组件垂直的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间。指定在单元大于组件的情况下,组件如何填充此单元,缺省为组件大小不变,以下为静态数据成员列表,它们是fill变量的值。原创 2024-04-14 18:38:09 · 517 阅读 · 0 评论 -
Java中启动同一个线程,在时间窗口内最多启动指定个数
如果当前活跃线程数小于最大线程数maxTasks,则可以启动新的线程来运行指定的任务。在Java中,如果你想要启动同一个线程,但是限制在一段时间内最多只能启动指定数目的线程,你可以使用ScheduledExecutorService来周期性地检查是否有线程需要启动,并通过一个计数器来控制最大线程数。原创 2024-04-10 19:38:02 · 164 阅读 · 0 评论 -
Java中DatagramSocket类发生线程阻塞问题
Java使用DatagramSocket代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。在接收数据前,通常需要生成一个DatagramPacket对象,给出数据字节数组及其长度。原创 2024-04-08 22:08:57 · 471 阅读 · 0 评论 -
Java面试题一
java面试题原创 2023-10-18 21:50:30 · 362 阅读 · 2 评论 -
Java中swing的5种布局方式浅析
在一个传统的java项目中,遇到一个需要调整布局的需求,下面将学习网上大佬的文章,并将过程记录下来。原创 2023-09-22 19:00:00 · 6162 阅读 · 0 评论 -
Call to ‘printStackTrace()‘ should probably be replaced with more robust logging
在idea中提示Call to ‘printStackTrace()’ should probably be replaced with more robust logging,意为避免printStackTrace();改用logging器调用。原创 2023-09-21 21:00:00 · 11222 阅读 · 0 评论 -
浅谈6种API架构模式
在摸鱼刷X时,看到一张非常棒的图,是关于不同API架构的,下面学习记录一下。(摘自网络)原创 2023-09-13 19:00:00 · 421 阅读 · 0 评论 -
idea中统计工程项目代码量
在工程应用中,有人会问你们写的应用系统的代码量是多少?额额,这个…下面就聊聊在idea工具中统计工程项目的代码量。原创 2023-05-10 22:10:30 · 28665 阅读 · 4 评论 -
springboot打包成jar和war浅析
问题1:一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了?问题2:一个springboot项目,用mvn install打包成war,放进tomcat运行,发现端口号为什么变成tomcat默认的8080?(在server.port中设置端口8090),项目名称为什么也必须加上?原创 2023-04-11 22:12:00 · 934 阅读 · 0 评论 -
Java中通过UDP协议传输文件
UDP协议本身并不支持大文件传输,因为UDP协议不保证数据的可靠性和顺序性,而且UDP数据包的大小也有限制。因此,在实现UDP传输大文件时,需要进行以下优化:分割文件、数据传输前协商、确认接收、重传机制。当传输文件大小小于65535字节时,可以采用下面方式传输,若文件大小超过65535字节时,则见本文的3种方式。原创 2023-03-31 21:30:00 · 1965 阅读 · 0 评论 -
Java中定时任务浅析
Java中有那些定时任务的实现方式,下面从java原生和spring封装对动态管理定时任务的实现简单的聊一聊,不涉及外部组件的实现方式。原创 2023-03-21 20:00:00 · 623 阅读 · 0 评论 -
代码名命规范浅析
日常开发编码中,代码的名命是个大学问,能快速的看懂开源代码的结构和意图,也是一项必备的能力。在java项目的代码结构中,采用长名命的方式来规范类的名命,能够自己表达其主要意图,配合高级IDE,可以减少编码攻城狮的记忆负担,靠模糊匹配就能找到所需的资源。借鉴最流行的java开源软件的源码,如netty、spring,guava等,以不同类的方式进行分析和归纳,希望能帮助搭建更好的理解名命的套路。原创 2023-02-23 21:00:00 · 400 阅读 · 0 评论 -
本地缓存浅析
java中的缓存技术可以分为远端缓存和本地缓存,其中远端缓存常用的技术有redis、memcache等,而本地缓存常用的技术有HashMap、Guava Cache、Caffeine、Encache。下面聊一下Caffeine缓存技术及简单应用。1、HashMap通过Map的底层方式,直接将需要缓存的对象放在内存中。不需要引入第三方jar包,但需要对HashMap进行封装研发,添加缓存淘汰策略等,如自定义LRU策略的缓存类。2、CaffeineGuava Cache是由Google开源的基于LRU原创 2022-12-03 20:30:00 · 1071 阅读 · 0 评论 -
Java之okhttp3请求方式
在java开发中,发起http请求是非常常见的需求,常用的有HttpClient,下面聊一下okhttp3的请求方式。可见发起http请求还是挺方便的,感兴趣的小伙伴可以试试~~~///(2、提供springboot工程及http接口。1、引入okhttp3依赖。原创 2022-11-29 20:30:00 · 4028 阅读 · 0 评论 -
Java设计模式之装饰器模式
实例:定义一个Person接口,其实现类有Father、Mother、Child,实现Person接口中的drink方法,再定义一个装饰器类,实现Person接口,对drink方法进行装饰。好比喝水,对喝水方法进行添加点热水,然后再喝。装饰器模式,在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责。装饰器模式非常像继承特性,不改变父类,子类可扩展功能。装饰器模式和代理模式的区别。原创 2022-10-18 19:30:00 · 535 阅读 · 0 评论 -
Java之IO温故知新
字符(Char)是计算机中使用的字母、数字、字和符号,如A,b,2,你,#等。在I/O流中,传输的数据类型是字节(Byte)就是字节流,传输的数据类型是字符(Char)就是字符流。在I/O体系中,通常会遇到同步/异步,堵塞/非堵塞,当I/O操作发生时,一定是有两方参与的,分别是调用方和被调用方,堵塞/非堵塞描述的是调用方,同步/异步描述的是被调用方。Java中的核心库java.io提供了全面的I/O接口,其中I/O指的是Input和Output,通过数据流、序列化和文件系统提供系统的输入和输出。原创 2022-10-07 22:05:03 · 254 阅读 · 0 评论 -
Java中大端、小端和>>运算符
字节序,指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序,有大端和小端两种方式原创 2022-09-27 21:58:23 · 705 阅读 · 0 评论 -
Java中List分片方式浅析
在日常开发中,经常会遇到持久层批量插入的需求,当批量插入的数据量比较大时,会导致执行报错,究其原因,是MySQL只能执行一定长度的SQL语句,若插入的数据量很多时,执行的插入语句就会很长,最终导致执行报错。上面即为常见的List分片方式,可以根据具体需求和场景进行选择使用。2、Apache的commons组件方式。下面对List进行分片进行简单的分析。1、Google的Guava组件方式。4、JDK8的Stream流方式。3、国产的Hutool组件方式。原创 2022-09-26 19:30:00 · 1423 阅读 · 0 评论 -
Java中lambda和stream实现排序
在日常开发中,对数据排序是非常常见的一种需求,一般通过如下两种方式: - 存储系统:通过SQL、NoSQL的排序功能,查询的结果是完成排序的结果; - 内存:通过在内存中进行排序,查询的结果是无序的结果;原创 2022-09-20 19:30:00 · 871 阅读 · 0 评论 -
Java之@Autowired再分析
Autowired是Spring提供的,一旦换用了其他的IoC框架,是不能够支持注入**的。而 @Resource是JSR-250提供的,它是Java标准,可以兼容,也可以正常工作。@Autowired/@Resouce都是通过注解实现依赖注入,但@Autowired是Spring定义的,而@Resource是JSR-250定义的。字段注入方式虽然有很多缺点,但好处也很明显,就是方便。但使用@Resouce注解却不会出现此提示,下面对其再次进行分析一下。原创 2022-09-14 19:30:00 · 518 阅读 · 0 评论 -
lombok插件浅析
在java开发中,定义实体类之后,需要写很多的get/set/toString/hashCode/equals等方法,麻烦的很,尤其是定义很多的实体类且每个实体类的变量又高达几十个时,写完get/set方法之后,简直要心潮澎湃,鲜血直喷。由于Java的官方版本没有提供这种快速生成方法的注解工具,类似Lombok这样的工具,其实都是使用了从Java 6和JSR 269的Annotation Processing技术中实现方法的注入。为了简化代码,避免重复劳动的工作,下面谈谈lombok插件工具。原创 2022-09-13 19:30:00 · 2028 阅读 · 0 评论 -
Java中keytool的使用
创建一个别名为jwt的证书,该证书存放在名为jwt.jks的密钥库中,会提示输入密钥库口令如:123456、其他默认,最后提示输入密钥口令如:123456即可,就会在bin目录下生成jwt.jks文件。keytool为java原生自带,安装java后不需要再进行安装,作为密钥和证书管理工具,方便用户能够管理自己的公钥/私钥及证书,用于认证服务。keytool将密钥(key)和证书(certificates)存储在keystore文件中,密钥需要存储在密钥库中。-storepass 指定密钥库的解密密码。原创 2022-09-02 21:35:27 · 8324 阅读 · 3 评论 -
Java开发中验证码EasyCaptcha工具
在java日常开发中,需要生成图形验证码,通常可以采用基于java本身封装的工具类。下面尝试一下EasyCaptcha插件,用于图形验证码生成,支持gif验证码,可用于基于的session的web项目和前后端分离的项目。原创 2022-08-20 19:30:00 · 1398 阅读 · 0 评论 -
Java开发中图片压缩工具Thumbnailator
在java日常开发中,经常遇到对图片资源的操作需求,如压缩、缩放、旋转。目前应用系统好多采用前后端分离方式,图片资源需要进行传输,而现在手机或数码设备拍摄的图片都是高清,占用空间大,在网络传输时占用大量带宽,所以对图片的压缩就非常必要。Thumbnailator是一个Google开源的优秀图片处理的第三方Java类库,处理效果远比Java API的好,下面尝试用很少的代码实现图片的压缩、旋转功能。...原创 2022-08-19 19:30:00 · 1108 阅读 · 0 评论 -
Java中线程池大小浅析
线程,是调度CPU资源的最小单位,java中线程有多种生命状态,如下线程池,是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQl。线程过多会带来额外的开销,包括线程的创建、销毁、调度,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务,一方面避免了处理任务时线程创建、销毁的开销,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用...原创 2022-08-06 22:42:09 · 578 阅读 · 0 评论 -
Java之消息推送浅入浅出
在日常开发中,消息推送是非常典型的业务需求,下面对消息推送简单的分析一下。消息推送通常指网站的运营人员通过某种工具对用户当前网页或移动设备APP进行的主动消息推送。主要分为web端消息推送和移动端消息推送。......原创 2022-08-03 23:00:00 · 6197 阅读 · 2 评论 -
Java之HikariCP数据库连接池浅入浅出
在平常的开发中,通常将一些对象保存起来,主要考虑对象的创建成本。如线程资源、数据库连接资源、TCP连接资源等,这类对象的初始化通常需要花费很长的时间,若频繁的申请和销毁,就会耗费大量的系统资源,造成不必要的性能损失。redis的常用客户端Jedis就是使用CommonsPool管理连接池的,Jedis使用工厂创建对象,对象工厂类最主要的方法就是makeObject,返回值的PooledObject类型,可以将对象使用newDefaultPooledObject(obj)进行简单包装返回。...原创 2022-08-02 19:30:00 · 1015 阅读 · 0 评论 -
Java设计模式之责任链模式练习
Java中设计模式是为了解决问题,不要为了练习而强行在工程中应用,让原本100行代码就能实现的功能,写了1000行代码,对错不说,增加了代码的复杂度。责任链模式,一种行为设计模式,允许你将请求沿着处理者链进行发送,收到请求后,每个处理者均可以对请求进行处理,或将其传递给链上的下个处理者。责任链模式使用的场景非常多,如审批流程,过滤器filter,在这些场景若不使用设计模式,那么当需求有所改变时,就会使得代码臃肿或难以维护。...原创 2022-07-29 22:33:45 · 931 阅读 · 0 评论 -
Java中实现http请求的方式
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate提供了常见的REST请求方案的模版,例如GET请求、POST请求、PUT请求、DELETE请求以及一些通用的请求执行方法exchange以及execute。在java开发中,经常遇到需要调用第三方提供的接口服务的需求,下面对实现http请求的方式进行浅入浅析并进行实例尝试。...原创 2022-07-19 19:00:00 · 7334 阅读 · 0 评论 -
Java中Desktop类浅析
Desktop 类是java的桌面类,可以启动程序,是jdk 1.6 时发布的,位于 java.awt 包下。原创 2022-07-13 10:56:48 · 2264 阅读 · 0 评论 -
Java设计模式之策略模式再温习
java中的策略模式在实际业务场景中,合理的引用,可以让代码阅读起来层次感更强,同时扩展性也会更好,下面对策略模式回顾一下,再次温习理解。原创 2022-07-09 19:00:00 · 222 阅读 · 0 评论 -
Java中基于netty-socketio的客户端
websocket是html5最新的规范,主流浏览器均支持,但为了兼容全部浏览器,给程序员提供一致的编程体验,SocketIO将WebSocket、AJAX和其它的通讯方式均封装成了统一的通讯接口。原创 2022-07-05 19:00:00 · 3699 阅读 · 0 评论