![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
程序员大伟
Java开发老白鼠
展开
-
京东把 Elasticsearch 用得真牛逼!日均5亿订单查询完美解决!
来源:京东技术(ID: jingdongjishu)京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力。Elasticsearch作为一款功能强大的分布式搜索引擎,支持近实时的存储、搜索数据,在京东到家订单原创 2020-08-24 18:01:26 · 287 阅读 · 0 评论 -
抢先目睹:SpringBoot2.4配置文件加载机制大变化
Spring Boot 2.4.0.M2 刚刚发布,它对 application.properties 和 application.yml 文件的加载方式进行重构。如果应用程序仅使用单个 application.properties 或 application.yml 作为配置文件,那么可能感受不到任何区别。但是如果您的应用程序使用更复杂的配置(例如,Spring Cloud 配置中心等),则需要来了解更改的内容以及原因。为什么要进行这些更改随着最新版本 Spring Boot 发布,Sprin原创 2020-08-21 14:44:26 · 955 阅读 · 0 评论 -
一个超牛逼的 GitHub 项目,标星高达55.3Kstar,附项目源代码
一Java面试指南今天给大家分享一份【Java 面试 + Java 后端技术学习指南】:一份通向理想互联网公司的面试指南,包括 Java,技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、分布式、数据库(MySQL、Redis)、Java 项目实战等, 新鲜出炉!此手册内容专注 Java面试 ,这是本人花费了半年的时间总结的【Java 面试 + Java 后端技术学习指南】,目前本人已经拿到了腾讯等大厂offer,只要大家把这上面的知识点都搞明白,进入前 50 的互联网公原创 2020-08-17 15:07:50 · 290 阅读 · 0 评论 -
提高自己的并发技能,先从锁优化开始
锁是最常用的同步方法之一。在高并发的环境下,激烈的锁竞争会导致程序的性能下降。对于单任务或者单线程的应用而言,其主要资源消耗都花在任务本身,它既不需要维护并行数据结构间的一致性状态,也不需要为线程的切换和调度花费时间。对于多线程应用来说,系统除了处理功能需求外,还需要额外维护多线程环境的特有信息,如线程本身的元数据、线程的调度、线程上下文的切换等。并行计算之所以能提高系统的性能,并不是因为它"少干活"了,而是因为并行计算可以更合理地进行任务调度,充分利用各个CPU资源。如何提高锁性能减少锁持有时转载 2020-08-14 22:33:08 · 216 阅读 · 1 评论 -
秒懂!七大理由:为什么使用MySQL的NoSQL?(蚂蚁金服架构师告诉我的)
前言MySQL 8.0中一个很棒的新功能是文档存储。 现在使用MySQL,您可以将JSON文档存储在集合中,并使用CRUD操作对其进行管理。NoSQL现在是MySQL的一部分! 而不是MongoDB和MySQL的混合,现在你可以消除MongoDB并与MySQL合并!这是NoSQL和SQL在同一个数据库服务器上的历史性汇集 !要将MySQL 8.0用作文档存储,您需要安装X插件(默认情况下从8.0.11开始)。 该插件支持[X DevAPI],提供编程接口。 使用X协议与MySQL服务器通原创 2020-08-13 20:27:53 · 292 阅读 · 0 评论 -
终于有人把 Docker 讲清楚了,别再说不会 Docker 了!
图片来自 Pexels本文我们就来探索一下 Docker 的神秘世界,从零到一掌握 Docker 的基本原理与实践操作。别再守着前端那一亩三分地,是时候该开疆扩土了。讲个故事为了更好的理解 Docker 是什么,我们先来讲个故事:我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。结果,住了一段时间,心血来潮想搬到海边去。这时候按以往的办法,我只能去海边,再次搬石头、砍木头、画图纸、盖房子。烦恼之际,跑来一个魔法师教会我一种魔法。这种魔..原创 2020-08-12 20:59:56 · 202 阅读 · 0 评论 -
还困扰在list集合中重复的元素?看完这篇你就知道如何去除了!
在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛选出没有重复的对象。比较暴力的方法,就是根据业务需求,通过两层循环来进行判断,没有重复的元素就加入到新集合中,新集合中已经有的元素就跳过。操作例子如下,创建一个实体对象PenBean,代码如下:/***笔实体*/publicclassPenBean{/**类型*/privateStringtype;...原创 2020-08-11 21:26:10 · 812 阅读 · 1 评论 -
API网关在微服务中的应用
前言现在的互联网产品技术架构,如果没有上微服务架构,都感觉被同行鄙视,太low了。在微服务架构中,不同的微服务有不同的请求地址,各个微服务之间通过互相调用完成用户请求。客户端要完成用户请求,需要调用很多微服务接口。比如:用户查看一个商品详情页,详情页包含了商品基本信息,商品价格,库存信息,评论信息,促销活动信息等,而这些信息是不同的微服务提供的;如:库存服务,促销服务,评论系统等。用户要查看商品详情页,需要让客户端调用多个微服务,且客户端直接与各个微服务通信,会有以下的问题:1、客原创 2020-08-08 20:57:08 · 231 阅读 · 0 评论 -
java中使用Spring security(二)
上一篇,我们讲述的spring security的基础使用。但是对于一些复杂权限场景,我们需要更高级一些的功能。我们接着往下展示它的高级部分。<security:authentication-manager>的内部高级设置在上一篇的Spring security设置示例中,我设置了authentication-manager来检查登录用户凭证,并使用<user-service>标签中定义的纯文本用户。如下所示,您可以在此处为您的应用程序定义多个用户。<secu原创 2020-08-06 17:48:17 · 362 阅读 · 0 评论 -
Java中使用Spring security(一)
我们今天新开一篇课题,分析一下java程序中的权限安全问题,Spring Security是什么,如何在程序中集成Spring Security。背景阅读本文你应该熟悉基本的Core Java,J2EE和Spring MVC的知识。什么是Spring Security?这是一个基于Java的安全解决方案。它主要适用于基于Spring框架构建的基于Java的Web应用程序。它为基于J2EE的企业软件应用程序提供全面的安全服务。它功能强大,灵活性更高。您可以非常轻松地将spring安全服务插入到原创 2020-08-06 17:45:08 · 195 阅读 · 0 评论 -
最强的Maven核心概述,真心建议收藏
目录1|0一、Maven 概述Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一 款在大型项目开发过程中不可或缺的重要工具。Maven 可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目;Maven 提供规范的管理各个常用 jar 包及其各个版本,并且可以自动下载和引入项目中;Mave原创 2020-08-04 21:35:50 · 167 阅读 · 0 评论 -
强大的骚操作,9种不同的方法帮助你提高国内访问Github的速度
1. GitHub 镜像访问这里提供两个最常用的镜像地址:https://github.com.cnpmjs.org https://hub.fastgit.org也就是说上面的镜像就是一个克隆版的Github,你可以访问上面的镜像网站,网站的内容跟Github是完整同步的镜像,然后在这个网站里面进行下载克隆等操作。2. GitHub文件加速利用 Cloudflare Workers 对github release 、archive 以及项目文件进行加速,部署无需服务器且自带CDN.原创 2020-08-04 16:03:09 · 922 阅读 · 0 评论 -
保姆级教程,如何发现 GitHub 上的优质项目?
前几天,看到一位朋友程序员小浩在文章里分享他的开源项目,上了 GitHub 的趋势日榜单,并且成功排名第一。我表示很酸,因为我也想有一个上千 star 的开源项目,到时候就可以肆无忌惮地吹牛逼了。对于优秀的程序员来说,搜索引擎就该用 Google,找开源项目就该用 GitHub,找答案就该用 Stack Overflow,对吧?如果能够拥有一个 star 数上万的 GitHub 仓库,那简直就是偶像级的开源作者。出去找工作的时候,在简历上就那么一晒,面试官就哑口无言了。不过现实往往比较骨感,来看原创 2020-07-29 18:16:52 · 227 阅读 · 0 评论 -
无情!毫不犹豫地揭开了ArrayList和LinkedList之间的神秘面纱
ArrayList 和 LinkedList 是 List 接口的两种不同实现,并且两者都不是线程安全的。但初学者往往搞不清楚它们两者之间的区别,不知道什么时候该用 ArrayList,什么时候该用 LinkedList,那这篇文章就来传道受业解惑一下。ArrayList 内部使用的动态数组来存储元素,LinkedList 内部使用的双向链表来存储元素,这也是 ArrayList 和 LinkedList 最本质的区别。注:本文使用的 JDK 源码版本为 14,小伙伴如果发现文章中的源码和自己本转载 2020-07-23 13:40:07 · 186 阅读 · 0 评论 -
搞定 CompletableFuture,并发异步编程和编写串行程序还有什么区别?
前言在一篇文章中:不会用Java Future,我怀疑你泡茶没我快全面分析了 Future,通过它我们可以获取线程的执行结果,它虽然解决了 Runnable 的 “三无” 短板,但是它自身还是有短板:不能手动完成计算假设你使用 Future 运行子线程调用远程 API 来获取某款产品的最新价格,服务器由于洪灾宕机了,此时如果你想手动结束计算,而是想返回上次缓存中的价格,这是 Future 做不到的调用 get() 方法会阻塞程序Future 不会通知你它的完成,它提供了一个g..原创 2020-07-21 11:35:37 · 719 阅读 · 1 评论 -
万字长文总结Java虚拟机底层原理知识,一次性给你讲的明明白白!
JVM 内存结构Java 虚拟机的内存空间分为 5 个部分:程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。程序计数器(PC 寄存器)程序计数器的定义程序计数器是一块较小的内存空间,是当前线程正在执行的那条字节码指令的地址。若当前线程正在..原创 2020-07-20 11:27:37 · 426 阅读 · 0 评论 -
读懂 InnoDB 缓冲池(buffer pool) 工作原理,看这篇文章就够了
缓冲池的用处对于使用 InnoDB 作为存储引擎的表来说,不管是用于存储用户数据的索引,还是各种系统数据,都是以页的形式存放在表空间中的,而所谓的表空间只是 InnoDB 对文件系统上一个或几个实际文件的抽象,也就实际数据说到底还是存储在磁盘上的。磁盘的速度很慢,怎么能配得上“快如闪电”的CPU 呢?InnoDB 存储引擎在处理客户端的请求时,当需要访问某个页的数据时,就会把完整的页的数据全部加载到内存中。也就是说即使我们只需要访问一个页的一条记录,那也需要先把整个页的数据加载到内存中。原创 2020-07-14 22:32:58 · 738 阅读 · 1 评论 -
深度分析:java8的新特性lambda和stream流,看完你学会了吗?
1. lambda表达式1.1 什么是lambda以java为例,可以对一个java变量赋一个值,比如int a = 1,而对于一个方法,一块代码也是赋予给一个变量的,对于这块代码,或者说被赋给变量的函数,就是一个lambda表达式//为变量赋值int a = 1;//将代码块赋值给变量var = public void fun(int x){ x+1;}//可以简化var = (x)->x+1;1.2 java为什么要引入lambdalambda是为函数式编程原创 2020-07-14 20:13:31 · 404 阅读 · 0 评论