Java 诊断工具 Arthas 常见命令 基本概念 云原生这么多微服务,当然需要一个诊断利器来排查问题。 Arthas 是阿里开源的 Java 诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪 Java 代码;实时监控 JVM 状态。Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供…
Mybatis foreach拼接in sql 时,避免数据误伤、SQL异常的笔记 出现的问题点 <select id="querySaDataByHour" resultMap="sendLogicAreaInfo"> select time, eci, coalesce(rrc_succ_conn_rate,0) as rrc_su…
设计一个高质量的 API 接口 你是否也感同身受? 对接XX业务时,XX业务具备的功能和API全靠跑业务负责人那反复逐个询问、确认。用哪个API;怎么用;有没有限制;等等 各个业务间,甚至同一业务内,API风格不统一。 API命名: 按自然语义全翻译的;按属性角度定义的;按操作角度定义的;动宾、非动宾的;复数、非复数的;等等 API入参: 带Map…
HashMap 的 7 种遍历方式与性能分析 HashMap 遍历 HashMap 遍历从大的方向来说,可分为以下 4 类: 迭代器(Iterator)方式遍历; For Each 方式遍历; Lambda 表达式遍历(JDK 1.8+); Streams API 遍历(JDK 1.8+)。 但每种类型下又有不同的实现方式,因此具体的遍历方式又可以…
Shiro框架快速学习札记 ⼀、权限的管理 1.1 什么是权限管理 基本上涉及到⽤⼾参与的系统都要进⾏权限管理,权限管理属于系统安全的范畴,权限管理实现对⽤⼾访问系统的控制,按照安全规则或者安全策略控制⽤⼾可以访问⽽且只能访问⾃⼰被授权的资源。 权限管理包括⽤⼾⾝份认证和授权两部分,简称认证授权。对于需要访问控制的资源⽤⼾⾸先经过⾝ 份认证,认证通…
解释 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 单例类只能有一个实例。 …
解释 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 优点: 当一个产品族中的多个对…
简单工厂模式,虽然不在23种设计模式中。但是可以认为是工厂模式的一种特殊实现,并且在日常中使用广泛,所以还是值得我们去学习的。 解释 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,是一种创建型的设计模式,关注于实例对象创建。 由一个工厂对象通过判断传入的参数,决定…
介绍 模板方法是一种行为类设计模式。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 模板方法是一个定义在父类的方法(抽象类),具体实现由子类实现 优点: 1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。 缺点: 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大…
一、设计模式的分类 总体来说设计模式分为三大类: (1)创建型模式,共五种: 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种: 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录…
这里推荐一种不容易出错的 “安装” 方法:二进制。 说是安装,其实并不涉及到任何向导程序,总的来说只有两步: 下载并解压 配置环境变量 1.OpenJDK 与 Oracle JDK 的区别 直接说结论好了,基本上可以认为 OpenJDK 在性能、功能和执行逻辑上都和官方的 Oracle JDK 是一致的。 2.以 Centos下安装 JDK 11 …
因为最近自己练手一个项目,需要用到全国省份市区数据,但是呢网上很多都不全或者需要收费才行。 于是就找到了民政局的网站,民政局的全国省份市区数据会定期更新,如果这个都不全那么还有那全对不对,所以就爬取民政局省市区数据,用于地市下拉框三级联动~确保数据的完整性. url:http://www.mca.gov.cn/article/sj/xzqh/198…
Java 15 它不是一个长久支持(LTS)版本。虽然该版本并不是长期版本,但即使再发布新版本也是在此基础上的。 在JDK15中新增了以下新特性: 密封类的使用 隐藏类的理解 instanceof模式匹配 ZGC的功能转正 文本块的功能转正 Records二次预览 EdDSA签名算法重新实现SocketAPI禁用偏向锁定 ShenandoahGC转…
Java 14 它不是一个长久支持(LTS)版本。虽然该版本并不是长期版本,但即使再发布新版本也是在此基础上的。 在JDK14中新增了以下16个新特性: 305: instanceof的模式匹配 (预览) 343: 打包工具 (Incubator) 345: G1的NUMA内存分配优化 349: JFR事件流 352: 非原子性的字节缓冲区映射 3…
Java 13 它不是一个长久支持(LTS)版本。 重点特性列表: 动态应用程序类-数据共享 增强 ZGC 释放未使用内存 Socket API 重构 Switch 表达式扩展(预览功能) 文本块(预览功能) 动态应用程序类-数据共享 JDK5引入了Class-Data Sharing可以用于多个JVM共享class,提升启动速度,最早只支持sys…
Java 12 它不是一个长久支持(LTS)版本。 重点特性列表: Switch 表达式(预览特性) 文件对比增强 Switch 表达式(预览特性) 在 Java 12 中,对 Switch 表达式的写法进行了改进,虽然是一个语法糖的改进,也让 Switch 的代码编写变得更加优雅,如再Java12之前的switch: String day = "…
Java 11是这是 Java 大版本周期变化后的第一个长期支持版本(LTS版本,Long-Term-Support,持续支持到2026年9月),是目前全球使用最多的LTS版本之一。 官方新特性: 本地变量类型 字符串加强 集合加强 加强文件读写 本地变量类型 这个新功能是java10为Java增加一些语法糖 - 简化它并改善开发者体验 var s…
从Java 10 开始,Java的迭代周期缩短为半年,半年发布一个版本。Java10它号称有109项新特性,包含12个JEP。 特性列表 局部变量的类型推断 var关键字 GC改进和内存管理 并行全垃圾回收器 G1 垃圾回收器接口 线程-局部变量管控 合并 JDK 多个代码仓库到一个单独的储存库中 新增API:ByteArrayOutputStre…
REPL (JShell):交互式编程环境。 HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的 HTTPClient API 支持 WebSocket 和 HTTP2 流以及服务器推送特性。 改进的 Javadoc:Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。…
想必绝大部分项目还在运行着Java8。接下来就开始梳理一下吧。 Java8 优势:速度快、代码更少(增加了新的语法 Lambda 表达式)、强大的 Stream API、便于并行、最大化减少空指针异常 Optional; 一、Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据…