Java 包管理 java 程序的本质就是在拼接命令行,如何拼接的细节,都由 ide 帮我们实现了。假如我们在程序中添加一个包,我们只需要 java -cp 后面补上包的位置,以及这个包依赖的其他包的位置。 当程序中引用的包越来越多时,带来传递性依赖也会越来越多,要在 Java -cp 后面一个个补上包的位置,并且保证不遗漏传递性依赖的包,并且还要保证包不能同名。这将是一比巨大的工作量,费时费力,还容易出错。 这个 2021-08-26 博客专栏 #Java #Maven
命令行的入门与详解 什么是命令行操作系统都有内核的概念,内核是直接与硬件打交道的。我们通过包裹内核的一层壳( shell )来与内核打交道。 广义的命令行包括一切通过字符终端控制计算机的⽅式 Windows - cmd/PowerShell/Git bash UNIX/Linux系列:sh/zsh/Terminal, etc. 为什么需要命令行 因为基本所有公司 2021-08-26 博客专栏 #命令行
Maven 依赖与插件解析机制 劝退提醒:不了解 maven 坐标机制,没有使用过 maven 插件,不了解 maven 插件命令的,可以关闭文章了。 我们经常在项目中引入包,使用 <dependency> 标签,然后填写包的坐标信息, Maven 就可以帮我们引入该 jar 包。当本地存在该 jar 包时,就从本地引入该 jar 包,否则就从远程仓库引入。 这背后的解析机制是什么呢? 依赖解析机制依赖解析的背后机制 2021-08-26 博客专栏 #Maven
《Maven 实战》笔记 当项目需要被其他项目引用时,使用 mvn clean install 安装到本地仓库,其他项目就可以引用该项目。 我们打包的默认 jar 包不能直接运行的,因为带有 main 方法的信息类不会添加到 mainfest 中( jar 文件中 META-INF/MANIFEST.MF 文件,没有 Main-Class一行)。为了生成可执行的 jar 文件,需要借助 maven-shade-p 2021-08-20 学习笔记 #Maven
Collection 笔记 判断线程安全类的准则当需要在多线程环境下,使用一些类时,我们首先就需要判断当前类是否是线程安全的,否则出现线程安全问题。 准则一 最直接,方便的准则就是查看类的源代码注释,上面提到的集合类都在注释声明了该类不是线程安全的。查找注释的时候可以直接搜索 Thread或者 synchronize关键字。 准则二 查看有没有使用同步语句:java.util.concurrent.* / synchroni 2021-08-18 学习笔记 #Collection
Code Specification 使用条件语句if 语句原则一:要使得正常情况执行代码过程清晰,优先考虑代码正常执行情况。 原则二:不要用 “>” 代替 “>=” 或用 “<” 代替 “<=”。 原则三:正常情况的处理放在 if 后面而不是 else 后面(保证能快速找到代码正常的执行过程)。 原则四:if 子句后面跟随一个有意义的语句,避免空语句。 if-else if-else 语句 2021-08-16
String 首先我们要有一个概念,互联网基本上就只干一件事「处理字符串」。我们看的纷繁复杂的网页,都是通过字节传输的,然后经过一个指定的编码转化成人类能看懂的字符串。因此能处理好字符串是 Web 服务器的基本要求,像 Java,PHP,Python,Ruby等。 String 的不可变性背过一些八股文面试题的人都知道 String 是不可变的,那么问题来了,「不可变的定义是什么?」,「String 是如何保证 2021-08-11 博客专栏 #Java #String
字符串与编码 我们都知道,在网络通信和存储的都是字节流,都是一大串的 0 和 1。不知道大家有没想过,存储既然是 0 和 1,为什么我们看到得都是一个个字符,汉子,英文?是不是计算机在背后偷偷的把字节转化成我们人类能看懂的语言?答案是肯定的。 字符集相关概念既然计算机帮我们把字节转成人类的语言,那么肯定存在着一种映射关系「字节 –> 人类语言的映射」,我们把这种关系称为字符集。把字节转化成人类看懂的字符, 2021-08-07 博客专栏 #Java #字符串
Java 异常体系 在 Java 中,离开方法的手段可以 靠 return 方法返回,而异常是 return 方法之外,离开方法的手段。 在实际工作中,经常会遇到空指针、找不到、文件找不到,等等不计其数的异常情况。那么 Java 中如何处理这些异常呢? try / catch / finally当对一个文件进行写入操作的时候,所使用的 IDE 就会提醒,可能存在异常,需要处理。于是我们按照 IDE 2021-05-27 博客专栏 #Java
初识多线程 在编程学习中,我们都要接触到多线程,多线程会帮系统性能带来很大提升,但是这种提升是风险与收益并存的。因此,学习并掌握多线程原理至关重要。 单线程与多线程既然有多线程,那肯定是有单线程的。那单线程是什么呢?单线程就是在特定时间系统只做一件事,这就和人一样只能「一心一意」,不能「三心二意」。 平时开发中跑的 Java 程序大多都是单应用,对于一些没有什么访问量的系统来说,能勉强支撑。反之,访问量较大的 2021-05-12 博客专栏 #Java #多线程