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

  • 读编程与类型系统笔记08_面向对象变成的元素

    1. 面向对象编程1.1. (Object-OrientedProgramming,OOP)1.2. 基于对象的概念的一种编程范式1.3. 对象可以包含数据和代码1.4. 数据是对象的状态1.5. 代码是一个或多个方法1.5.1.&nbsp

  • 设计模式之(11)——享元模式

    继续把我们的设计模式捡起,希望我能坚持完这个系列吧,下面我们就进入正题吧。在软件开发过程中,我们需要重复使用某个对象的时候,如果重复地new这个对象,不停地申请内存空间,会造成内存空间的极大浪费,在之后程序运行过程中也可能会产生大量的垃圾对象,给服务器的垃圾回收带来极大压力,那么我们从软件设计的角度

  • 重构

    参数过长影响:方法不易被理解、使用,方法签名容易不稳定,不易维护解决方法:反复使用提炼方法+内联方法,消除多余参数​尽量把方法移进相关的类中​如实体类中的get方法在其他类中没有被调用可以删除​实际工作中,可以结合参数数量、以及自身对业务的理解,在最小知道和保持对象完整性之间进行权衡全局变量影响:可

  • JavaScript笔记

    变量作用域:1、全局变量:在全局作用域下声明的变量​在函数内部没有声明直接赋值的变量也是属于全局变量全局变量:只有浏览器关闭的时候才会销毁,比较占内存资源局部变量:当我们程序执行完毕就会销毁,比较节约内存资源作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值这种结构我们称之为

  • 33 个重要的 JavaScript 概念,你学会几个?

    了解这33个JavaScript概念绝对会让你将来的职业生涯受益无穷。话不多说,直接进入主题!1.调用栈调用栈是解释器(如web浏览器中的JavaScript解释器)跟踪其在调用多个函数的脚本中的位置的机制——当前正在运行什么函数以及从函数中又调用了哪些函数等。2.原始类型(PrimitiveTyp

  • ThreadLocal的八个关键知识点

    前言大家好,我是捡田螺的小男孩。无论是工作还是面试中,我们都会跟ThreadLocal打交道,今天就跟大家聊聊ThreadLocal的八个关键知识点哈~ThreadLocal是什么?为什么要使用ThreadLocal一个ThreadLocal的使用案例ThreadLocal的原理为什么不直接用线程i

  • 深入理解 Synchronized 的锁优化

    我们都知道synchronized关键字能实现线程安全,但是你知道这背后的原理是什么吗?今天我们就来讲一讲synchronized实现线程同步背后的原因,以及相关的锁优化策略吧。背后的原理synchronized关键字经过编译之后,会在同步块的前后分别形成monitorenter和monitorex

  • 流程解耦,封装结果集处理器

    一、前言码农,如何为自己的职业生涯续期?上班就像打怪升级,拿着一把西瓜刀,从南天门砍到北天门。但时间长了,怪越来越凶了,西瓜刀也不得手了。咋办,在游戏里大家肯定是想办法换装备了、买武器了、学技能了,这样才能有机会打通更多的关卡。其实我们作为程序员上班也是一样的,如果一直都以为这点技术够写写CRUD就

  • 初探CTF中特殊框架逆向

    最近做题,逐渐遇到一些非IAT32ASRarm32,64(Linux)框架之外的各种框架的re程序逆向分析。虽然题目难度不大,但着实令人耳目一新。而且这会不会是出题人释放的信号,代表着未来re出题的新方向呢?本着认真严谨的态度,我想应该把它们做一个总结。QT框架程序逆向QT框架简介Qt是一个1991

  • 线上又OOM,我太难了......

    本文转载自微信公众号「石杉的架构笔记」,作者中华石杉。转载本文请联系石杉的架构笔记公众号。今天给大家分享一个我们之前基于dubbo开发一个线上系统时候遇到的内存泄漏生产问题的排查与优化实践经验。相信对于大家多看一些类似的案例,以后对于大家自己在线上系统遇到各种生产问题的时候,进行排查和优化的思路会有

  • New 一个对象在堆中的历程

    小伙伴们大家好呀,我是小牛肉~我写文章的流程一般都是先在看书和看博客的过程中做做笔记,然后过一段时间再把这些笔记总结成文章输出出来,这样一来能够加深影响,二来也不至于文章的质量太低。从这篇文章的草稿笔记到现在决定开始成文,其实已经有一个月了,本来觉得趁着寒假可以顺理成章地脱离恶心的深度学习然后好好地

  • Python为什么不太需要关注垃圾回收呢?

     垃圾回收我们作为Python程序员也是非常幸福的,我们日常不太需要关注内存管理和垃圾回收,是因为CPython的解释器有一套自己的机制来处理。那么,在Python的世界里为什么不太需要关注垃圾回收呢?这是因为Python自己的解释器自动做了垃圾回收相应的处理,在绝大部分场景下是不需要人为

  • 面试官超级喜欢问的 Synchronized 锁

    前言最近技术圈子里因log4j的漏洞炸开了锅。Synchronized锁在面试当中难免会遇到,那么如何完美应对面试官角度刁钻的问题就显得尤为重要。阿巴阿巴以身作则,给大家贡献面试经验。回家等通知面试官:synchronized应该了解吧?讲讲。阿巴阿巴:嗯嗯,了解一些,synchronized是Ja

  • 为什么 JS 中的对象字面量很酷

    在ES6之前,JS中的对象字面量(也称为对象初始化器)是非常基础的。可以定义两种类型的属性:键值对{name1:value1}获取器{getname(){..}}和设置器{setname(val){..}}的计算属性值JS是一种基于原型的语言,因此一切都是对象。在对象创建,配置和访问原型时,必须提供

  • 怎样计算一个 Java 对象大小?这儿有几种方法

     在计算机发展的早期阶段,硬件的发展速度慢,容量小,所以软件开发人员写起代码里对byte、bit都是「斤斤计较」,这才使用写出来的应用能在我们今天看起来那么小的,配置那么低的硬件中运行良好,同时效果惊人。那么计算机发展到今天,硬件看似配置越来越高,但依然架不住你随意写,搞不好应用就挂了。另

  • 什么是连接池?如何实现连接池?

    什么是连接池在实际应用开发中,一般会有很多访问下游的需求(下游包括但不限于服务/数据库/缓存),在并发量很低的时候,通常不会有任何问题的,但是当服务单机QPS达到几百、几千、甚至上万的时候,如果每一次访问还是必须经历建立连接=》收发请求=》关闭连接=》释放资源等步骤,系统的性能必然会急剧下降,甚至会

  • 为什么阿里巴巴建议开发者谨慎使用继承?

     从学习Java的第一天起,我们就知道Java是一种面向对象语言,而学习Java的第二天,我们就知道了面向对象的三大基本特性是:封装、继承、多态。所以,对于很多开发者来说,继承肯定都是不陌生的。但是,继承一定适合所有的场景吗?毫无忌讳的使用继承来做代码扩展真的好吗?为什么《阿里巴巴Java

  • 灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?

     JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆、栈、方法区等介绍的比较清楚。 上图,是一张在作者根据《Java虚拟机规范(JavaSE8)》中描述的JVM运行时内存区域结构画的。很多人都知道Java对象是在堆内存中分配空间的(JIT优化除外),

  • 你与数据科学家只差这 26 条 Python 技巧

     Python是目前世界上***的编程语言之一。因为:1.它容易学习2.它用途超广3.它有非常多的开源支持(大量的模块和库)作者PeterGleeson是一名数据科学家,日常工作几乎离不python。一路走来,他积累了不少有用的技巧和tips,现在就将这些技巧分享给大家。这些技巧将根据其首

  • Java内存泄漏的引入

    Java最显著的优势之一是内存管理。您只需创建对象,Java垃圾收集器负责分配和释放内存。但是,情况没有那么简单,因为Java应用程序中经常发生内存泄漏。本教程说明什么是内存泄漏,为什么会发生内存泄漏,以及如何防止内存泄漏。1.什么是内存泄漏内存泄漏的定义:应用程序不再使用对象,但是垃圾收集器不能删

推荐阅读