
java
文章平均质量分 64
shadow_zed
有人问,你为什么这么努力?-----
因为我喜欢的东西很贵,我喜欢的人很优秀
展开
-
HttpClient工具类-基于4.3.x版本
【代码】HttpClient工具类-基于4.3.x版本。原创 2024-03-13 09:48:15 · 673 阅读 · 0 评论 -
java命令执行jar包的多种方法(四种方法)
这篇文章主要介绍了java打jar包的几种方式,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下转载 2024-01-23 16:55:51 · 15170 阅读 · 0 评论 -
Spring Web 数据脱敏
数据脱敏百度百科中是这样定义的:数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。是数据库安全技术之一。总的来说,数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。转载 2023-08-14 17:26:44 · 499 阅读 · 0 评论 -
Java的RunTime.getRunTime().addShutdownHook的用法
RunTime.getRunTime().addShutdownHook的作用就是在JVM销毁前执行的一个线程.转载 2022-11-30 17:24:11 · 780 阅读 · 0 评论 -
JAVA 简单缓存实现-nacos
JAVA 缓存实现-nacos实现。原创 2022-11-30 16:00:50 · 623 阅读 · 0 评论 -
Java 断点下载(断点续传)服务端及客户端(Android)代码
最近在研究断点下载(下载续传)的功能,此功能需要服务端和客户端进行对接编写,本篇也是记录一下关于贴上关于实现服务端(Spring Boot)与客户端(Android)是如何实现下载续传功能断点下载功能(下载续传)解释:客户端由于突然性网络中断等原因,导致的下载失败,这个时候重新下载,可以继续从上次的地方进行下载,而不是重新下载。转载 2022-08-22 17:28:28 · 725 阅读 · 0 评论 -
Spring AOP +redisson的redis分布式锁实现
Spring AOP 结合redis分布式锁实现原创 2022-08-18 10:02:02 · 1127 阅读 · 0 评论 -
详解常见负载均衡算法在Java中的实现
一致性哈希算法中,就利用哈希环结构+哈希取模判断每个请求该落入的服务器,由于服务器IP、客户端IP或缓存的Key都是相同的,所以在服务器数量不变的情况,相同的哈希条件进行哈希取模,最终计算出来的值永远都是相同的。与前面分析的最小活跃数算法一样,最优响应算法也是一种动态算法,但它比最小活跃数算法更加智能,因为最小活跃数算法中,如果一台节点存在故障,导致它自身处理的请求数比较少,那么它会遭受最大的访问压力,这显然是并不合理的。遍历之前配置的服务器列表,用随机索引与每个节点的权重值进行判断。...........转载 2022-07-16 02:11:35 · 2228 阅读 · 1 评论 -
Java调用Linux系统命令
有时候,我们在使用Java做一些操作时,可能性能上并不能达到我们满意的效果,就拿最近工作中的遇到的一个场景来说,需要对大量的小文件进行合并成一个大文件。最开始的想法是使用Java做文件操作,遍历所有小文件然后往一个文件写(可以做成并发写),但是发现操作过程中遇到个问题,写一千多个小文件在本机Windows下需要花费几十秒的时间,即使在Linux环境下高配置的机器也需要将近十秒,这明显对接口的响应时间产生重要影响。这块怎么优化下呢?我们都知道在Linux下可以进行大文件的分割和合并,分别采用split和cat转载 2022-07-12 22:33:59 · 2715 阅读 · 0 评论 -
Java中的“>”、“>>”、“>>>”三个符号的区别
在读jdk源码时, 我们不难发现,有很多关于运算的编码我们在日常开发中,很少运用到,特别是专注于J2EE开发的朋友们,运算 的世界里,永远和进制挂钩,当然我们这就不赘述太多。原创 2022-06-16 13:51:29 · 762 阅读 · 0 评论 -
java中bridge method(桥接方法)详解
桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法,在字节码中桥接方法会被标记为ACC_BRIDGE和ACC_SYNTHETIC,其中ACC_BRIDGE用于说明这个方法是由编译生成的桥接方法,ACC_SYNTHETIC说明这个方法是由编译器生成,并且不会在源代码中出现。...转载 2022-06-15 11:13:49 · 992 阅读 · 0 评论 -
⽤redis做榜单,分数相同时根据时间先后排序
项⽬⾥⾯有⼤量的榜单需求,很多场景下都是⽤zset来实现的。需求⾥⾯⽆⼀例外的都提到⼀个要求:分数相同的情况下,先到该分数的排前⾯。由于zset是分数优先,分数相同的时候⽤zset的member的字典序排列,并不满⾜先来后到这种需求。以前的做法基本都是分数拼凑⼀个时间量的做法:将zset的score值分成两部分:⾼位存分数,低位存时间差时间差⼀般是定⼀个截⽌时间x,x-now作为时间差⽤户a在x1时间达到了分数N,⽤户b在时间x2达到了分数N,x1<x2,那么x-x...转载 2022-05-30 15:07:09 · 1183 阅读 · 0 评论 -
Java-ForkJoinPool详解
今天和大家分享JDK1.7中出现的ForkJoinPool类。我们将从三个维度介绍ForkJoinPool。首先介绍ForkJoinPool出现的背景与思想,其次介绍ForkJoinPool使用方法以及性能比较,最后通过手写一个ForkJoinPool来展示其原理。转载 2022-05-30 00:13:02 · 11418 阅读 · 1 评论 -
为什么HashMap的长度是2的整数次幂?
HashMap转载 2022-03-28 18:20:46 · 194 阅读 · 0 评论 -
Java8 LocalDateTime和Date相互转换
很想要用Java的时间api,但有时候还是需要转换为Date. 二者的相互转换并不是一步到位那么简单,所以,还是需要记录一下转换的apiDate to LocalDateTimeDate todayDate = new Date();LocalDateTime ldt = Instant.ofEpochMilli( todayDate.getTime() ) .atZone( ZoneId.systemDefault() ) .toLocalDateTime()转载 2021-06-08 15:19:14 · 302 阅读 · 0 评论 -
java处理IOS无法播放视频流(Accept-Ranges)
最近在做一个在线播放视频流的程序,安卓和电脑上都可以正常的播放。可以唯独ios上无法正常播放。开始在网上找了很多资料觉得不是很到位,所以在这里记录一下。刚开始时代码返回的视频流是在一个请求里全部返回的,而苹果的浏览器会先发一次探测请求来获取文件大小,之后再发送多次请求来分段取数据流的数据,其实这里就是一个分段上传的思想(Accept-Ranges)。有两个很重要的点就是, 第一:需要根据请求内容的不同做出不同的响应,第一次探测请求需要返回200,后面的请求需要返回206和具体数据 第二:转载 2021-04-16 11:02:48 · 1263 阅读 · 0 评论 -
Jvm 参数xms和xmx是否必须设置相等
最近申请了几台机器专门用来运行Kafka Streams应用,发现经常发生OOM导致应用挂掉,原因是启动的时候指定了-Xms2G -Xmx2G,所以16G内存的机器没启几个应用内存就被占满了,尽管这些程序只是空跑。查了一下一般都建议-Xms和-Xmx设置为相等,那么能不能设置为不一样呢?先了解一下-Xms和-Xmx的含义-Xms初始堆的大小,也是堆大小的最小值,默认值是总共的物理内存/64(且小于1G),默认情况下,当堆中可用内存小于40%(这个值可以用-XX: MinHeapFreeRat转载 2021-04-06 16:28:34 · 1799 阅读 · 0 评论 -
Spring 集成JMX示例
在Spring中,可以方便地集成JMX。那么第一个问题来了:什么是JMX?JMX是Java Management Extensions,它是一个Java平台的管理和监控接口。为什么要搞JMX呢?因为在所有的应用程序中,对运行中的程序进行监控都是非常重要的,Java应用程序也不例外。我们肯定希望知道Java应用程序当前的状态,例如,占用了多少内存,分配了多少内存,当前有多少活动线程,有多少休眠线程等等。如何获取这些信息呢?为了标准化管理和监控,Java平台使用JMX作为管理和监控的标准接口,任何程转载 2021-03-18 10:07:47 · 977 阅读 · 0 评论 -
java 锁升级机制
锁的使用很难避免,如何尽量提高锁的性能就显得比较重要了锁偏向所谓的偏向锁是指在对象实例的Mark Word(说白了就是对象内存中的开头几个字节保留的信息,如果把一个对象序列化后明显可以看见开头的这些信息),为了在线程竞争不激烈的情况下,减少加锁及解锁的性能损耗(轻量级锁涉及多次CAS操作)在Mark Word中有保存这上次使用这个对象锁的线程ID信息,如果这个线程再次请求这个对象锁,那么只需要读取该对象上的Mark Word的偏向锁信息(也就是线程id)跟线程本身的id进行对比,如果是同一个id就直转载 2021-03-15 10:24:28 · 415 阅读 · 0 评论 -
ThreadLocal父子线程传递实现方案
介绍InheritableThreadLocal之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:ThreadLocal源码分析解密.在讲解之前我们先列举有关ThreadLocal的几个关键点每一个Thread线程都有属于自己的ThreadLocalMap,里面有一个弱引用的Entry(ThreadLocal,Object),如下Entry(ThreadLocal k, Object v) { super(k); .转载 2021-03-15 10:10:52 · 408 阅读 · 0 评论 -
如何下载视频网站中video标签中的视频资源以blob:http开头的地址的资源
一、问题场景想下载知乎视频资源,却发现视频链接是这个样子的blob:https://v.vzuu.com/b6146956-6e52-406d-8909-f3f1b81ae461当时一脸懵比啊~难道blob:https是什么牛逼的新协议?于是进行了一番探索二、探寻结论结论就是blob:https并不是一种协议,而是html5中blob对象在赋给video标签后生成的一串标记,blob对象对象包含的数据,浏览器内部会解析;在web容器中的页面代码浏览器访问...转载 2021-03-04 23:55:31 · 12191 阅读 · 3 评论 -
LockSupport详解
LockSupport是一个编程工具类,主要是为了阻塞和唤醒线程用的。使用它我们可以实现很多功能,今天主要就是对这个工具类的讲解,希望对你有帮助:一、LockSupport简介1、LockSupport是什么刚刚开头提到过,LockSupport是一个线程工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,也可以在任意位置唤醒。它的内部其实两类主要的方法:park(停车阻塞线程)和unpark(启动唤醒线程)。注意上面的123方法,都有一个blocker,这个blocke.转载 2021-02-24 14:31:25 · 1166 阅读 · 0 评论 -
IaaS,PaaS,SaaS 的区别
越来越多的软件,开始采用云服务。云服务只是一个统称,可以分成三大类。IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service SaaS:软件服务,Software-as-a-service它们有什么区别呢?IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引申,让它变得更准确易懂。请设想你是一个餐饮业者,打算做披萨生意。你可转载 2021-02-24 10:33:11 · 262 阅读 · 0 评论 -
Java分布式锁详解
原文出自:https://blog.csdn.net/seesun2012什么是锁?在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块取消标记后再去尝试设置标记转载 2021-02-19 11:12:06 · 388 阅读 · 0 评论 -
Java视频编码转换示例
/** * 视频压缩 * movToMp4("C:/mysoftware/video/test188.avi","C:/mysoftware/video/test188temp.mp4"); * @param sourcePath 视频来源 * @param targetPath 压缩后的视频地址 */ private static void convertToMp4(String sourcePath, String targetPa...原创 2021-02-04 11:04:01 · 853 阅读 · 0 评论 -
HttpClient4.3.X 禁止自动重定向
//HttpClient4.3中默认允许自动重定向,导致程序中不能跟踪跳转情况,其实只需要在RequestConfig中setRedirectsEnabled(false)即可(默认是true)://另外如发生重定向,response的状态码为302,不是200。HttpStatus.SC_MOVED_TEMPORARILYpublic class CustomerGateway implements Gateway, InitializingBean, DisposableBean {.转载 2021-01-21 23:21:20 · 691 阅读 · 0 评论 -
Java中getResourceAsStream的用法
首先,Java中的getResourceAsStream有以下几种:1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以..转载 2020-12-14 11:01:30 · 191 阅读 · 0 评论 -
如何在git URL中转义`@`密码等-附http的url特殊字符转义表
Excuses:I see this:Escape @ character in git proxy passwordBut It's about http.proxy param, and p%4055 does not work for me about url param.My question:I use git version 1.7.1My password repository is: p@55And I use gitlab server, and centos for cl..转载 2020-12-07 15:44:28 · 12419 阅读 · 1 评论 -
Java中getclass(),.class与instanceof的区别与联系
我们知道在Java中一切都是对象,我们一般所使用的对象都直接或间接继承自Object类。Object类中包含一个方法名叫getClass,利用这个方法就可以获得一个实例的类型类。类型类指的是代表一个类型的类,因为一切皆是对象,类型也不例外,在Java使用类型类来表示一个类型。所有的类型类都是Class类的实例。例如,有如下一段代码:A a = new A();if(a.getClass()==A.class)System.out.println("equal");else Syst...转载 2020-12-02 11:13:01 · 1628 阅读 · 0 评论 -
jps 命令详解
jps(Java Virtual Machine Process Status Tool)是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。jps 也是一样,它的作用是显示当前系统的java进程情况及进程id。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟.转载 2020-11-26 14:35:26 · 2313 阅读 · 0 评论 -
java 屏幕截图线程(含鼠标轨迹),可用于屏幕分享功能
package com.test.screenshareserver.task;import com.alibaba.fastjson.JSONObject;import lombok.extern.slf4j.Slf4j;import org.springframework.core.io.ClassPathResource;import javax.imageio.ImageIO;import javax.websocket.Session;import java.awt.*;im.原创 2020-11-23 15:00:44 · 416 阅读 · 0 评论 -
Java面试题:String字符串的最大长度是多少?
在学习和开发过程中,我们经常会讨论 short ,int 和 long 这些基本数据类型的取值范围,但是对于 String 类型我们好像很少注意它的“取值范围”。那么对于 String 类型,它到底有没有长度限制呢?其实 String 类型的对象,他们是有长度限制的, String 对象并不能“存储”无限长度的字符串。关于 String 的长度限制要从编译时限制和运行时限制两方面考虑。编译期限制#有JVM虚拟机相关知识的同学肯定知道,下面定义的字符串常量“自由之路”会被放入方法区的常量池中。转载 2020-11-13 16:23:46 · 12527 阅读 · 1 评论 -
MyBatis模糊查询的4种实现方式
1、根据姓名模糊查询员工信息1.1、方式一步骤一:编写配置文件步骤二:测试步骤三:分析此种方式需要在调用处手动的去添加“%”通配符。1.2、方式二说明:使用方式一可以实现模糊查询,但是有一点不方便的地方就是:在测试类中,调用selectList()方法传参时需要调用者手动的添加%号通配符,显然是麻烦的,能否在映射配置文件中直接将%号写好呢?有的朋友可能会这么想,好办,直接在配置文件中这么写:形如1:测试后发现,程序会报错,原因是:缺少单引号。这...转载 2020-08-11 10:32:26 · 9381 阅读 · 9 评论 -
如何优雅地运用位运算实现产品需求?-位运算处理用户标识
如何优雅地运用位运算实现产品需求?在开始正文之前,我们先来说一下 Linux 的系统权限设计。在 Linux 系统中,为了保证文件的安全,对文件所有者、同组用户、其他用户的访问权限进行了分别管理。其中,文件所有者,即建立文件或目录的用户。同组用户,是所属组群中的所有用户。其他用户,指的是既不是文件所有者,也不是同组用户的其他用户。每个文件和目录都具有读取权限、写入权限和执行权限,这三个权限之间相互独立。在 Linux 系统中,每个文件的访问权限可以用 9 个字母表示,每 3 个字母表示一类用户权转载 2020-07-13 17:45:40 · 267 阅读 · 0 评论 -
Java 8特性 - Collectors toMap
1。介绍在本快速教程中,我们将讨论Collectors类的tomap()方法。我们将使用它将流收集到映射实例中。对于这里介绍的所有示例,我们将使用书籍列表作为起点,并将其转换为不同的映射实现。2。list 转 map我们将从最简单的情况开始,将列表转换为映射。我们的书籍类定义为:class Book { private String name; private int releaseYear; private String isbn; /转载 2020-06-17 15:46:56 · 838 阅读 · 0 评论 -
java串口通讯学习资料
1.java RXTX 库官网: http://rxtx.qbang.org/wiki/index.php/Main_Page2.RXTX 库api使用:https://www.jianshu.com/p/cb61f797ffc1 https://blog.csdn.net/ladymorgana/article/details/902611483.Java gnu.io.CommPortIdentifier 优秀代码实例4.完整实例:java串口通讯(三)---- RXTX实现串口通讯(代码实原创 2020-06-12 15:46:40 · 193 阅读 · 0 评论 -
Java使用RXTX进行串口SerialPort通讯
RXTX简介RXTX是一个提供串口和并口通信的开源java类库,由该项目发布的文件均遵循LGPL协议。RXTX项目提供了Windows,Linux,Mac os X,Solaris操作系统下的兼容javax.comm串口通讯包API的实现,为其他开发人员在此类系统下开发串口应用提供了相当的方便。RXTX的使用上与sun提供的comm.jar基本相同,编程时最明显的不同是要包含的包名由javax.comm.改成了gnu.io.RxtxAPI 的核心是抽象的CommPort类(用于描述一个被底层系统转载 2020-06-12 15:19:22 · 2443 阅读 · 2 评论 -
Spring Boot非Web项目保持运行的方法
有时候一些项目并不需要提供 Web 服务,例如跑定时任务的项目,如果都按照 Web 项目启动未免画蛇添足浪费资源为了达到非 Web 运行的效果,首先调整 Maven 依赖,不再依赖 spring-boot-starter-web,转而依赖最基础的spring-boot-starter:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <art原创 2020-06-11 15:31:41 · 7309 阅读 · 0 评论 -
基于jackson的JSON工具类
package com.json.utils;import com.fasterxml.jackson.annotation.JsonInclude.Include;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.core.JsonParser.Feature;import com.fasterxml.jackson.core.type.TypeReference;i.原创 2020-06-08 18:18:34 · 1030 阅读 · 0 评论 -
java安全管理器SecurityManager介绍
java安全管理器类SecurityManager简单剖析:javadoc介绍:SecurityManager是一个允许应用实现一种安全策略的类。它允许一个应用去明确,在执行一个可能安全或者敏感的操作之前,此操作是否允许在一个安全的上下文中被执行。应用可以同意或者拒绝执行操作。SecurityManager类包含许多以check开头命名的方法。java库中的各种方法在执行一些敏感的操作时可以调用这些方法。对check方法典型的调用如下: SecurityManager secu转载 2020-06-08 10:58:45 · 2748 阅读 · 0 评论