码上实战
文章平均质量分 81
以理论为基础,以实践为线索,各个击破。
非常王不二
精准阅读,专注写作,公众号《码上实战》。
展开
-
从零手写Spring(二):实例化Bean
前面我们以及实现了一个最简单的容器,那么接下来我们将进一步升级下。看看如何来实现Bean的实例化?原创 2023-02-02 14:59:20 · 118 阅读 · 0 评论 -
从零手写Spring(一):创建简单Bean容器
工作的前面三年,虽然一直在使用Spring,但对它却不甚了解,内心充满无数的疑问,今天一一解开。原创 2023-01-31 11:26:04 · 214 阅读 · 0 评论 -
做一个好的程序员难吗?只需要这10个习惯
如果你想成为一名优秀的程序员,你还需要注意几点,如果你能让以下十项成为你的习惯,那么你就真的可以算是一名优秀的程序员了。原创 2022-05-11 09:48:54 · 246 阅读 · 1 评论 -
开源:如何优雅的实现一个操作日志组件
日志几乎存在于所有系统中,开发调试日志的记录我们有log4j,logback等来实现,但对于要展示给用户看的日志,我并没有发现一个简单通用的实现方案。所以决定为之后的开发项目提供...原创 2022-03-15 08:30:00 · 890 阅读 · 0 评论 -
开源第一站:自定义Spring Boot Starter
starter 是 SpringBoot 中一种非常重要的机制,它可以繁杂的配置统一集成到 starter 中,我们只需要通过 maven 将 starter 依赖引入到项目中,SpringBoot 就能自动扫描并加载相应的默认配置。starter 的出现让开发人员从繁琐的框架配置中解放出来,将更多的精力专注于业务逻辑的开发,极大的提高了开发效率。原创 2022-03-07 10:30:18 · 310 阅读 · 0 评论 -
如何快速实现一个聊天室?
如何快速实现一个聊天室?前些天做了一个网站:https://modubox.cn 其中有个群聊插件,许多人问如何实现的。这里简单说下,为了快速完成群聊功能,我选择从最简单的 WebSocket 开始。什么是WebSocket ?既然要使用它,就需要了解一下它吧。WebSocket其实也是一种基于TCP的网络协议,它与HTTP协议最大的不同是:是一种双向通信协议,在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,而HTTP协议只能客户端主动发起通信。所以WebSocket原创 2021-05-17 17:58:19 · 324 阅读 · 0 评论 -
你并不理解i++和++i
阅读原文: 你可能并不理解i++和++i面对i++和++i,是不是经常忘记两者的区别?你是真的理解它还是只是靠死记硬背记住的它?如果你能以下面第一段的方式解释它,那么可能还不是很理解 i++ ,若果要理解它需要你了解更多的知识。public class Plus { public static void main(String args[]) { int num = 50; num = num++ * 2; System.out.println(原创 2020-06-11 13:44:19 · 274 阅读 · 0 评论 -
故事:走进JVM的世界(图文并茂)
注意!本文较长,建议先收藏在阅读。更多文章可以关注作者公众号:码上实战你也可以 star 我的 GitHub上本文所属仓库:https://github.com/flyhero/MarkNote说明:本文在 Java 8 Hotspot 64位操作系统下构思小强是一个工作3年有余的开发工程师,从他的发量你就可以知道,小强资历还尚浅。最近公司没什么事,他也开始无聊起来了。这天下午...原创 2020-03-25 10:07:25 · 422 阅读 · 2 评论 -
史上最全抽象类和接口的区别
随着JDK的不断迭代,抽象类和接口的区别已经有了些许改变,你是否还停留在JDK 7 的答案呢?定义抽象类定义通过 abstract classpublic abstract class A {}接口定义通过 abstract(默认) interfacepublic abstract interface A {}派生方式子类继承抽象类通过 extends , 单继承...原创 2020-03-24 13:57:07 · 174 阅读 · 0 评论 -
集合去重三境界
王国维在《人间词话》中说过治学三重境界,想要成大事者会经历三个阶段,而数组去重几个方式也显示出了我们所经历的三个阶段,你在哪个阶段呢?给定最简单的整型集...原创 2020-03-18 08:45:00 · 128 阅读 · 0 评论 -
为什么数组下总是从 0 开始呢?
原文地址: 为什么数组下总是从 0 开始呢?这个问题有没有想过?会不会认为为何设计的如此反人类呢?有两种比较好的说法,我们了解下:说法一表示范围的最佳形式,比如表示自然数序列 2,3,···,12,有四种方法:a.2 ≤ i < 13,或者记作[2, 13)。b.1 < i ≤ 12,或者记作(1, 12]。c.2 ≤ i ≤ 12,或者...原创 2019-10-28 12:46:53 · 237 阅读 · 0 评论 -
合并分支使用Merge还是Rebase?
阅读原文:合并分支使用Merge还是Rebase?作为一个有追求的开发者,我一定会选择更好的版本管理工具(Git), 使用中我们难免会在 Merge 和 Rebase 中选择其一用于合并分支。Rebase 和 merge 都是被设计用于集成你所做的改变从一个分支到另一个分支,只是通过不同的方式。虽然目的相同,但不同的方式有不同的优缺点。区别例如:我们有下面的几个commit,merge会将...原创 2019-05-20 19:20:24 · 3362 阅读 · 0 评论 -
把「策略模式」应用到实际项目中
阅读原文:把「策略模式」应用到实际项目中无论你知不知道这个设计模式,但必定在项目中都似曾相识。倘若仅仅聊理论必然枯燥乏味,只有理论和实战相结合方可达到人剑合一的境界。首先,我来说个需求,倘若是你遇到该如何做?你可停留几分钟,想出你的解决方式,可在下方留言,说出你的想法。需求用户有文件上传的需求,而我们要负责对文件进行存储,由于我们的系统可能会单独给个别客户私有化部署(部署尽量少依赖中间件能...原创 2019-04-24 11:27:44 · 235 阅读 · 0 评论 -
造个轮子,我学到了什么
阅读原文:造个轮子,我学到了什么听说的最多的是不是“不要重复的造轮子”?不要被这句话蒙骗了,这句话应该还没说完整,在什么情况下不要造轮子?实际项目中由于工期和质量原因,肯定不希望你造轮子,你造轮子花费时间且质量不如现有的轮子。但是!不造轮子怎么去装X!不造轮子怎么去了解其中原理!不造轮子怎么成长!那在造参数校验器轮子的过程中我学到了什么呢?注解的定义与使用反射的应用Spring A...原创 2019-04-17 10:34:21 · 172 阅读 · 0 评论 -
你和大神之间只差一个高效工具
阅读原文:你和大神之间只差一个高效工具不可否认,顺手的工具能帮助我们提高工作的效率,这里我将列出我数年所用到过的高效工具。1.录屏Gif软件:ScreenToGif推荐:ScreenToGif正如其名,是一款通过录屏来制作Gif动画的软件,虽然文件大小只有几兆,却有非常强大的功能,界面优美,而且完全免费,是我目前用过最好的,强烈推荐!2.接口调试工具:Postman在我们平时开发中,特...原创 2019-03-06 22:03:02 · 307 阅读 · 0 评论 -
【读】Java核心技术卷1
阅读原文:【读】Java核心技术卷1看到这本书时,我的内心是崩溃的,卷1就700多页,但是这本书是很多前辈所推荐的,想必其中必有精华所在,硬着头皮上吧。如何阅读本书拿到书的第一眼肯定去看目录,大概了解一下,各个章节所讲内容。为表对作者的尊重,快读扫读了,译者序、前言和致谢。通过目录了解到,第1,2章所讲概述和环境搭建,对于我来说没有价值,选择忽略。第10,11,12,13章所讲Ja...原创 2019-03-11 17:27:26 · 816 阅读 · 0 评论 -
Java代码执行顺序
阅读原文:Java代码执行顺序程序中代码执行的顺序非常重要,稍有不慎便会是程序运行出错,那么我将结合实例来分析代码中的执行。名词解释首先了解几个名词:非静态代码块直接由 { } 包起来的代码,称为非静态代码块静态代码块直接由 static { } 包起来的代码,称为静态代码块形参比如你定义一个函数void add(int a, int b),这里的a和b就是形参。当你进行函...原创 2019-03-15 19:01:04 · 533 阅读 · 1 评论 -
一个HTTP打趴80%面试者
阅读原文:一个HTTP打趴80%面试者面试一年多,每当我问起面试者对HTTP的了解时,个个回答令我瞠目结舌,这些开发者都有3-5年的经验。请不要让我叫你野生程序员,是时候了解HTTP了,让我们当个正规军。起因面试官:请问你了解HTTP协议吗?前端开发:这不是应该后端清楚的吗?后端开发:这不是前端知道的吗?面试官:……我们先一本正经的来了解下HTTP(不包含传输层TCP),然后总结其中...原创 2019-03-20 12:50:06 · 114 阅读 · 0 评论 -
轻松搞定Java位运算
阅读原文:轻松搞定Java位运算我们日常开发中为运算使用的并不多,但如果能巧妙的使用位运算可以减少运行开销和优化算法,通过Java的源码可知,如HashMap。单位换算bit:位一个二进制数据0或1,是1bit;byte:字节1 byte = 8 bit , 存储空间的基本计量单位一个英文字符占一个字节;1 字母 = 1 byte = 8 bit一个汉字占2个字节;1 汉字 ...原创 2019-03-13 11:52:18 · 116 阅读 · 0 评论 -
这题不会!别说你懂值传递与引用传递
阅读原文:这题不会!别说你懂值传递与引用传递即使工作过一阶段的人也不一定能够理解Java是值传递还是引用传递。若不信,那么来看看下面这道题。题目请先写出你的答案,然后对比下输出结果。public class Test { private String str = new String("码上实战"); private char[] chars = {'星', '期', '一...原创 2019-03-25 14:31:22 · 110 阅读 · 0 评论 -
小而有料的final
阅读原文:小而有料的final(想听文章核心内容语音对话版,请到微信公众号——码上实战,阅读原文)final这块肉虽然小,但不可不知,因为不仅面试可能会问,实际中也常使用。就问你常量声明时你为什么要加final?它有哪些作用?你思考过吗?final通常指被修饰的东西不能被改变的,不能被改变的原因旺往往出于设计和效率的考虑。先看final能修饰什么?修饰变量修饰方法修饰类修饰参数...原创 2019-04-01 15:36:03 · 88 阅读 · 0 评论 -
面试别再问我String了
阅读原文:面试别再问我String了字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。String 简介String定义: public final class String implements java.io.Serializable, Comparable<String>, CharSequence...原创 2019-03-28 18:29:03 · 506 阅读 · 0 评论 -
技术面试中的软技能
阅读原文:技术面试中的软技能作为求职者时,只听别人说如何面试,按部就班的做,没有特别的体会。如今作为面试官,面试别人时,才发现什么才是重要的事情。形象形象包括衣着发型和五官。衣着不必太正式(西装),但也不能够太随意,比如肥胖的T恤和外套。头发最好在面试当天洗洗吹吹,简简单单就好。千万不要把发型弄的太个性,发胶发蜡把头发打理的笔直笔直,锃亮锃亮的,会认为你个性比较张扬,这种人不太容易管理。...原创 2019-04-11 17:22:29 · 347 阅读 · 0 评论 -
不同时重写equals和hashCode又怎样
阅读原文:不同时重写equals和hashCode又怎样!可能一问到equals和hashCode相关的问题,就会有人讲他们的自反性,对称性,一致性,传递性等几条约定了,此时我不得不佩服,这么多约定竟然都能记得,但我不知道你是不是真的理解呢。我不同时重写又能如何呢?我只能说只要你不碰到这几个主,你也没什么事的!为什么不能遇到它们几个呢?因为它们几个会用到hashCode方法。...原创 2019-04-08 18:05:34 · 132 阅读 · 0 评论 -
POI如何高效导出百万级Excel数据?
阅读原文:POI如何高效导出百万级Excel数据?在一个具有统计功能的系统中,导出excel功能几乎是一定的,如何导出excel?导出的数据有多少?如何高效的导出?Excel简介什么是excel就不用介绍了,这里主要说明不同版本下每个sheet下的行列限制。由上面可知 Excel 2003及以下是无法实现单sheet百万级的数据。Apache POI简介Apache P...原创 2019-03-08 17:22:25 · 1352 阅读 · 2 评论