![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DIY
文章平均质量分 76
帷幄庸者
这个作者很懒,什么都没留下…
展开
-
架构实战体会,结合《蔡学镛:架构的5个观察角度》
架构实战体会,结合《蔡学镛:架构的5个观察角度》架构是结构化的表征,结构重在看 ,会看才能发现其中的别有洞天之美。研究物理结构常常说:“横看成岭侧成峰,远近高低各不同”,通过不同的视角,会有不同的表征,如俯视图、正视图、侧视图,我们会有抽象思维能力(刻意练习),快速形成空间抽象图像。软件架构也是同样的思考方式,需要能够通过多视角观察,才能体会其门道,才能体会架构之美。在我日常的实战中,更多的是关注业务架构(需求)——>产品架构(功能、结构、行为)——>技术架构——>组织架构。重点说一下原创 2021-10-09 15:45:17 · 1171 阅读 · 0 评论 -
DIY主题讨论20:哈希码的计算
DIY主题讨论20:哈希码的计算1)自主选择一个类,说明它hashCode方法的设计理念和代码核心逻辑。2) 举例说明。HashCodehashCode意义在编写类的时候,如果覆盖了Object的equals方法,那么必须要覆盖hashCode方法,并且如果两个对象用equals方法比较返回true,那么这两个对象hashCode返回的值也必须是相等的,并且对于同一个对象,equals...原创 2019-10-29 01:14:42 · 313 阅读 · 0 评论 -
DIY主题讨论15:微服务
【DIY主题讨论15:微服务】微服务的价值是什么?微服务的价值个人觉得最核心的是“小”,将服务变小。服务变小,降低开发人员学习成本:对于一个庞大的单体应用,庞大的代码,复杂的架构往往会使开发者望而生畏。服务变小,降低修改代码的难度:代码量越大,特别是祖传代码越多,代码间关联性越多,因代码修改而引入的bug会越多,服务变小,也就意味着修复缺陷或者增加新功能受过去的影响会越小。服务变小,但...原创 2019-08-28 10:42:43 · 230 阅读 · 0 评论 -
DIY主题讨论12:ThreadLocal的问题根源
DIY主题讨论12:ThreadLocal的问题根源ThreadLocal理解ThreadLocal意义:实现对象在线程内的透传,可以跨类跨方法传递数据ThreadLocal变量的定义:ThreadLocal变量必须定义为static,非static的threadLocal也就失去了跨类跨方法传递数据的能力。private static final ThreadLocal<T&...原创 2019-07-13 18:44:19 · 305 阅读 · 3 评论 -
DIY主题讨论11:对象引用类型
#【第11次讨论主题:对象引用类型】用自己接触的业务场景或自己的理解角度说明软引用和弱引用的价值(若有代码可附上)概念理解在jvm中主流的垃圾回收通过对象的可达性分析来确定对象是否回收,有四种饮用类型:强引用、弱引用、软引用、虚引用强引用:JVM中默认的对象引用方式,通过强引用指向对象,只要有强引用存在,就可以表明对象还活着。任何强引用对象都不能被垃圾回收,当内存空间不足,Jav...原创 2019-06-15 00:34:43 · 276 阅读 · 0 评论 -
DIY主题讨论3:XY问题
你遇到过最山寨的问题是什么曾经一个稳定运行的老项目突然崩了,线上由于历史原因项目框架配置不完善,执行日志都被吞掉了,问题现象是涉及一张业务表的查询接口查不到数据。第一反应是先把日志搞出来,最后是抛了一个SQLException:Incorrect DECIMAL value: ‘0’ for column ‘’ at row -1,看字面意思是数据值的意思不对,网上对这个问题的解决办法是更改sq...原创 2019-06-01 13:50:53 · 262 阅读 · 0 评论 -
DIY主题讨论1:学习之学习
本源的学习动机本源:指源头,借指事物的根源,起源.动机(motivation):激发、维持并使行为指向特定目的的一种力量。学习动机:学习动机是指引发与维持学生的学习行为,并使之指向一定学业目标的一种动力倾向。包含学习需要和学习期待两个成分。本源的学习动机指激发驱动个人自主学习的最深层次的原因动力。在本源的学习动机中,划分为如下四个维度:生存与发展、个人价值、个人情感、外界因素。生存...原创 2019-06-01 13:48:15 · 378 阅读 · 0 评论 -
DIY主题讨论6:泛型
【DIY主题讨论6:范型】1. Java如果没有泛型会有什么灾难?泛型是参数化类型,在使用时告诉编辑器使用什么类型。程序可控性:泛型有限定类型,泛型可以使程序执行时的类型是确定的,避免了程序的不可控性。在泛型引入之前,对于不确定类型需要使用Object,然后类型强转,此处带来的问题,Object含义不清,使代码不易懂,同时类型无界限限定,很可能会想当然使用错误类型。泛型的引入,在开发是对类...原创 2019-06-01 13:43:56 · 148 阅读 · 0 评论 -
DIY主题讨论2:如何坚持
讲一个学习中坚持不懈的案例我在学习中的坚持来源于长跑,我本身并不擅长跑步也没有形成每日跑步的习惯,但是当下定决心要跑十公里二十公里一定能跑下来,之所以选择长跑就是为了体会坚持的感觉,在开始跑步的时候会比较轻松,跑到两公里左右,身体便感觉不适,这时大脑里开始出现停下或者偷懒的念头,这时坚持和放弃念头打架就开始打架,转移注意力到每一个跑步的循环或者去思考些其他事情或者看看路上的美景,再给自己定个小目...原创 2019-06-01 13:41:51 · 150 阅读 · 0 评论 -
DIY主题讨论5:条件控制
二、 如何解决if-else多层嵌套的问题?使用策略模式,if-else中执行的逻辑可以理解为策略,可以将策略方法抽离成接口与实现,然后通过工厂类创建对象实现策略逻辑,这样可以是解决逻辑比较清晰,后期维护增加修改策略也吧比较方便。使用状态模式,if-else的设计思想是当什么条件下做什么事情,而状态模式则是将不同的操作与不同的状态值对应,通过设置状态值来控制逻辑的执行。此处还可以拓展使用二进...原创 2019-06-01 13:39:26 · 178 阅读 · 0 评论 -
DIY主题讨论7:Lambda表达式
【DIY主题讨论:Lambda表达式】函数式编程是什么函数式编程,是一种使用函数进行编程的方式,一个“函数”对应于一个数学函数:它接受零个或多个参数,生成一个或多个结果,并且不会有任何副作用,函数式函数无论在何处、何时、何地对于同样的输入总会返回相同的结果。一、函数式编程优劣势对比匿名类与Lambda表达式代码简洁,相较于匿名内部类,Lambda表达式大大简化了代码量,代码可读性也会...原创 2019-05-31 23:16:29 · 154 阅读 · 0 评论 -
DIY主题讨论8:锁
【第8次讨论主题:锁】1)锁有哪些,分别用来干嘛?锁来源于数据同时被多客户端修改,五花八门的锁其实就是在特定的场景下给出优化解决方案,解决问题的同时也引入了新的问题。乐观锁与悲观锁乐观锁与区别悲观锁的是加锁心态,悲观锁认为自己使用数据时总会有其他线程修改数据,因此悲观锁采取同步措施,对资源加锁,同一时间只有一个客户端(java里指线程,数据库指连接)可以操作数据,synchroniz...原创 2019-05-31 23:14:38 · 227 阅读 · 0 评论 -
DIY主题讨论9:浮点数
#【第9次讨论主题:浮点数】1)包装类Float中为什么有两个常量来表示最小值:MIN_VALUE和MIN_NORMAL?MIN_NORMAL = 2^(-126):A constant holding the smallest positive nonzero value of type最小正非零值,对应于IEEE754浮点数标准MIN_VALUE = 2^(-149):A cons...原创 2019-05-31 23:05:37 · 348 阅读 · 0 评论 -
DIY主题讨论10:集合转数组
#【DIY主题讨论:集合转数组】1)ArrayList.toArray()推荐有参数,还是无参数,为什么?Object[] toArray() :无参方法,返回一个数组,数组包含容器中的所有元素,但是返回时object,会造成类型丢失。< T > T[] toArray(T[] a) :有参方法,返回一个数组,数组包含容器中的所有元素,返回结果的运行时类型和参数数组a的类型相同,...原创 2019-05-31 23:02:48 · 147 阅读 · 0 评论