Java
邓彪1022
方向错了,速度再快又有什么用。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java list 按照多字段排序
list 排序涉及的接口Comparator, 具体实现代码如下,以Apple类为例public class Test{ public static void main(String [] args){ List<Apple> apples = new ArrayList<>(); Comparator<Apple> byName = Comparator.comparing(Apple::getName); Compara...转载 2020-09-24 18:49:52 · 688 阅读 · 0 评论 -
Java一致性Hash算法的实现
哈希hashhash的意思是散列,目的将一组输入的数据均匀的分开、打散,往往用来配合路由算法做负载均衡,多用在分布式系统中。比如memcached它只提供了K V的存储、读取,如果使用了多台memcache做一个“逻辑集群”,就需要客户端做“路由算法”,来保证数据均匀的进去,然后能“原路”拿出来。常规哈希取模常规哈希,往往结合取模运算,以便将请求转发到后端的服务器上,如下图:第一步使用hash算法,将请求“打散”得到一个整数(比如传递过来一个请求,使用jdk类库的hash对某个参数做计算转载 2020-09-02 00:31:27 · 509 阅读 · 0 评论 -
多图详解!10大高性能开发核心技术
多图详解!10大高性能开发核心技术程序员经常要面临的一个问题就是:如何提高程序性能?这篇文章,我们循序渐进,从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进,串联起高性能开发十大必须掌握的核心技术。- I/O优化:零拷贝技术- I/O优化:多路复用技术-线程池技术-无锁编程技术-进程间通信技术-RPC&&序列化技术-数据库索引技术-缓存技术&&布隆过滤器-全文搜索技术-负载均衡技术准备好...转载 2020-08-28 00:26:55 · 320 阅读 · 0 评论 -
借助Redis Bitmap实现简单的布隆过滤器
https://www.jianshu.com/p/c2defe549b40转载 2020-08-21 16:44:10 · 1065 阅读 · 0 评论 -
Intellij IDEA ,按Ctrl+左键,不能进入类或方法的【解决办法】,提示Cannot find declaration to go to
Intellij IDEA ,按Ctrl+左键,不能进入类或方法的【解决办法】,提示Cannot find declaration to go to2017年8月4日朱宏亮%1 $ SIntellij IDEA ,按Ctrl+左键,不能进入类或方法的【解决办法】,提示Cannot find declaration to go to如图,,按住Ctrl+鼠标单击的时候,系统提...转载 2020-01-19 17:35:52 · 5728 阅读 · 2 评论 -
这可能是最详细的Java锁总结了。看看这篇你就全明白了
Java 锁分类Java 中的锁有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用锁的分类,包括一些基本的概述从线程是否需要对资源加锁可以分为悲观锁和乐观锁 从资源已被锁定,线程是否阻塞可以分为自旋锁 从多个线程并发访问资源,也就是 Synchronized 可以分为无锁、偏向锁、轻量级锁和重量级锁 从锁的公平性进行区分,可以分为公平锁和...转载 2019-12-18 16:24:51 · 1120 阅读 · 0 评论 -
面试必会 HashMap 线程不安全,它为啥不安全呢?
我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。1.jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况:publicclass...转载 2019-11-27 10:28:56 · 195 阅读 · 0 评论 -
ArrayList和LinkedList有什么区别(看完必懂)
ArrayList和LinkedList都实现了List接口,他们有以下的不同点:ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。相对于ArrayList,LinkedList的插入,添...原创 2019-11-22 11:36:51 · 3749 阅读 · 1 评论 -
Java8:使用 Optional 处理 null
写过 Java 程序的同学,一般都遇到过 NullPointerException :) —— 为了不抛出这个异常,我们便会写如下的代码:User user = getUserById(id);if (user != null) { String username = user.getUsername(); System.out.println("Username is: ...转载 2019-04-22 19:47:28 · 424 阅读 · 0 评论 -
最全面的 Java G1学习笔记
转自:https://mp.weixin.qq.com/s/Shw0jtVse1QqNbFCyYmfZA引子最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题。总体来讲,对于G1我有几个疑惑,希望能够在这篇文章中得到解决。 G1出现的初衷是什么? G1适合在什么场景下使用? G1的trade-off是...转载 2019-02-23 17:13:00 · 722 阅读 · 0 评论 -
Java性能优化的50个细节(珍藏版)
原文链接:https://www.toutiao.com/i6595499804082569742/ 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以...转载 2019-01-19 13:48:23 · 469 阅读 · 0 评论 -
java 中间件
中间件概率:非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称为中间件。 中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护...原创 2018-12-18 10:00:03 · 363 阅读 · 0 评论
分享