Java相关
Ginny_2019
这个作者很懒,什么都没留下…
展开
-
Java Lamda实现分页
最近遇到项目中遇到需要查询不同的库获取到数据,在内存中进行分页,可以通过List的Stream进行分页。List<PlayerSnVo> list = demoMapper.findList(oid, snCodeOrName);List<PlayerSnVo> result = new ArrayList<>();if(list.size > 0){ result = list.stream().skip(pageSize * (pag...原创 2020-09-15 11:16:49 · 676 阅读 · 0 评论 -
SLF4J:Failed to load class “org.slf4j.impl.StaticLoggerBinder”
说明缺少slf4j的包,加上依赖就可以了。<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> <scope>test</scope> </dependency>...原创 2020-06-12 18:20:50 · 627 阅读 · 1 评论 -
Java&PHP互通实现RSA的加密算法
最近在使用java重构php代码,真的是感叹php的封装太强大,这两天研究了RSA的算法,起因是需要访问php的接口,接口需要认证。 但是最后发现,用java生成的签名(sign),通过php去验证(verify)是行不通的, 原因是两者内部生成的签名是又区别的。PHP的签名中的私钥是PKCS1格式, 但是Java是PKCS8格式,导致两者最后生成的(sign)签名是不一致的,所以在验证过程中也就不会验证(verify)成功了。需要成功,必须是java生成,java验证才可以,不过还是记录一下本次的经验吧原创 2020-06-09 20:01:50 · 423 阅读 · 0 评论 -
Maven导入org.apache.commons.codec或commons-codec.jar包
背景:项目中需要使用Base64, 进行加密,发现jdk中的Base64无encodeBase64和encodeBase64String,于是发现apache的commons-codec.jar包,下面是maven/gradle导入该包的官网连接。官网连接https://mvnrepository.com/artifact/org.apache.directory.studio/org.apache.commons.codec/1.8Maven<!-- https://mvnreposito原创 2020-06-08 18:56:18 · 32820 阅读 · 0 评论 -
Java如何获取进程ID
项目中需要获取进程ID,查了一下,可以通过ManagementFactoryManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理VM的静态接口,比如RuntimeMXBean;可参考博客:https://blog.csdn.net/zgljl2012/article/details/50989976/RuntimeMXBean是Java虚拟机的运行时管理接口. @JvmStatic fun getProcessId() {原创 2020-06-03 17:29:56 · 628 阅读 · 0 评论 -
Java通过form-data传参调用第三方接口
今天被PHP同事问到, 你们java中在postman通过form-data传参,怎么获取不到参数? 研究后发现是在调用时,传参的方式有问题,导致无法获取到参数。那首先得先了解一下我们平时使用postman传参时的几种方式。下面postman中的几种传参方式:01. form-data/multiparthttp请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传是文件时,会有Content-Typ...原创 2020-06-03 17:18:44 · 10110 阅读 · 1 评论 -
Java / Kotlin 获取通过IP获取经纬度
MaxMindMaxMind公司成立于2002年,是领先业界的IP智能与在线欺诈检测工具供应商。MaxMind通过GeoIP品牌提供IP智能服务。GeoIP1. Gradledependencies { compile 'com.maxmind.geoip2:geoip2:2.13.1'}2. Maven<dependency> <groupId>com.maxmind.geoip2</groupId> <arti...原创 2020-05-28 11:36:23 · 664 阅读 · 0 评论 -
Java 8 中使用Stream将List转为Map
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。下面将详细讲解在Java 8 中如何使用Stream将List转换为Map,使用Collectors.toMap方法进行转换。背景:User类,类中分别有id,name,age三个属性。List集合,use...转载 2019-11-08 09:48:18 · 302 阅读 · 0 评论 -
HashMap的构造函数,hash, tableSizeFor的源码分析
一,静态默认参数//默认的初始容量16,且实际容量是2的整数幂,0000 0001=>向左移动4位 => 0001 0000static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//最大容量(传入容量过大将被这个值替换) //00000000 000000000000000 00000001=>...原创 2019-10-31 15:00:26 · 162 阅读 · 0 评论 -
HashMap的put源码解析
Put方法源码分析/** * Implements Map.put and related methods * * @param hash hash for key * @param key the key * @param value the value to put * @param onlyIfAbsent if true, don't change existing...原创 2019-10-30 14:45:05 · 180 阅读 · 0 评论 -
Java的运算符^
1. 异或运算符[^](当两个数字不同则为1,其余为0)2的二进制0000 00103的二进制0000 0011所以2^3 = 0000 0001答案是12. 或运算符[ |] (当两个数字不同或都为1时都为1,同时为0则为0)2的二进制0000 00103的二进制0000 0011所以 2 | 3 = 0000 00 11答案是 33. 与运算符 [&] ...原创 2019-08-30 18:45:34 · 152 阅读 · 0 评论 -
HashMap的实现原理 (超有用!!!)
1、为什么用HashMap?HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快HashMap可以接受null键和值,而Hashtable则不能(原因就是equlas()方法需要对象,因为HashM...转载 2019-08-14 11:22:21 · 242 阅读 · 0 评论 -
StringBuilder和StringBuffer的区别
一,String,StringBuilder和StringBuffer的区别的总结为什么SringBuffer是线程安全的?从StringBuffer源码的方法中可以看到,所有的方法都是有synchronized修饰的。参考自:很好的一片博文:https://blog.csdn.net/weixin_41101173/article/details/79677982...原创 2019-08-14 09:20:45 · 121 阅读 · 0 评论 -
TCP协议通信
目录一,TCP 协议的通信过程二,滑动窗口协议三,阻塞 IO(BIO)四,非阻塞IO(NIO)五,IO 多路复用模型一,TCP 协议的通信过程 首先,对于 TCP 通信来说,每个 TCP Socket 的内核中都有一个发送缓冲区和一个接收缓冲区,TCP 的全双工的工作模式及 TCP 的滑动窗口就是依赖于这两个独立的 Buffer 和该 Buffer的填充状态...原创 2019-06-04 19:37:27 · 259 阅读 · 0 评论 -
Java正则表达式
参考自Java正则表达式-https://www.runoob.com/java/java-regular-expressions.htmljava.util.regex 包主要包括以下三个类:Pattern 类: pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Patt...原创 2019-04-30 11:38:45 · 192 阅读 · 0 评论 -
设计模式 - 单例模式
目录简介单例模式的特点基本的实现思路注意事项线程安全的问题单例模式的八种写法1、饿汉式(静态常量)[可用]2、饿汉式(静态代码块)[可用]3、懒汉式(线程不安全)[不可用]4、懒汉式(线程安全,同步方法)[不推荐用]5、懒汉式(线程安全,同步代码块)[不可用]6、双重检查[推荐用]7、静态内部类[推荐用]8、枚举[推荐用]优点缺点...转载 2019-04-03 11:10:29 · 403 阅读 · 0 评论 -
软件架构设计的七大原则
一.开闭原则(Open-Closed Principle, OCP)定义:指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是用抽象构建框架,用实现扩展细节作用:提高软件系统的可复用性及可维护性,开闭原则,是面向对象设计中最基础的设计原则。它指导我们如何建立稳定灵活的系统,例如:我们版本更新,我尽可能不修改源代码,但是可...原创 2019-04-08 18:11:12 · 360 阅读 · 0 评论