JVM|内存区域介绍

Java 相较于 C++具有内存自动管理功能,内存管理是个宽泛的概念,它即指实例化对象是的内存分配又指 GC 回收无用的类、对象、变量等。随着 JVM 不断发展,JVM 内存区也在不断变化,这些变化在 Java 语言层面感知不到,因为字节码屏蔽了底层实现,了解 JVM 内存区域是深入学习 Java 的第一步,今天总结一下。

Apache POI|Excel读取导入、解析工具类

操作 Excel 设置单元格样式是比较繁琐的,还有导入导出是设置的 Header 信息,为了简化这些操实现了如下工具类。工具类具有设置单元格的基本背景颜色、字体、字号、字体颜色、边框等,还实现了导入导出、磁盘读写 Excel。

这个工具类来源于我们项目的实践,简化了一些重复性的工作,欢迎尝试,欢迎提出问题。

Windows|将 IDEA 的 Terminal 改造为 Git Bash

环境 win10,idea 2019.3,git 2.23.0

在 Windows 中使用 idea 开发中 git 操作通常在 Git Bash 中进行,操作时总要打开一个 Bash 窗口(如下图),虽然对开发影响不大,但每次都去项目目录还是增加使用复杂性。

Git Bash Window

为了在每次使用 Git 时不打开这个窗口,可以对 idea 的 Terminal 进行改造,这样使用就方便许多了。不对 idea Terminal 改造也可以使用 Git,但终端是 Windows 的 CMD,对于一个习惯使用 Linux 总有些别扭。

改造后 idea 的终端运行的是 Git 的 Shell,可以使用 Linux 的常用命令,同时 Git 的操作输出也有色彩,开发体验直接起飞。

改造效果

SpringMVC|Controller 中使用 Swagger 注解的正确姿势

在使用 swagger 的时候有些注解没有正确使用会导致测试时不方便,导致测试时连数据都传入不到后端,或者 swagger 界面的接口显示了错误的输入组件,这些都是 swagger 的 Comtroller 注解使用的一些细节没有注意到,这篇文章主要针对这方面的注解进行总结,或许能解决使用 swagger 的一些小诟病。

Spring|@Autowired、@Resource、@RequiredArgsConstructor 使用

Spring 的核心是 Ioc 容器和 DI(Dependence Injection)思想,这些提供了 java 对象的管理以及他们之间依赖的管理。bean 的管理是 Spring 自动管理的,而我们只需要使用一些注解(Annotion)。

常用的是 @Resource 和 @Autowired 以及 lambok 的构造器进行注入。

RSS 介绍

我们经常浏览网站,会发现很多网站上有这样的一个图标,点进去是很多 xml 格式的文本。

rss.png

可能有很多人和我有一样的疑惑,见的很多却不知到它是什么,也不知道它的作用。我也属于好奇心比较强的人,经过一番搜索,解开了脑海中关于 RSS 的迷惑,觉得很有趣和实用。

这个小图标标识的功能是 RSS,通常是在博客或者社区类的网站上比较常见。RSS(Really Simple Syndication)是一种信息摘要技术,用来聚合网站的摘要信息,可以把它理解为一个菜谱的目录索引,它只提共文章的标题和内容摘要。

RESTful API 设计规范介绍

RESTful 是目前流行的 API 设计规范,遵守这套规范设计出的 API 可以较好的适用不同类型的客户端,例如:PC/Mobile/Pad…

RESTful 表现层状态转换(英语:Representational State Transfer,缩写:REST)是 Roy Thomas Fielding 博士于 2000 年在他的博士论文[1]中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。

MongoDB 学习笔记

引言

MongoDB 是一种非关系型数据库(NoSQL, Not only SQL),相较于关系型数据库(RDBMS)使用较简单,没有冗杂的数据类型约束。

虽然 MongoDB 是 NoSQL,但它里面也有一些与关系型数据库对应的“名词”.

RDBMSNoSQL
表/关系(table/rela)集合(collection)
元组/记录文档(document)
列/字段(column/field)字段(field)
主键(primary key)_id(mongodb 默认)

前端|Vue路由守卫使用注意事项

路由守卫用来跟踪和处理路由,路由守卫有前置路由守卫和后置路由守卫,分别是:beforeEach、afterEach,从他们的名字中可以清楚了解到,一个是在路由来临前触发,另一个是在路由结束后触发。

在开发中使用 beforeEach 比较多,因为在这个回调函数中可以对路由做很多预处理,例如:对登录进行安全验证,对特定路由拦截,对首页等公开资源进行放行等。

操作系统|存储管理、文件系统、输入和输出系统

1、说一说程序的编译过程

以 C 语言为例:

预处理阶段->编译阶段->汇编阶段->链接阶段

  1. 预处理阶段:读取 c 源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。如对 #include 及宏定义 #define 替换成其真正的内容
  2. 编译阶段:把预处理后的文件(.i 结尾)的文件编译为汇编文件
  3. 汇编阶段:把汇编语言翻译为二进制机器指令(这个过程中把指令变成了可重定位程序)
  4. 链接阶段:把调用的库和函数合并到程序中

2、程序的链接方式

链接方式:

  • 装入静态链接方式
  • 装入时链接方式
  • 运行时动态链接方式