![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 87
不甘于平凡的溃败
这个作者很懒,什么都没留下…
展开
-
一篇文章讲清楚Java 如何优雅进行参数校验
一篇文章讲清楚Java 如何优雅进行参数校验原创 2023-01-27 13:56:41 · 2089 阅读 · 1 评论 -
单元测试之mock使用
单元测试之mock使用原创 2022-04-12 22:40:40 · 19110 阅读 · 4 评论 -
为什么Java7开始在数字中使用下划线
本文由 ImportNew - 刁 文阳 翻译自 javacodegeeks。欢迎加入翻译小组。转载请见文末要求。JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。...转载 2018-09-09 22:21:32 · 223 阅读 · 0 评论 -
JDK9.0新特性之集合工厂方法
Java 9增加了List.of()、Set.of()、Map.of()和Map.ofEntries()等工厂方法来创建不可变集合。 List strs = List.of("Hello", "World"); List strs List.of(1, 2, 3); Set strs = Set.of("Hello", "World"); Set in...原创 2018-04-20 18:35:31 · 265 阅读 · 0 评论 -
Java 的String中intern方法详解及测试样例
internpublic String intern()返回字符串对象的规范化表示形式。一个初始时为空的字符串池,它由类 String 私有地维护。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。...原创 2018-10-18 22:59:59 · 233 阅读 · 0 评论 -
JDK之HashSet的底层实现
今天下午有点小休,之前一直对Java的HashSet为什么会是不可复制的集合有点迷惑,打开JDK源码才发现HashSet的底层实现是用的是HashMap,如下图 用HashMap的Key作为HashSet的值用,因HashMap 的Key 是不可重复的,所以HashSet就变成不可重复的集合了 更多精彩技术分享请浏览本人博客:https://blog.csdn...原创 2018-06-26 17:36:15 · 214 阅读 · 0 评论 -
Java出现OOM错误排查
背景 最近工作中出现OOM问题,经过一翻周折后将问题解决,现将处理过程的经验分析给大家,如果各位有更好的方式要在后面进行留言探讨,如无则可参考此解决方法。说明 因中间可能涉及到商业机密问题,所以在测试的项目为模拟生产环境的情景。准备工作 如果是在生产环境上运行可跳过此步骤。 1、创建一个项目 2、在项目中定义一个Main...原创 2019-12-31 18:02:30 · 1640 阅读 · 0 评论 -
详解Java 常见的锁
自己有段时间没有写博客了,实在不好意思,最近工作确实有点忙。最近工作有使用到Java多线程同步锁相关知识,以下为自己做的一个小总结,以便与大家互相学习,哈哈。1.独享锁也叫互斥锁,是指该锁一次只能被一个线程所持有。常见的有ReentrantLock、ReadWriteLock。2.共享锁是指该锁可被多个线程所持有。常见的有CountDownLatch。3.乐观锁顾...原创 2019-04-26 23:19:41 · 921 阅读 · 0 评论 -
Java IO之FileChannel初探
概述对于文件的复制,平时我们都是使用输入输出流进行操作,利用源文件创建出一个输入流,然后利用目标文件创建出一个输出流,最后将输入流的数据读取写入到输出流中。这样也是可以进行操作的。但是利用fileChannel是很有用的一个方式。它能直接连接输入输出流的文件通道,将数据直接写入到目标文件中去。优势可防止OOM(内存溢出),高效率(后面详解)使用下面以复制500多M的一个本地文件...原创 2018-09-25 12:22:40 · 614 阅读 · 0 评论 -
Java 之注解(Annotation)
1.Annotation为何而来What:Annotation干嘛的 JDK5开始,java增加了对元数据(MetaData)的支持,怎么支持?答:通过Annotation(注解)来实现。Annotation提供了为程序元素设置元数据的方法。元数据:描述数据的数据。 Annotation可以为哪些程序元素设置元数据呢? Annotation提供了一种为程序元素设置元数据的...原创 2018-09-19 15:53:42 · 756 阅读 · 0 评论 -
java的volatile关键字详解
内存可见性 volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。 为了能比较清晰彻底的理解volatile,我们一步一步来分析。首先...原创 2018-09-11 23:58:13 · 2092 阅读 · 0 评论 -
CountDownLatch使用以及原理
概述CountDownLatch是一个用来控制并发的很常见的工具,它允许一个或者多个线程等待其他的线程执行到某一操作,比如说需要去解析一个excel的数据,为了更快的解析则每个sheet都使用一个线程去进行解析,但是最后的汇总数据的工作则需要等待每个sheet的解析工作完成之后才能进行,这就可以使用CountDownLatch。 使用例子:这里有三个线程(main,thread...转载 2018-09-11 23:48:39 · 201 阅读 · 0 评论 -
Java 线程池的创建和使用方法
1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto-generated method stub}}).start();那你就out太多了,new Thread的弊端如下:a. 每次new Thre...原创 2018-06-01 11:59:36 · 651 阅读 · 0 评论 -
Java多线程之Callable和Future
Callable异步执行,应该不会陌生,那么在java中是怎么用的呢?又是如何实现的?下面我们循序渐进,慢慢分析。 先看一个例子,实现Callable接口,进行异步计算:package com.demo;import java.util.concurrent.*;public class Demo { public static void main(String[] args...原创 2018-07-10 14:55:00 · 275 阅读 · 0 评论 -
怎么解决java.lang.NoClassDefFoundError错误 ,以及类的加载机制
目录前言NoClassDefFoundError错误发生的原因NoClassDefFoundError和ClassNotFoundException区别怎么解决NoClassDefFoundError错误NoClassDefFoundError解决示例 转自http://blog.csdn.net/jamesjxin/article/details/46606307回到顶部前言在日常Java开发中...转载 2018-07-05 19:00:45 · 5669 阅读 · 0 评论 -
数据处理提高1000倍的方法
数据处理提高1000倍的方法 目录 1、问题来源2、解决方法3、优化原理 1、问题来源今天写长线接口处理数据时每分钟能10多条数据,因现场每秒钟都会有好几条数据过来,以这样的处理速度现场已经积压了快20万条数据未处理,延时已经超过12个小时。 2、解决方法2.1...原创 2018-07-14 19:19:48 · 363 阅读 · 0 评论 -
jsp 地址传参中文乱码解决办法
一、在请求页面的请求参数需要用encodeURI进行转码,然后在接收请求的页面需要进行字符集转换。本例中的请求和接收页面的字符集都是UTF-8:1.请求的JSP页面用JavaScript的encodeURI()方法将参数转码:function toView(param){ var encodeparam = encodeURI(param) ; window.l...原创 2018-07-29 14:03:45 · 1410 阅读 · 0 评论 -
java限制方法执行时间
核心第一步创建线程池对象核心第二步创建Callable对象,重写call方法。核心第三步创建Future 对象核心第四步方法调用,设置超时时间 ----------------------------------------------------- 完整实例代码如下 ----------------------------------------------...原创 2018-08-27 09:54:00 · 7159 阅读 · 2 评论 -
Loger自定义日志总结
Loger自定义日志总结 作用:自定义日志可以根据不同的业务需求对日志文件进行分类管理。效果展示配置步骤1、引入日志Jar包1.1、maven项目在pom.xml 添加以下内容即可 <dependency> <groupId>org.slf4j</groupId> <artifactId>s...原创 2018-08-24 17:49:30 · 972 阅读 · 0 评论 -
Java 的Native关键字详情
Java中Native关键字的作用初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: 1 public native int hashCode(); 为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。回到顶部一、认识 native 即 JNI,Java Native ...原创 2018-09-11 14:19:29 · 1396 阅读 · 1 评论 -
BIO、NIO和AIO
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝...原创 2018-09-11 22:53:28 · 131 阅读 · 0 评论 -
Java获得类路径的几种方式
import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { public static void main(String[] args) { MyUrlDemo muDemo = new MyUrlDemo(); try...原创 2018-05-22 21:18:33 · 13249 阅读 · 0 评论