![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java相关
文章平均质量分 67
Full Stack Developme
不生产代码,只把代码搬运到适合它的地方。
展开
-
Java 解析图片信息 实现GPS定位
Java 解析图片信息 实现GPS定位转载 2024-03-12 15:54:58 · 307 阅读 · 0 评论 -
Java 图片处理 Thumbnails 详解
Java 图片处理 Thumbnails 详解转载 2024-03-07 14:17:44 · 2353 阅读 · 0 评论 -
获取 /resources 目录资源文件
获取 /resources 目录资源文件转载 2023-02-03 13:56:29 · 500 阅读 · 0 评论 -
线程安全的CopyOnWriteArrayList与CopyOnWriteArraySet
转载 2022-05-13 21:38:19 · 398 阅读 · 0 评论 -
Java - 获取JVM堆快照文件教程(hprof文件)
叙述OOM,全称“Out Of Memory”。当JVM内存严重不足时,就会抛出java.lang.OutOfMemoryError错误。而JVM dump文件则是定位内存泄漏等OOM问题的关键证据,下面通过样例演示如果生成这个文件。解决方案让 JVM 碰到 OOM 场景时自动输出 dump 信息我们可以添加-XX:+HeapDumpOnOutOfMemoryError参数开启“当堆内存空间溢出时输出堆的内存快照”功能,而-XX:HeapDumpPath参数则指定生成...转载 2021-09-28 23:16:05 · 6062 阅读 · 0 评论 -
java进制互转
叙述基于JDK的进制转换解决方案 十 进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("876",8).toSt转载 2021-09-03 15:33:00 · 72 阅读 · 0 评论 -
Java 技术开发标准 JSR 介绍
简介JSR我们需要先提及JCP(Java Community ProcessSM(JCPSM))。JCP是为Java技术开发标准技术规范的机制。任何人都可以注册并参与审阅和提供Java规范请求(JSR)的反馈,任何人都可以注册成为JCP成员,然后参与JSR的专家组,甚至提交他们自己的JSR提案。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。详细以下对现有的JSR列举:Web Service技术 Java Date与Tim..转载 2021-07-15 13:18:29 · 1376 阅读 · 0 评论 -
Java int和Integer的区别
转载自:java面试题之int和Integer的区别 - 果冻迪迪 - 博客园 (cnblogs.com)叙述int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0解析1、由于Integer变...转载 2021-07-04 22:39:21 · 78 阅读 · 0 评论 -
java 6种 日期格式使用
叙述java.util.Datejava.sql.Date java.sql.Time java.sql.Timestampjava.text.SimpleDateFormatjava.util.Calendarjava.util.Date日期格式为:年月日时分秒java.sql.Date日期格式为:年月日java.sql.Time日期格式为:时分秒java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)从数据库中取出来的日期一般都用getTi...转载 2021-04-26 23:28:57 · 10196 阅读 · 0 评论 -
10 个有关 String 的面试问题
转载自:ImportNewImportNew2017-05-10叙述下面是面试中最容易问到的有关String的问题。1. 如何比较两个字符串?使用“==”还是equals()方法?简单来讲,“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。除非你想检查的是两个字符串是否是同一个对象,否则你应该使用equals()来比较字符串。如果你知道interning的概念的话,那就更好了。2. 为什么针对安全保密高的信息,char[]比Stri...原创 2020-11-23 23:26:28 · 96 阅读 · 0 评论 -
Token ,Cookie、Session 三者区别
转载自:cnblogs.com/JamesWang1993/p/8593494.html叙述在做接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对token,cookie,session的区别还是一知半解。Cookiecookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie转载 2020-11-09 23:57:24 · 1051 阅读 · 0 评论 -
8种方案解决重复提交问题
转载自:juejin.im/post/5d31928c51882564c966a71c叙述在我们编程中常见幂等 select查询天然幂等 delete删除也是幂等,删除同一个多次效果一样 update直接更新某个值的,幂等 update更新累加操作的,非幂等 insert非幂等操作,每次新增一条 产生原因由于重复点击或者网络重发 eg: 点击提交按钮两次; 点击刷新按钮; 使用浏览器后退按钮重复之前的操作,导致重复提转载 2020-11-09 23:45:27 · 504 阅读 · 0 评论 -
java SimpleDateFormat(时间格式化类)
转载自:https://www.jianshu.com/p/0b807a480f36叙述这是个非常实用的类,可以实现String->Date(parse方法),或者Date->String(format方法)的功能解决方案Date->StringSimpleDateFormat timeFormat = new SimpleDateFormat("今天是yyyy年MM月dd号 E a hh:mm:ss"); System.out转载 2020-10-10 15:17:26 · 258 阅读 · 0 评论 -
Java 中 YYYY-MM-dd 在跨年时的致命问题
转载自:https://www.jianshu.com/p/7a01ea86b019叙述在跨年期间,如果在日期格式化的时候使用 YYYY 来格式化年份,则可能会出现下图所示的bug:解决方案YYYY 在官方文档中的解释是 week-based-year,表示当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。所以2019年12月31日那天在这种表述方式下就已经是 2020 年了。而当使用 yyyy 或者 uuuu 的时候,就还是 2019 年。u转载 2020-10-10 15:05:06 · 541 阅读 · 0 评论 -
Java8 stream 中利用 groupingBy 进行多字段分组求和
转载自:https://www.jianshu.com/p/dd5121c8fa89叙述Stream 作为 Java 8 的一大亮点,好比一个高级的迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。解决方案我们可以利用stream对数据进行分组并求和。示例如下:List<String> items = Arrays.asList("apple", "apple", "banana",转载 2020-10-10 15:01:18 · 5198 阅读 · 0 评论 -
Java Annotation 解析
转载自:https://www.cnblogs.com/skywang12345/p/3344137.html叙述Java Annotation是JDK5.0引入的一种注释机制。网上很多关于Java Annotation的文章,看得人眼花缭乱。Java Annotation本来很简单的,结果说的人没说清楚;弄的看的人更加迷糊。我按照自己的思路,对Annotation进行了整理。理解 Annotation 的关键,是理解Annotation的语法和用法,对这些内容,我都进行了详细说明;理解An转载 2020-09-02 12:23:56 · 110 阅读 · 0 评论 -
Java 时间、日期与时区的关系
转载自:https://www.cnblogs.com/hinsy/p/9672835.html叙述本文主要是对Java中常用的时间类做一下梳理,包括Java 8中新增的日期/时间类等,以及它们和时区的关联性Date / Calendarjava.util.Date 是最常用的类之一,它的精度为毫秒,因为它的有些地方不合理,后来出现了Calendar来替代。java.util.Date 本身存储的是时间戳(1970年1月1日 00:00:00 GMT以来此对象表示的毫秒数 ),所以它和时区地转载 2020-08-31 16:44:15 · 869 阅读 · 0 评论 -
JDK8 LocalDateTime和Date互换
转载自:https://www.cnblogs.com/woshimrf/p/LocalDateTime-to-Date.html叙述很想要用Java的时间api,但有时候还是需要转换为Date. 二者的相互转换并不是一步到位那么简单,所以,还是需要记录一下转换的api解决方案Date to LocalDateTimeDate todayDate = new Date();LocalDateTime ldt = todayDate.toInstant() .atZo转载 2020-08-26 17:54:01 · 399 阅读 · 0 评论 -
JDK8 Lambda 求集合对象的 交集 并集 差集
转载自:https://my.oschina.net/u/4258573/blog/3327546叙述使用 Lambda 对集合对象进行交集 并集 差集处理解决方案1 Class Person{2 private int id;3 private String name;4 public Person(){}5 public Person(int id, String name){6 this.id=id;7 t转载 2020-08-26 17:42:58 · 1355 阅读 · 2 评论 -
Java中util.Date和sql.Date的相互转换
转载自:https://www.jianshu.com/p/67dec41f0e4b叙述Java中Date的两个类java.util.Date通常情况下用它获取当前时间或构造时间 java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,都可以直接构造代码示例:// util.date转换成sql.datejava.util.Date utilDate = new java.util.Date(); //获取当前时间Sys转载 2020-08-18 16:19:10 · 248 阅读 · 0 评论 -
Java 动态字节码生成技术 javassist
转载自:http://www.tianshouzhi.com/api/tutorials/bytecode/354叙述关于java字节码的处理,目前有很多工具,如javassist,bcel,asm,cglib,以及jdk6引入的JavaCompiler等。其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一个轻量级的类库,但需要涉及到JVM的操作和指令。这些实现都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令。javassist是jboss的一个子项目,其主要转载 2020-08-14 14:09:45 · 544 阅读 · 0 评论 -
2^128 有多大
转载自:https://lotabout.me/2018/how-big-is-2-power-128/叙述编程中,我们常常需要为“数据”指定 ID,那什么样的类型才“够大”呢?int?long?UUID? 这篇文章里,咱们从直觉的角度聊一聊“数字”有多大。首先为了简便计算,我们需要一个将2a2a转成10b10b的方法:b≈0.3×ab≈0.3×a。如210≈103210≈103就是我们熟悉的1024≈10001024≈1000。证明的方法也就是简单地算算对数,这里不展开了。...转载 2020-07-14 16:46:43 · 4705 阅读 · 0 评论 -
使用 Java 和 Excel 计算金融贷款
转载自:https://www.zuojl.com/finance-formula-on-java-and-excel/叙述主要涉及: 月利息,月本金,月本息三个的计算等额本金说的简单点就是等额本金法中,人们每月归还的本金额始终不变,利息随剩余本金的减少而减少,因而其每月还款额逐渐减少。计算公式:每月本金 = 总本金/还款月数 每月利息 = (本金-累计已还本金)×月利率 每月本息 = (本金/还款月数)+(本金-累计已还本金)×月利率由于公式过于简单我们就不进行演示了。.转载 2020-07-09 16:50:50 · 1359 阅读 · 0 评论 -
Java 往MongoDB 写入时间和读取时间
叙述很多开发使用Java 往MongoDB 写入时间和读取时间,都会遇到时间不匹配或者格式不对的情况。现在给出标准代码,方便大家开发。解决方案这些代码都是从现有程序中扣出来的部分,只供参考。写入时间/*获取MongoDB的当前时间,时区UTC转GMT*/ public static Date getMongoDBDate() { Calendar calle = Calendar.getInstance(); calle.setTime(n.原创 2020-07-01 14:27:14 · 4995 阅读 · 0 评论 -
Java 并发(零)- 原子性
转载自:https://lotabout.me/2020/Java-Concurrency-0-Shared-Mutable-State/叙述并发问题主要有三个根源:原子性、可见性及有序性。作为 Java 并发系列的开篇,我们先来谈谈原子性,以及引发原子性问题的 Shared Mutable State(共享可变状态)。多个线程多十倍烦恼没有多线程就不存在并发问题[1],一旦有多个线程,情况就复杂了起来。下例中我们起了两个线程,分别尝试对全局变量counter做++操作,最终输出的结果...转载 2020-07-01 09:18:21 · 278 阅读 · 0 评论 -
UUID 生成器有多快
转载自:https://lotabout.me/2019/UUID-Generator-Benchmark/叙述在 Java 中,我们常用UUID.randomUUID()来随机生成一个 UUID。但在某些极端的情况下,它的性能可能满足不了你的要求(虽然几乎不可能出现)。这里我们测试了 4 种 UUID 生成器的性能。测试结果最终测试的结果如下(虽然只看到 3 根线,但其实有 4 根,其中蓝线 UUID.randomUUID 与绿线 jugWithSecureRandom 几乎重合):..转载 2020-06-30 17:58:08 · 684 阅读 · 0 评论 -
Java 时间戳
转载自:https://lotabout.me/2019/Timestamp-revealed/叙述海上生明月,天涯共此时。在计算机的世界里,怎么才能“共此时”呢?分析时间如何存储存储的首先需要有唯一性。你朋友说要在22:00给你打电话,结果21:00电话就来了,心里咒骂了一阵,才想起来朋友在日本,日本22:00时北京正好是21:00。虽然平时可能不太注意得到,但是如果想让时间唯一,是需要加上时区的。用时间+时区来存储时间似乎是一个好选择。存储的数据最好能方便比...转载 2020-06-30 17:42:16 · 724 阅读 · 0 评论 -
Java 控制线程执行顺序的几种方法
转载自:http://www.machengyu.net/tech/2019/11/15/thread-order.html叙述通常情况下,线程的执行顺序都是随机的,哪个获取到CPU的时间片,哪个就获得执行的机会。不过实际的项目中有时我们会有需要不同的线程顺序执行的需求。借助一些java中的线程阻塞和同步机制,我们往往也可以控制多个线程的执行顺序。方法有很多种,本篇文章介绍几种常用的。解决方案利用 thread join实现线程顺序执行thread.join方法的可以实现如下的效果,转载 2020-06-30 16:38:19 · 2692 阅读 · 0 评论 -
雪花算法 Java实现
转载自:http://www.machengyu.net/tech/2019/12/04/snowflake.html叙述snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。开源的版本由scala编写,大家可以再找个地址找到这版本。https://github.com/twitter-archive/snowflake/tags雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求,转载 2020-06-29 13:50:07 · 216 阅读 · 0 评论 -
抽象类与接口的区别?
转载自:https://blog.csdn.net/weixin_44618862/article/details/102985674叙述抽象类:一个类中的方法没有得到具体的实现,这个类就可以是抽象的。抽象类是抽取同类事物的特征,抽象类为了继承而存在。接口:接口相当于定义一套自己的行为准则(需要做什么),这些准则用于他人使用接口时的约束语法层面的区别抽象类用abstract修饰,接口用interface修饰抽象类中可以有抽象方法和非抽象方法,接口中的所有方法都是抽象的,实现一个接口时,接口中转载 2020-06-24 17:23:45 · 139 阅读 · 0 评论 -
Closeable接口优雅方便的自动关闭资源
转载自:https://blog.csdn.net/nuomizhende45/article/details/105924637叙述Closeable接口继承于AutoCloseable,主要的作用就是自动的关闭资源,其中close()方法是关闭流并且释放与其相关的任何方法,如果流已被关闭,那么调用此方法没有效果,像InputStream和OutputStream类都实现了该接口源码如下:/* * Copyright (c) 2003, 2013, Oracle and/or its转载 2020-06-23 16:26:55 · 825 阅读 · 0 评论 -
Java集合之Arrays和Collections
转载自:http://liuguoquan727.github.io/2015/12/18/Java%E9%9B%86%E5%90%88%E4%B9%8BArrays%E5%92%8CCollections/叙述比较Arrays和Collections解析Arraysjava.util.ArraysArray是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays 包含了许多处理数据的实用方法:Arrays.asList:可以从 Arr转载 2020-06-23 15:51:19 · 207 阅读 · 0 评论 -
Java 计算两个日期的差值
转载自:https://www.ripjava.com/article/1294911926173728叙述在这篇快速的文章中,我们将探讨Java中计算两个日期之间差值的一些方法。解决方案使用 java.util.Date让我们首先使用Java SE API计算两个日期之间的天数:@Testpublic void test_TwoDatesDiffBeforeJava8() throws ParseException { SimpleDateFormat sdf = n转载 2020-06-23 14:15:21 · 10293 阅读 · 0 评论 -
java中常见的异常种类
转载自:https://www.cnblogs.com/bigdata-stone/p/9619255.htmlJava常见的异常种类------------------------------------------------------------------------------- java Exception: 1.Error 2.Runtime Except...原创 2020-03-27 17:00:06 · 1611 阅读 · 0 评论 -
logger.error 完整打印错误堆栈信息
转载自:https://blog.csdn.net/heweimingming/article/details/76423186叙述有时候logger.error不能完全地打印出网站的错误堆栈信息,只能打印这个错误是一个什么错误。解析为什么?看Logger.error源码public voiderror(String msg, Throwable t);public ...原创 2020-03-27 16:09:33 · 603 阅读 · 2 评论 -
基于 JDK 8 各种细节优化
转载自:https://learnku.com/articles/38518叙述在 JDK 版本普遍升级到 8 之后,最近参与了几次代码评审,好多人对 JDK8 中的用法不是特别熟熟悉,用的不对或者干脆用错的常有,代码评审时经常被说到,这里整理一波实用的技巧,希望大家举一反三,有所收获。代码判空操作//优化之前 if (obj != null){ } //优化之后...转载 2020-02-10 14:38:15 · 948 阅读 · 1 评论 -
十个最常用的JVM 配置参数
转载自:程序猿DD(百度 谷歌 搜索 程序猿DD)叙述1.-Xms:初始堆大小。只要启动,就占用的堆大小。2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。3.-Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。当...转载 2020-02-08 10:55:01 · 191 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
转载自:https://www.cnblogs.com/Dhouse/p/7776780.html叙述String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言...转载 2020-02-07 21:15:15 · 125 阅读 · 0 评论 -
JavaWeb获取客户端的IP地址与MAC地址总结
转载自:https://www.jianshu.com/p/2b134607a3b9叙述最近刚完成的一个模块中,需要获取系统客户端的IP地址与物理地址(MAC地址)。获取的本机IP与MAC是服务器的,而非客户端的通过JAVA获取,本机的IP地址与MAC地址,使用如下代码即可完成:package com.howin.util; import java.net.*; pu...转载 2020-02-06 21:28:09 · 2940 阅读 · 1 评论 -
JAVA程序 通过IP地址 获取MAC地址
转载自:https://blog.csdn.net/chwshuang/article/details/46958719叙述我们都知道通过在电脑上敲 cmd 后,输入ipconfig -all 来获取IP地址或者MAC地址,java程序可以在window和linux下获取MAC地址等信息!代码import java.io.BufferedReader;import java.i...转载 2019-12-23 17:24:52 · 1256 阅读 · 0 评论