随笔 - 214  文章 - 0 评论 - 11 阅读 - 20万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

07 2021 档案
IO Stream byte[]
摘要:【问题】 在服务器上的两个模块,一个专门处理文件(阿里云OSS)下载的模块A,另一个拿这些文件去处理业务需求的模块B。于是A模块先把文件下载下来,放到服务器上,然后B模块再根据所传过来的文件对象转换成流去处理业务。但是这样一来,服务器上就会多出来很多文件。如图: 如果请求用户一多,文件岂不是要大量积 阅读全文
posted @ 2021-07-31 22:32 长江同学 阅读(51) 评论(0) 推荐(0) 编辑
成长经验系列之七-方法-跳出背了忘忘了背的循环
摘要:今天突然想通了一个问题。 之前看大佬一些经验分享的时候,提到了一个方法,就是要去区分哪些是应该记住的原理性的东西,而哪些又是属于字典式的用的时候再去查的东西。虽然也觉得很对,但是当时是没啥体会的。 看Bilibili上稚辉君的一些分享,就说到了这个问题;在陈皓的经验分享中,也一带而过地说过这个问题; 阅读全文
posted @ 2021-07-28 21:31 长江同学 阅读(76) 评论(0) 推荐(0) 编辑
JVM之GC Roots
摘要:Java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径 来避免垃圾回收机制清除这些对象,那么随着对象数量的增加,总容量触及最大堆的容量限制后就会 产生内存溢出异常。 这里还是第二章的内容。之前早早把第二章的笔记放上去,有点草率了。这里要解释一下什么叫做GC 阅读全文
posted @ 2021-07-27 08:50 长江同学 阅读(290) 评论(0) 推荐(0) 编辑
深入理解Java虚拟机-第三版-第二章JVM内存区域笔记
摘要:第二部分2章节内容 Program Counter Register 占用空间很小,当前线程执行的字节码行号指示器。一般的JVM,字节码解释器的工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。为了线程切换后能恢 阅读全文
posted @ 2021-07-24 21:46 长江同学 阅读(41) 评论(0) 推荐(0) 编辑
JVM之DirectByteBuffer
摘要:DirectByteBuffer 不同于Java Heap,这里的直接内存指堆外内存,JVM之外的一块区域,不受JVM的管控。 DirectByteBuffer该类本身还是位于Java内存模型的堆中。堆内内存是JVM可以直接管控、操纵。而DirectByteBuffer中的unsafe.alloca 阅读全文
posted @ 2021-07-24 21:44 长江同学 阅读(457) 评论(0) 推荐(0) 编辑
成长经验系列之六-方法-习惯养成
摘要:原文链接:https://coolshell.cn/articles/19464.html 这个大牛的博客看得我入迷了。我觉得好多理念确实是优秀的,那么就拿这些理念审视一下自己,并且在行动上做到真正的践行。 1.排斥百度搜索引擎,少订阅微信公众号或者去知乎查阅知识。 --百度这个不用多说了。对于后两 阅读全文
posted @ 2021-07-24 20:50 长江同学 阅读(68) 评论(0) 推荐(0) 编辑
成长经验系列之五-方法-技术分享
摘要:原文链接:https://coolshell.cn/articles/21589.html 在几年的开发工作经验里,多多少少做过一些分享,现在回想起来,从一开始的不自信到后来偶尔也会有一两场自我感觉还不错。但什么是真正好的技术分享,确实没有深入思考过。看到这篇文章,我突然明白了以前哪些地方做的好,哪 阅读全文
posted @ 2021-07-23 21:48 长江同学 阅读(86) 评论(0) 推荐(0) 编辑
JVM之TLAB
摘要:阅读《深入理解Java虚拟机》的过程中,会碰到一些不明就里的名词。虽然大概知道意思,但是如果一眼飘过去,估计过不了多久就会遗忘。这里单独提出来,去查阅资料,先形成自己的理解,再继续往下对比着看。 这里主要说说TLAB(Thread Local Allocation Buffer)的含义。 ————— 阅读全文
posted @ 2021-07-23 20:59 长江同学 阅读(295) 评论(0) 推荐(0) 编辑
JVM之逃逸分析-栈上分配-标量替换
摘要:阅读《深入理解Java虚拟机》的过程中,会碰到一些不明就里的名词。虽然大概知道意思,但是如果一眼飘过去,估计过不了多久就会遗忘。这里单独提出来,去查阅资料,先形成自己的理解,再继续往下对比着看。 原文:但即使只考虑现在,由于即时编译技术的进步,尤其是逃逸分析技术的日渐强大,栈上分配、标量替换优化手段 阅读全文
posted @ 2021-07-22 21:59 长江同学 阅读(543) 评论(0) 推荐(0) 编辑
JVM即时编译器优化
摘要:阅读《深入理解Java虚拟机》的过程中,会碰到一些不明就里的名词。虽然大概知道意思,但是如果一眼飘过去,估计过不了多久就会遗忘。这里单独提出来,去查阅资料,先形成自己的理解,再继续往下对比着看。 原文:Java世界里“几乎”所有的对象实例都在这里分配内存。在《Java虚拟机规范》中对Java堆的描述 阅读全文
posted @ 2021-07-22 21:44 长江同学 阅读(96) 评论(0) 推荐(0) 编辑
Excel打开csv格式文件中文乱码的解决
摘要:【乱码解决】 接到一个需求,需要将PC管理端页面的Excel文件下载改为CSV的格式。据说CSV也是一种比较通用的做法,因为Excel各个版本对于单Sheet的行数都会有限制,大数据量的情况下直接用CSV会方便很多,另外如果使用Excel组装数据,那么接口实现的内存也会占用更多(更多的对象)。 直接 阅读全文
posted @ 2021-07-20 17:19 长江同学 阅读(898) 评论(0) 推荐(1) 编辑
JVM栈帧-局部变量表中引用类型的理解
摘要:《深入理解Java虚拟机》中在描述JVM栈帧的局部变量表时,有这样一段话: 局部变量表存放了编译期可知的各种Java虚拟机基本数据类型(boolean、byte、char、short、int、 float、long、double)、对象引用(reference类型,它并不等同于对象本身,可能是一个指 阅读全文
posted @ 2021-07-19 22:52 长江同学 阅读(262) 评论(3) 推荐(1) 编辑
成长经验系列之四-方法-优质信息
摘要:周末看了极客时间的一些课程,我深深感慨,付费分享的时代已经慢慢在年轻一代中构建起来了。 有很多人会怀念以前那个免费的,盗版横行的时代。但我个人觉得,也许付费时代会对大家更有利。一方面,付费会让真正的大咖下场,分享实打实的干货,不但能够发挥影响,也能有经济上的收益,如果你行,那市场的选择肯定不会错的; 阅读全文
posted @ 2021-07-19 11:45 长江同学 阅读(29) 评论(0) 推荐(0) 编辑
《Code Complete》第一部分纪要
摘要:第一部分,前四章内容,给我的感觉不深入,还没有什么让我觉得特别提神醒脑的内容。但是也还是有一些观点能够让我感到略有体会,可能是自己还是太菜了。这里只做一个简单的纪要。 首先,如果是自己成为一个项目的需求分析者,和整个代码架构和结构的主要设计者,其中提到的几个checkList(需求核对表、架构核对表 阅读全文
posted @ 2021-07-18 20:44 长江同学 阅读(26) 评论(0) 推荐(0) 编辑
深入理解Java虚拟机-JVM内存管理的猜测
摘要:深入理解Java虚拟机-第三版-第二章的内容主要是JVM的内存管理。先不细看这部分内容,这里先写下对于一些问题的思考,以便更好地理解后续内容。 在刚开始接触Java的时候,也曾经看过JVM相关的内容。但是那个时候读到各种文章,一上来就会看到那张经典的JVM内部结构图。而在各种面试中,这些内容也是会被 阅读全文
posted @ 2021-07-18 10:15 长江同学 阅读(46) 评论(0) 推荐(0) 编辑
成长经验系列之三-猜想-技术未来
摘要:看了几个关于编程语言趋势的视频和文章,结合自身的一些工作经历和对技术的猜想,想讲讲自身对于语言趋势和市场趋势的看法。 【不要把路走窄】 1.语言入门难度与内卷 同等条件下,语言入门难度越高,上手的难度越高,这一门语言的从业人员数量越少是毋庸置疑的。但真实的情况会更加复杂,应该是市场需求、上手难度、从 阅读全文
posted @ 2021-07-17 23:10 长江同学 阅读(38) 评论(0) 推荐(0) 编辑
深入理解Java虚拟机-第三版-前言及第一章笔记
摘要:【前言】 JVM隐藏了底层技术的复杂性和机器与操作系统的差异性。建立了统一的平台。C、C++还要去关心物理硬件的兼容。Java解决了这一问题,将软件开发与硬件平台的细节解耦了,节省了程序员的精力,降低了技术门槛。 程序员不用再去关心硬件平台的兼容与内存等资源的管理工作。如果开发人员不了解虚拟机诸多技 阅读全文
posted @ 2021-07-15 20:41 长江同学 阅读(53) 评论(0) 推荐(0) 编辑
float与double的精度问题
摘要:【问题】 在之前的一篇文章中,提到过float和double不能用于金额计算,原因是浮点型数据计算中会产生误差,造成结果不准确。这一篇我们仔细分析这种误差的产生来源。 先看一段代码: public static void main(String[] args) { float a = 34.12f; 阅读全文
posted @ 2021-07-14 23:17 长江同学 阅读(1037) 评论(0) 推荐(0) 编辑
成长经验系列之二-方法-成长分享
摘要:资深技术Leader曹乐:如何成为技术大牛。链接:https://mp.weixin.qq.com/s/QaBTm_9AJC01Isr3LLR3aw 通篇是在讲方法的,具有普适性。我在看的时候,时常能想到自己学东西一些比较失策的地方。这里就是给我们思维上转个弯儿,如果能够在学新东西的时候稍微借鉴一下 阅读全文
posted @ 2021-07-12 22:54 长江同学 阅读(75) 评论(0) 推荐(0) 编辑
成长经验系列之一-方法-成长分享
摘要:来自https://www.bilibili.com/video/BV1C7411F7x3?from=search&seid=2133372842380459026 这是左耳朵耗子(陈皓)在极客时间的一次直播分享。分为三个部分:认识焦虑、认识自我;打牢基础;找到做事的方法,事半功倍。这一篇分享,我在 阅读全文
posted @ 2021-07-12 22:47 长江同学 阅读(66) 评论(0) 推荐(0) 编辑
成长经验系列--序
摘要:昨天看了一个极客时间在Bilibili的视频,主讲人是左耳朵耗子(陈皓),谈技术人员的成长和一些行业经验分享,这里给出链接(https://www.bilibili.com/video/BV1C7411F7x3?from=search&seid=2133372842380459026)。我看完之后感 阅读全文
posted @ 2021-07-11 18:16 长江同学 阅读(50) 评论(0) 推荐(0) 编辑
面向对象
摘要:面向对象的特点是什么?这绝对是一个出现频率很高的初级面试题。为什么说很多参加了很多年工作的coder用面向对象的语言写出来的代码还是面向过程的?到底他们本质的区别在哪里? 【背景】 很多初级的工程师也许会背什么是面向对象的特点,但是切身的体会,可能需要在经过大量的编码之后,才会有些感觉。 这里我们先 阅读全文
posted @ 2021-07-09 22:28 长江同学 阅读(83) 评论(0) 推荐(1) 编辑
MySQL的执行语句查询
摘要:其它组里的同学今天遇到一个难题,使用typeorm过程中insert时而生效,时而无效。他怀疑是这个orm没有提交事务,但是对这个问题不知道该怎么进行验证。 本身对这个框架,并没有过了解。并且由于业务的复杂性,这个问题出现的原因可能性很多。比如数据其实插入了,但是由于某个原因回滚了;也可能如他所说, 阅读全文
posted @ 2021-07-07 22:58 长江同学 阅读(246) 评论(0) 推荐(0) 编辑
业务系统数据库设计经验总结(二)
摘要:从一个生产环境的退款bug说起。 由于生产环境中第三方支付的一些规则不熟悉(第三方支付环境是在每天凌晨进行结账,所以用户的资金池里的金额会被清0,此时用户退款时会提示余额不足无法退款),所以用户在凌晨进行退款时可能会失败。这样一来,系统中日积月累会出现一批由于退款失败而未结算订单。未结算的订单需要再 阅读全文
posted @ 2021-07-07 22:29 长江同学 阅读(196) 评论(0) 推荐(0) 编辑
业务系统数据库设计经验总结(一)
摘要:在最初开始掌控一个完整项目的后端设计与实现落地时,就发现数据库设计决定了整个业务的实现逻辑。所以当时特别想找相关的书籍或者经验资料来给自己充充电,但网上搜到的很多资料,要么就是针对字段本身来讲解怎么选用类型,怎么设置字段长度,要么就是一个简单的实例。没有能够从系统业务设计的角度来讲解如何设计数据库更 阅读全文
posted @ 2021-07-06 09:57 长江同学 阅读(765) 评论(0) 推荐(0) 编辑
知乎LIVE-宋文峰《如何成为一名优秀的程序员》--参考记录
摘要:【一个矛盾】 前期主要是基础的查询算法,而且都是调用底层库;时间长了反而会觉察到底层的算法运用的多 多年工作经验的工程师,底层的算法与逻辑不怎么样 刚出炉的工程师,基础知识很溜,但工程经验很匮乏 -- 所以工作时间长了,越长很多时候基础反而越重要--后面会有怎么学的说明 复习经典教材,新出来的协议要 阅读全文
posted @ 2021-07-05 21:59 长江同学 阅读(113) 评论(0) 推荐(0) 编辑
W3School-JavaScript笔记五
摘要:数组的属性与方法 添加数组元素 var array = ["Cat", "Dog"]; array.push("Fish","Goat"); //此时数组里的元素变成了4个 数组的长度属性 array.length array[array.length] 添加超过长度属性的值 array[6]="P 阅读全文
posted @ 2021-07-04 21:34 长江同学 阅读(46) 评论(0) 推荐(0) 编辑
财务模块中的金额字段类型设置
摘要:【浮点类型计算的误差】 在财务模块的设计中,一定会涉及到金额的处理,其中字段类型的设计很关键,如果采用了float和double类型,计算结果会有误差。 float i = 1.1f; float j = 1f; System.out.println(i - j); //0.100000024 所以 阅读全文
posted @ 2021-07-03 21:51 长江同学 阅读(946) 评论(0) 推荐(0) 编辑
关于技术的成长
摘要:【关于写博客这件事】 初入职场大概1年左右,慢慢从转行不知所措的进入到了一个能够应付日常工作的适应状态。当时手里有一个不大不小的线上项目,也会经常做一些边角料工作,与产品沟通的时候也会抑制不住想要发火。就是从那个时候开始,慢慢接触到写博客,将一些对技术的积累通过文字的方式转变成文章。 但坚持了仅仅几 阅读全文
posted @ 2021-07-01 23:23 长江同学 阅读(86) 评论(0) 推荐(0) 编辑
生产环境财务BUG的排查与总结
摘要:生产环境中执行一个财务业务相关的定时任务,但执行完任务进行数据核对时无法对准。 具体的场景大概可以描述为:一批订单进行分类存储在另一张表中,每个类别的数量统计后放入一个字段中。但最终第一张表进行COUNT(*)计算的结果与第二张表中SUM(orders_by_type)的结果不同,总是差了几单。 想 阅读全文
posted @ 2021-07-01 20:41 长江同学 阅读(172) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示