开发环境-IntelliJ IDEA2023
Java 开发环境这里用 IntelliJ IDEA 2023.2.2 走一遍安装和常用设置。刚接触 Java 的同学建议先用一周纯文本编译器,更容易体会底层怎么跑。用 Java 17 搭配 Spring Boot 3 时,IDEA 要用 2021 及以上。 下文按原文记下 2023.2.2 的安装…
Java 开发环境这里用 IntelliJ IDEA 2023.2.2 走一遍安装和常用设置。刚接触 Java 的同学建议先用一周纯文本编译器,更容易体会底层怎么跑。用 Java 17 搭配 Spring Boot 3 时,IDEA 要用 2021 及以上。 下文按原文记下 2023.2.2 的安装…
上节我们跑了两个容器:Web 项目 + Redis。依赖的第三方软件越多,要管的容器就越多,每个都要单独配置、指定网络。这节用 docker-compose 把多个服务写进一份描述,一键跑起来,并演示发布到阿里云镜像仓库。 系列前文: Wsl2安装CentOS7 Docker 简介和安装 Docke…
为自己的 Web 项目构建镜像:把代码和依赖写进 Dockerfile,docker build 打成安装包再 run。改代码不想每次重建,就把目录挂进去;要连 Redis,就把两个容器放进同一网络。 系列:1. Wsl2安装CentOS7 · 2. Docker 简介和安装 · 3. Docker…
Docker 装软件的优点很直接:一条命令、镜像现成、不管宿主机发行版,Linux 专享软件也能跑,多版本还能共存,用完就丢。 系列:1. Wsl2安装CentOS7 · 2. Docker 简介和安装 · 3. Docker 快速安装软件 · 4. 制作自己的镜像 · 5. Docker-Comp…
IntelliJ IDEA 插件装对了,日常能少很多来回切换。下面按原文把常用插件和截图都留下,文末清单也不裁。 主题、时序图、括号上色、MyBatis、翻译、Restful 跳转,基本覆盖写 Java / Spring 的一天。 插件指数一句话 Solarized Themes☆☆☆☆☆从 vim…
京东会员体系有注册、铜牌、银牌、黄金、钻石五档,不同等级享有不同优惠。程序里若用一堆 if-else 硬判,后期很难维护。更合适的是设计模式里的策略模式:针对不同等级会员,每一种特权对应一种优惠策略。 定义:定义算法簇,分别封装起来,让它们可以互相替换;此模式让算法的变化独立于使用算法的客户。参考:…
单例模式是常用设计模式,核心结构里只包含一个被称为单例的特殊类:一个类只有一个实例,也就是只有一个对象实例。 系统里有些类必须唯一。例如可以有多个打印任务,但同时只能有一个在工作;售票时一共 100 张票、多个窗口同时卖,余量必须是单例,否则会超售。窗口对象如果不唯一化,会弹出多个窗口;内容相同却重…
把行为当作数据传递,是 Java 8 函数式编程的关键:函数接口、Stream 和 Collector 让同一份列表可以叠上求和、分组、排序等多种计算。 下文从 Function / Stream / Collector 读到自定义聚合器和 Pipeline,再看精练、通用、可测和组合这几项实际收益…
JDK 5 引入 Future,把「把任务交出去、过会儿再取结果」写成接口;Java 8 的 CompletableFuture 补上回调和组合,才算有完整的 Future / Promise / Callback。 Future 模式:我有任务交给 Future,期间我可以干别的,稍后再 get。…
旧日期 API 不好用:Date / Calendar 不是线程安全的,日常加减和时区都要绕弯,不少人只能上 joda-time。 JSR 310 给 Java 8 加了 java.time:ZoneId、Instant、LocalDate、LocalTime、LocalDateTime、Clock…