java
文章平均质量分 65
走向自由
追随自己内心的声音,走向自由。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java8 后接口的用法总结
接口的作用是用来抽象行为,提供具体实现类的行为约定。接口尽量使用单一职责原理,保证接口功能的清晰。确实需要多个职责时,使用接口的扩展extends来实现。这是接口最基本的用法,在 Java 8 之前就已存在。接口里可以定义抽象方法,这些方法没有方法体,实现接口的类必须实现这些抽象方法。// 定义一个接口// 抽象方法,计算面积// 抽象方法,计算周长// 实现接口的类@Override@OverrideJava 8 引入了默认方法,使用default关键字修饰。原创 2025-04-27 18:25:22 · 993 阅读 · 0 评论 -
CompletableFuture
Callable --> Future (get() 阻塞等待结果,或者while一直等待结果)等结果完成后,自动触发回调方法。a) 提供要运行的任务。原创 2022-11-18 14:45:05 · 365 阅读 · 0 评论 -
JDK8 Metaspace
metaspaceSize 初始化metaspace大小。maxMetaspaceSize 达到改数值后进行GC。转载 2022-09-01 14:02:00 · 672 阅读 · 0 评论 -
JVM 内存调优总结贴
https://www.oracle.com/technetwork/java/javase/tech/memorymanagement-whitepaper-1-150020.pdfSerial GCParallel GCCMShttp://www.fasterj.com/articles/oraclecollectors1.shtmlPS ScavengePS MarkSweep Java HotSpot Garbage CollectionG1 GCFlink 任务内存泄漏导致频繁 Full FC原创 2022-08-30 15:03:48 · 423 阅读 · 0 评论 -
使用字节数组创建String后通过getBytes()得到的数组与创建时不同
问题使用默认编码创建字符串后,通过生成的字符串的getBytes()方法获得的数组与创建时的数组不同。代码如下:byte[] bytes=new byte[]{-42, -48, -50, -60, -78, -30, -54, -44};System.out.println(Arrays.toString(bytes));System.out.println(Arrays.toString(new String(bytes).getBytes()));前后数组对比如下: [-转载 2020-10-16 18:41:00 · 598 阅读 · 0 评论 -
【Java基础】线程池ThreadPoolExecutor源码解析
转载文章,仅供学习。原文:https://www.jianshu.com/p/f62a3f452869一、构造方法参数下面是ThreadPoolExecutor最普通的构造函数,最多有七个参数。具体代码不贴了,只是一些参数校验和设置的语句。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ..转载 2020-08-13 15:08:52 · 215 阅读 · 0 评论 -
【Java基础】Java中synchronized锁和lock锁的比较
转载仅供学习,原文来自:https://baijiahao.baidu.com/s?id=1664090632564134140&wfr=spider&for=pc在面试的过程中有可能会问到:在Java并发编程中,隐式锁和显示锁分别是什么?两者的区别是什么?所谓的显式锁和隐式锁的区别也就是说说Synchronized(下文简称:sync)和lock(下文就用ReentrantLock来代之lock)的区别。Java中隐式锁:synchronized;显式锁:loc..转载 2020-08-11 11:02:21 · 582 阅读 · 1 评论 -
【Java基础】什么是可重入锁?
仅供学习,原文来自:https://blog.youkuaiyun.com/rickiyeat/article/details/78314451经历很久之前就听说了可重入锁,可重入锁究竟是什么意思,以前是囫囵吞枣的,只要记住ReentrantLock和sychronized是可重入锁就行了,爱咋用咋用,好吧,原谅我的无知,最近对基础查漏补缺,发现竟然对其一问三不知,赶紧预习一波,觉得有必要写一篇博客来讲解,就当做什么都没有发生吧,嘿嘿。。。释义广义上的可重入锁指的是可重复可递归调用的锁,在外层使用.转载 2020-08-11 10:33:09 · 1480 阅读 · 1 评论 -
【Java基础】ReentrantLock源码分析
本文仅供学习,原文:https://www.jianshu.com/p/fe027772e156显式锁ReentrantLock和同步工具类的实现基础都是AQS,所以合起来一齐研究。什么是AQSAQS即是AbstractQueuedSynchronizer,一个用来构建锁和同步工具的框架,包括常用的ReentrantLock、CountDownLatch、Semaphore等。AQS没有锁之类的概念,它有个state变量,是个int类型,在不同场合有着不同含义。本文研究的是锁,为了好..转载 2020-08-10 18:29:16 · 179 阅读 · 0 评论 -
【Java基础】ConcurrentHashMap原理解析及相关问题
本文仅供学习参考,原文来源:https://www.jianshu.com/p/1e1a96075256本篇主要讲解ConcurrentHashMap类在并发环境下的使用。惯例,我们先来看下ConcurrentHashMap实现原理:jdk7以前跟以后(jdk8)实现原理不一样,所以我们分2个版本研究,先看jdk7版jdk7版本ConcurrentHashMap和HashMap设计思路差不多,但是为支持并发操作,做了一定的改进,ConcurrentHashMap引入Segment 的概念.转载 2020-08-10 13:52:46 · 403 阅读 · 0 评论 -
【Java基础】HashMap原理及常见面试题目
1 有1000_000条不同的记录需要插入到HashMap,怎样插入效率更高并说明理由?这里考察的是capacity 和loadFactor, 当插入记录达到capacity*loadFactor时,需要对HashMap重新分配空间(rebuilt)和拷贝数据。所以对于需要插入很多数据时,比较好的方法是初始容量分配size*2的空间。import java.util.HashMap;/** * to insert 1000_000 elements into hashmap, test t原创 2020-07-31 11:30:33 · 1694 阅读 · 0 评论 -
Microservice架构模式简介
写得很好的一篇微服务的文章,转载下。原文地址:https://www.cnblogs.com/loveis715/p/4644266.html要点总结:1)为什么需要Microservice?2) Microservice 粒度划分3)Microservice 公共服务在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出...转载 2019-06-12 18:10:43 · 739 阅读 · 0 评论 -
Java 检查图片完整性代码
最近使用爬虫下载图片,遇到ctrl+C或者INT进行中断时,部分图片不能下载完整。因此需要筛选出这部分不完整图片的代码。这里仅列出image/jpeg的例子:import org.junit.Test;import javax.imageio.ImageIO;import javax.imageio.ImageReader;import javax.imageio.stream...原创 2018-08-27 10:21:23 · 4241 阅读 · 0 评论 -
scala关键字val、var、def的区别
最近做项目时碰到scala一个很难理解的问题,一个接口里定义了某个方法,实现类里什么实现代码都没有,就是声明了一个同名的变量就可以直接运行了,真是莫名其妙(说实话不喜欢Scala,太多例外了)。案例代码如下:接口A:trait A { def dataMap: Map[String, String]}实现类B:class B extends A { val原创 2018-01-23 16:07:34 · 6503 阅读 · 0 评论 -
自动扫描JPA entity annotation(Java JPA entity auto detect )
Table of Contents0. 使用到的环境1. 开发阶段 或 直接提供datasource方式2. 提供Jar集成第三方persistence.xml参考文件:0. 使用到的环境// database relatedcompile 'mysql:mysql-connector-java:8.0.15'compile 'org.hibernate:hi...原创 2019-04-08 18:00:55 · 1079 阅读 · 0 评论 -
DesUtils java properties 加密工具类
public final class DesUtils { private static final String DES = "DES"; private static final String KEY = "4YztMHI7PsT4rLZN_adorechen"; private DesUtils() {} private static byte[] ...转载 2019-04-23 15:11:12 · 379 阅读 · 0 评论 -
checkstyle:off 使用注释暂时禁用checkstyle检查
背景本文介绍在Gradle中,如何跳过checkstyle对指定的文件(或者指定的代码块)的检查。步骤1. 在checkstyle.xml的<module name="Checker">下,加入<module name="SuppressionCommentFilter"/>即:......<module name="Checker"&g...转载 2019-06-06 16:29:12 · 7638 阅读 · 0 评论 -
并发编程模型
看到比较好的一篇文章,mark下。原文:http://tutorials.jenkov.com/java-concurrency/concurrency-models.html译文来源:https://blog.youkuaiyun.com/wang_shuyu/article/details/53319113摘要:这是翻译自一个大概30个小节的关于Java并发编程的入门级教程,原作者Jakob ...转载 2019-06-13 18:05:37 · 235 阅读 · 0 评论 -
critical section synchronized 锁住不同对象
http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.htmlpublic class TwoSums { private int sum1 = 0; private int sum2 = 0; public void add(int ...原创 2019-06-14 18:37:27 · 201 阅读 · 0 评论 -
Java Memory Model & Computer Memory Model
Summary:Thevolatilekeyword can make sure that a given variable is read directly from main memory, and always written back to main memory when updated.A synchronized block guarantees that onl...转载 2019-06-21 21:13:30 · 234 阅读 · 0 评论 -
Java Volatile Keyword
http://tutorials.jenkov.com/java-concurrency/volatile.html总结:1 并发race condition: 32位visiability: write to main memory, read from main memory;2. 使用场景write one, read many3. variable...转载 2019-07-03 17:18:45 · 261 阅读 · 0 评论 -
ReentrantLock & ReadWriteLock
http://tutorials.jenkov.com/java-concurrency/locks.htmlhttp://tutorials.jenkov.com/java-concurrency/read-write-locks.html转载 2019-07-09 15:52:28 · 153 阅读 · 0 评论 -
Non-blocking Algorithms
原文:http://tutorials.jenkov.com/java-concurrency/non-blocking-algorithms.htmlNon-blocking algorithms in the context of concurrency are algorithms that allows threads to access shared state (or ot...转载 2019-07-15 16:50:27 · 479 阅读 · 0 评论 -
java concurrency 读书笔记
文章地址:http://tutorials.jenkov.com/java-concurrency/index.htmlTable of Contents第一章 并发模型第二章 并发的本质第三章 CompareAndSwap常用类第四章 Thread Signal第一章 并发模型1.1Parallel Workers1.2Assembly Line...原创 2019-07-15 17:21:24 · 485 阅读 · 0 评论 -
ArrayBlockingQueue 的性能瓶颈
先看看ArrayBlockingQueue的源码,主要有两个方法先看put方法:向队列的尾部插入元素,若已满则等待。/** * Inserts the specified element at the tail of this queue, waiting * for space to become available if the queue is full. * * @t...原创 2019-07-25 16:15:28 · 2171 阅读 · 0 评论 -
为什么要这样写final ReentrantLock lock = this.lock; ?
原文地址:https://blog.youkuaiyun.com/zqz_zqz/article/details/79438502转载 2019-07-25 17:45:07 · 1339 阅读 · 0 评论 -
java BIO、NIO、AIO详解
写得很好的一篇文章,学习下。https://www.cnblogs.com/diegodu/p/6823855.html 一、了解Unix网络编程5种I/O模型1.1、阻塞式I/O模型阻塞I/O(blocking I/O)模型,进程调用recvfrom,其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误才返回。进程从调用recvfrom开始到它返回的整段时间内...转载 2018-08-27 17:29:24 · 1710 阅读 · 0 评论
分享