深圳幻海软件技术有限公司 欢迎您!

  • java设计模式【单例模式】

    合集-设计模式(4)1.java设计模式简介(总结)05-122.java设计模式【单例模式】05-123.java设计模式【工厂方法模式】05-174.java设计模式【抽象工厂模式】05-17收起Java设计模式【单例模式】单例模式单例模式(SingletonPattern)是一种创建型设计模式

  • 23种设计模式之设计模式介绍(一)

    1,设计模式概述1.1软件设计模式的产生背景"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(ChristopherAlexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些

  • 装饰模式、泛型、序列化重构Caffeine解决缓存不一致的问题

    一、前言Caffeine是一个高性能的Java缓存库,底层数据存储采用ConcurrentHashMap优点:因为Caffeine面向JDK8,在jdk8中ConcurrentHashMap增加了红黑树,在hash冲突严重时也能有良好的读性能。多线程环境中,不同的key可以并发写,相同的key会加锁

  • Java 并发编程解析 | 如何正确理解Java领域中的并发锁,我们应该具体掌握到什么程度?

    苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道!——朝槿《朝槿兮年说》写在开头对于Java领域中的锁,其实从接触Java至今,我相信每一位JavaDeveloper都会有这样的一个感觉?不论是Java对锁的实现还是应用,真的是一种“群英荟萃”,而且每一种锁都有点各有各的驴,各有各的本,各

  • JVM 的栈上分配、TLAB、PLAB 有啥区别?

    ​大家好,我是树哥。我们在学习G1回收器的时候,一般我们都会接触到TLAB和PLAB这两个术语。它们都是为了提高内存分配效率而存在的,但它们和栈上分配有什么区别呢?今天,就让树哥带着大家盘一盘。栈上分配稍微了解过Java虚拟机内存结构的同学都知道,在Java虚拟机中有两个关键的存储数据节点,那就是:

  • 把 SpringBoot 部署到 K8s,竟然翻车了!

    今天这篇我们再更新一个怎么把SpringBoot应用部署到K8s上,本来我是想偷偷懒、照猫画虎把上节课的改改镜像名不就行了,没想到,居然翻车咧,真的是想偷点懒都不行啊。具体怎么翻车,咱们先往后看,在总结里再说说,我对Go相比于Java在云原生里的优势。好了,咱们还是先假装自己都是是小白哈,让我带大家

  • JS 从原型链到继承——图解来龙去脉

    前言在面向对象编程中,继承是非常实用也非常核心的功能,这一切都基于面向类语言中的类。然而,javascript和面向类的语言不同,它没有类作为蓝图,javascript中只有对象,但抽象继承思想又是如此重要,于是聪明绝顶的javascript开发者们就利用javascript原型链的特性实现了和类继

  • 如何正确使用 ThreadLocal,你真的用对了吗?

    前言当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了。ThreadLocal又称线程本地变量,使用其能够将数据封闭在各自的线程中,每一个ThreadLocal能够存放一个线程级别的变量且它本身能够被多个线程共享使用,并且

  • 必知必会的数据建模思想,都在这了

    导读:在不熟悉软件开发的业务人员看来,软件似乎是一种很神秘的事物。因为对软件不熟悉,这些人对软件的看法往往容易走入两个极端:要么认为软件很简单,要么认为软件是万能的。如果再加上软件开发或数字化从业人员不懂或不熟悉业务,业务与IT之间的鸿沟就会越来越宽、越来越深。在笔者看来,身处数字化时代,大家都应该

  • 详细了解 Synchronized 锁升级过程

    前言首先,synchronized是什么?我们需要明确的给个定义——同步锁,没错,它就是把锁。可以用来干嘛?锁,当然当然是用于线程间的同步,以及保护临界区内的资源。我们知道,锁是个非常笼统的概念,像生活中有指纹锁、密码锁等等多个种类,那synchronized代表的锁具体是把什么锁呢?答案是——Ja

  • 手绘六张图彻底搞懂动态代理

    本文转载自微信公众号「爱笑的架构师」,作者雷小帅。转载本文请联系爱笑的架构师公众号。在讲解动态代理前我们先聊聊什么是静态代理。静态代理假设有一天领导突发奇想,给你下发了一个需求:统计项目中所有类的方法执行耗时。在拿到需求的那一刻,脑海中冒出来的第一个想法是:在每个方法的第一行和最后一行加上时间埋点,

  • 再见,单身狗!Java 创建对象的六种方式,总有一种适合你......

    背景又到一年一度的情人节了,祝各位程序员有情人终成眷属!今天公众号本来有个广告推广的,被临时鸽了,唉。。这个情人节有点伤,还好对象没鸽。。情人节写点什么好呢?!有座的各位肯定还有不少单身dog吧?没关系,栈长本文教你创建对象的6种方式,从低端到高端,各种创建方式,总有一个适合你,没有对象的自己生成一

  • 原来这才是动态代理!!!

    各位小伙伴们大家吼啊!我是cxuan,距离上次更新已经有段时间了,临近过年了,项目这边也比较忙,而且最近很多时间都花在看书、提升自己上面,文章写的比较拖沓,这里我要自我反思(其实我已经筹备了几篇文章,就等结尾了,嘿嘿嘿)。我们上篇文章聊了一波什么是动态代理,然后我又从动态代理的四种实现为切入点,为你

  • 老大难的GC原理及调优,这全说清楚了

    【51CTO.com原创稿件】本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspotjdk1.8,学习之后你将了解如何对生产系统出现的GC问题进行排查解决。 图片来自Pexels内容主要如下:GC基础原理,涉及调优目标,GC事件分类、JVM内存分配策略、GC日志分析等。CM

  • 项目中为什么一定要用Spring?什么是Spring四种策略?

     相信每个Java开发人员在工作、学习中都了解Spring怎么使用,但对于一个初级的开发工程师来说,仅仅了解怎么使用,能够很快的通过Spring来完成任务,这应该是足够了,但是呢,如果你还想向更高的级别去前进,系统的学习,掌握它的底层原理是必不可少的。每个人在面试的时候,Spring应该都

  • 前端理解依赖注入(控制反转)

    前端的技术的极速发展,对前端同学来说也是一个不小的挑战,有各种各样的东西需要学,在开发过程中经常会被后端同学嘲讽,对于前端来讲根本就不存在类的概念,很多时候需要把大量的业务代码堆积在页面或者组件中,使组件和页面变得特别的臃肿,一旦业务逻辑复杂的情况下,及时组件化做的很好,仍然避免不了难以维护。之所以

  • 面试官:您能说说序列化和反序列化吗?是怎么实现的?什么场景下需要它?

    序列化和反序列化是Java中最基础的知识点,也是很容易被大家遗忘的,虽然天天使用它,但并不一定都能清楚的说明白。我相信很多小伙伴们掌握的也就几句概念、关键字(Serializable)而已,如果深究问一下序列化和反序列化是如何实现、使用场景等,就可能不知所措了。在每次我作为面试官,考察Java基础时

  • 区块链技术火热程度有目共睹 主要开发语言了解一下

    其实从2009年开始到现在,区块链的技术火热程度一直是处于逐年增加的状态,其他各大行业的巨头也正疯狂的布局之中,一定要赶上一场商业大战,至于这场战争什么时候打响,有些人认为或许在今年,或许在将来的两三年里,所以目前为止,我们还没有办法去做出准确的判断。但是咱们可以先做好准备,下面给大家整理了四种关于

  • 中高级前端必须了解的JS中的内存管理

    前言像C语言这样的底层语言一般都有底层的内存管理接口,比如malloc()和free()用于分配内存和释放内存。而对于JavaScript来说,会在创建变量(对象,字符串等)时分配内存,并且在不再使用它们时“自动”释放内存,这个自动释放内存的过程称为垃圾回收。因为自动垃圾回收机制的存在,让大多Jav

  • 理解Python的Dataclasses(一)

    如果你正在阅读本文,那么你已经意识到了Python3.7以及它所包含的新特性。就我个人而言,我对​​Dataclasses​​感到非常兴奋,因为我等了它一段时间了。本系列包含两部分:Dataclass特点概述在下一篇文章概述Dataclass的​​fields​​ 介绍​​Dataclas

推荐阅读