自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 可能是史上最全的权限系统设计(转)

权限系统设计前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。目前在公司负责权限这块,所以对权限这块的设计比较熟悉,公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心,订单中心,用户中心,仓库系统,小程序,多个APP等十几个系统和终端1...

2019-12-31 14:40:01 180

原创 程序版本(分支)管理策略

程序版本(分支)管理策略当前很多项目实施现场都采用登记簿(excel)的方式管理程序版本,而且每次版本部署都是采用增量发布class文件的方式。这种手工的管理方式,生产处理效率低下,开发人员或版本管理人员容易遗漏代码。如果管理不善,线上代码已经无法找到其源代码,还得靠反编译class的方式获取源代码。当今互联网化的IT开发模式下,程序版本更迭快,运维需要打包、测试、发布等操作都线上自动...

2019-12-31 09:34:25 1364

原创 springboot异步调用@Async

1.使用背景在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@Async。2.异步处理方式调用之后,不返回任何数据。调用之后,返回数据,通过Future来获取返回数据3.@Async不返回数据使用@EnableAsync启用异步注解@Configurati...

2019-12-27 15:50:07 161 1

转载 如何优化JAVA代码及提高执行效率(转)

可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用java.lang.String类和java.ut...

2019-12-27 15:14:00 359

原创 有哪些通俗易懂的例子可以解释 IaaS、PaaS、SaaS 的区别?

首先,什么是“云”?很多年前,我们家住一小平房,喝水就喝院子里的井水,冬天取暖自己烧煤炉。后来经济状况好了,搬进了楼房,喝水喝上了集中供应的自来水,冬季用上了集中供应的暖气,再也不用打水和掏黑煤球。这就是“云”的基本概念,过去企业数据维护需要恒温恒湿的机房、一排排服务器以及专业的维护人员。现在云服务器成为了公...

2019-12-18 14:54:34 297

转载 一张图看懂IaaS, PaaS和SaaS的区别

译:老夫子原文:https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/ 从小型企业到全球企业,云都是一个非常热门的话题,它是一个非常广泛的概念,涵盖了很多在线领域。 无论是应用...

2019-12-18 14:40:17 760 1

转载 Java中Native关键字的作用

初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法:public native int hashCode();为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。回到顶部一、认识 native 即 JNI,Java Native Interface凡是一种语言,都希望是纯。比如解...

2019-12-16 15:02:05 151

原创 Java-魔法值

魔法值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义。其实说白了就是硬编码。魔法数值使代码的可读性大大下降。而且,如果同样的数值多次出现时,到底这些数值是不是带有同样的含义呢,谁也说不清楚。另一方面,如果本来应该使用相同数值的地方,一旦用错了,也很难发现。因此,我们应极力避免使用魔法数值。解决办法:使用static final 定义常量或使用enum值根据《...

2019-12-04 17:21:38 341

原创 (7)

Java内存模型JMM1、什么是JMM(面试高频) JVM​ JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。JMM从jav...

2019-12-04 17:18:02 145

原创 (6)

异步回调1、概述Future设计的初衷:对将来某个时刻会发生的结果进行建模。当我们需要调用一个函数方法时。如果这个函数执行很慢,那么我们就要进行等待。但有时候,我们可能并不急着要结果。因此,我们可以让被调用者立即返回,让他在后台慢慢处理这个请求。对于调用者来说,则可以先处理一些其他任务,在真正需要数据的场合再去尝试获取需要的数据。它建模了一种异步计算,返回一个执行运算结果的引用,当运算结...

2019-12-04 17:17:21 142

原创 (5)

ForkJoin1、什么是ForkJoin从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。这种思想和HDFS–MapReduce很像(input --> split --> map --> reduce --> output)主要有两步:第一、任务切分...

2019-12-04 17:16:53 93

原创 (4)

Stream流式计算1、流(Stream)到底是什么呢?是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。“集合讲的是数据,流讲的是计算!”特点:Stream 自己不会存储元素。Stream 不会改变源对象,相反,他们会返回一个持有结果的新Stream。Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。2、怎么使用呢?创建一个Stream:一...

2019-12-04 17:16:20 86

原创 (3)

线程池底层工作原理3.1、池化技术程序的运行,其本质上,是对系统资源(CPU、内存、磁盘、网络等等)的使用。如何高效的使用这些资源是我们编程优化演进的一个方向。今天说的线程池就是一种对CPU利用的优化手段。通过学习线程池原理,明白所有池化技术的基本设计思路。遇到其他相似问题可以解决。池化技术前面提到一个名词——池化技术,那么到底什么是池化技术呢 ?池化技术简单点来说,就是提前保存大量的...

2019-12-04 17:15:40 204

原创 (2)

单例模式的探究单例模式可以说只要是一个合格的开发都会写,但是如果要深究,小小的单例模式可以牵扯到很多东西,比如 多线程是否安全,是否懒加载,性能等等。还有你知道几种单例模式的写法呢?如何防止反射破坏单例模式?今天,我们来探究单例模式。关于单例模式的概念,在这里就不在阐述了,相信每个小伙伴都了如指掌。我们直接进入正题:2.1、饿汉式public class Hungry { priv...

2019-12-04 17:14:53 95

原创 从大佬公开课学到的一些知识分享(1)

设计模式概念1.1 什么是设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领...

2019-12-04 17:13:41 200

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除