抽象类与抽象方法抽象类可以没有抽象方法,但是有抽象方法的类一定是抽象类,抽象类是不能new的。当一个类继承抽象类,必须重写父类中的所有抽象方法,否则无法被实例化,除非该类也是抽象类。在模板方法模式中的应用使用抽象类,定义抽象方法,从而达成对子类的约束。p...
阅读全文...
Java `synchronized` 机制详解:实例锁与类锁,普通方法锁与静态方法锁的区别
synchronized锁实例class Dog {
public void bark() {
synchronized(this) {
System.out.println(Thread.currentT...
阅读全文...
阅读全文...
云服务器安装MinIO搭建私人存储服务
关于软件安装的前置知识1. 官方仓库中的软件包如果你想安装的软件包已经在你的 Linux 发行版的官方仓库中(例如 Ubuntu),你可以直接使用以下命令:sudo apt install <软件包名>这会自动从官方仓库下载安装和安装该软件包...
阅读全文...
阅读全文...
组合与继承,接口与抽象类:关于 Java 设计哲学的两点思考
组合优于继承——为什么这么说?在面向对象设计中,我们经常会遇到“继承”和“组合”这两种复用代码的方式。许多人听过一句经典的话:“组合优于继承”。这句话到底是什么意思?为什么组合会被认为比继承更好用呢?继承和组合的本质区别可以把继承想象成“焊接”——父类和...
阅读全文...
阅读全文...
Linux不同发行版体验
依稀记得当时听 Frank 讲 Linux 课,他说要体验不同系列的 Linux,每个发行版差不多试三个,做好总结笔记,出去就能和别人装逼了——哈哈哈。当时我急于求成,也没能真正深度体验多个发行版,直到现在也只摸过 Ubuntu、Fedora、CentO...
阅读全文...
阅读全文...
Linux常用基础目录及作用速览
最近倒腾 Typecho 和兰空图床常常要用到 /var/www/ 和设置权限,于是整理一下 Linux 常用基础目录及作用。/ — 根目录系统的起点,所有文件和目录都挂载在这里。/etc — 配置文件系统和服务的配置文件都在这里,例如:/etc/ngi...
阅读全文...
阅读全文...
选用Lsky Pro搭建私人图床
之前有用PicGo+github搭建私人图床,但是github必须设置仓库为公共的,担心有隐私安全。所以这回选用兰空图床在阿里云服务器上搭建一个私人图床。第一步:准备环境sudo apt update && sudo apt upgrad...
阅读全文...
阅读全文...