markdown笔记java

【Java复健指南15】链表LinkedList及其说明

链表LinkedList by Java 之前有写过一些记录(引用),但是忘了乱了,现在重新梳理一遍 链表是Java中List接口的一种实现 定义(引用) 链表(linked list)是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的. 链表由一系列结点(链表中 ......
LinkedList 指南 Java

Java开发学习(五十)----MyBatisPlus快速开发之代码生成器解析

1、代码生成器原理分析 造句: 我们可以往空白内容进行填词造句,比如: 在比如: 观察我们之前写的代码,会发现其中也会有很多重复内容,比如: 那我们就想,如果我想做一个Book模块的开发,是不是只需要将红色部分的内容全部更换成Book即可,如: 所以我们会发现,做任何模块的开发,对于这段代码,基本上 ......
生成器 MyBatisPlus 代码 Java

道长的算法笔记:状态机模型之股票系列问题

(一) 股票系列问题 所谓的股票问题,是一个动态规划状态机模型的系列问题,这些题目来自于LeetCode社区,这些问题非常经典,能够帮助我们理解动态规划的本质,这些问题大多初看之下会令人感觉无从下手,但是一旦掌握相应的方法划分状态之后,很快即可举一反三的写出相应的代码。 股票系列问题合集 LC121 ......
道长 算法 模型 状态 笔记

从Java开源项目中总结出的常见坏实践(Bad Practice)

一些开源项目包含了各种编程的最佳实践供人参考学习和借鉴。但是也有一些开源项目虽然初衷是好的。但是包含了一些代码的坏实践。特别是对于一部分刚入行的大学生来说,可能会给到一些错误的示范。于是在此列举一些项目中的坏实践。 1.方法的用意判断是与否却返回字符串的“0”或者“1” 如果一个方法明确返回是与否这 ......
Practice 常见 项目 Java Bad

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来 —— 感受来自Ehcache的强大实力

提到JAVA本地缓存框架,还有一个同样无法被忽视的强大存在 —— Ehcache!其官网直言不讳的将自己称为“JAVA中使用最广泛的缓存”,那么这份自信与实力从何而来?让我们一起解读下。 ......
Ehcache 缓存 实力 JAVA

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来2 —— Ehcache的各种项目集成与使用初体验

本篇一起实践下Ehcache的各种不同使用方式,来感受下Ehcache的强大与便利。比如独立集成使用,基于JCache方式使用,以及通过Springboot+JCache+Ehcache方式集成使用等。 ......
Ehcache 缓存 项目 JAVA

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存,打破本地缓存天花板

作为JAVA本地缓存综合实力天花板的Ehcache,还提供了对于集群能力的支持,这也使其不仅仅是个单机缓存,更是一个分布式缓存。本篇一起探讨Ehcache的各种集群方案。 ......
缓存 天花 分布式 集群 天花板

【Java】线程池梳理

【Java】线程池梳理 前言 线程池:本质上是一种对象池,用于管理线程资源。在任务执行前,需要从线程池中拿出线程来执行。在任务执行完成之后,需要把线程放回线程池。通过线程的这种反复利用机制,可以有效地避免直接创建线程所带来的坏处。 优点:1、降低资源的消耗。线程本身是一种资源,创建和销毁线程会有CP ......
线程 Java

Apache HttpClient 5 笔记: SSL, Proxy 和 Multipart Upload

HttpClient 版本已经到 5.2.1 了. 在版本4中的一些方法已经变成 deprecated, 于是将之前的工具类升级一下, 顺便把中间遇到的问题记录一下 ......
HttpClient Multipart 笔记 Apache Upload

【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理

finalize方法是什么 finalize方法是Object的protected方法,Object的子类们可以覆盖该方法以实现资源清理工作,GC在首次回收对象之前调用该方法。 finalize方法与C++的析构函数的区别 finalize方法与C++中的析构函数不是对应的,C++中的析构函数调用的 ......
原理 专题 Java 底层 finalize

Java基础类String学习分析

1 String不可变性 String类被声明为 final,因此它不可被继承。 内部使用char数组存储数据,该数组被声明为final,这意味着value数组初始化之后就不能再指向其它数组。 String内部没有改变value数组的方法 String类中所有修改String值的方法,如果内容没有改 ......
基础 String Java

Java关键词synchronized解读

特别说明: monitor在中文书籍有多种翻译,本文档统一使用:对象锁 | 书籍 | 中文翻译 | | | | | 《java编程思想(第4版)》 | 监视器、对象的锁 | | 《深入理解Java虚拟机(第3版)》 | 对象的锁 | | 《Java虚拟机规范(Java SE 8版)》 | 同步锁 | ......
synchronized 关键词 关键 Java

由char和byte的关系引申出去——总结一下java中的字符编码相关知识

由char和byte的关系引申出去——总结一下java中的字符编码相关知识 一、字符编码 手持两把锟斤拷,口中直呼烫烫烫 ​ 在文章伊始,先来复习一下计算机中关于编码的一些基础知识,着重理清以下几个基本概念。 1. 码点(code point) ​ 计算机只能以二进制的形式存储文字,故而计算机中每一 ......
字符 编码 知识 char byte

跟光磊学Java-Windows版Java8开发环境搭建

Java语言核心技术 如果想要开发Java程序/Java项目之前,必须要安装和配置JDK,这里的JDK表示Java8\JDK8,不过下载软件的时候,强烈推荐大家一定要去软件的官网下载,因为官网提供的软件版本是最新的,会修复旧版本遗留的问题,这样我们在使用软件时可以避免一些问题。 1. Windows ......
Java Java-Windows Windows 环境 Java8

跟光磊学Java-macOS版Java8开发环境搭建(基于Intel x86 64-bit)

Java语言核心技术 日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电脑,如果是MacBookPro那么就使用macOS开发项目,因此现在我们开始在macOS系统下搭建Java8的开发环境,如果你的Mac电脑使 ......
Java Java-macOS 环境 Intel macOS

详解JAVA线程问题诊断工具Thread Dump

摘要:Thread Dump是非常有用的诊断Java应用问题的工具。 本文分享自华为云社区《调试排错 - Java 线程分析之线程Dump分析》,作者:龙哥手记。 Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dum ......
线程 工具 Thread 问题 JAVA

用Dockerfile制作一个java应用镜像,ubuntu基础篇

内容介绍: (1) 本章目的,将一个自行开发的java程序webpay-api,制作为docker自定义镜像,并且进行部署。 (2) 实验环境: 物理机:VMware 虚拟机 + CentOS 7.8 x64 Docker:Docker version 20.10.17, build 100c701 ......
Dockerfile 镜像 基础 ubuntu java

Java集合 - HashMap

本篇文章介绍 Java 集合中的 HashMap。 1、HashMap 的底层存储结构; 2、HashMap 的新增操作的处理逻辑; 3、HashMap 的数组扩容机制; 4、HashMap 的查询操作的处理逻辑; ......
HashMap Java

JUC源码学习笔记7——FutureTask源码解析,人生亦如是,run起来才有结果

系列文章目录和关于我 一丶我们在哪里会使用到FutureTask 基本上工作中和Future接口 打交道比较多,比如线程池ThreadPoolExecutor#sumbit方法,返回值就是一个Future(实际上基本上就是一个FutureTask)。ThreadPoolExecutor#sumbit ......
源码 FutureTask 结果 笔记 人生

Triple 协议支持 Java 异常回传的设计与实现

作者:Apache Dubbo Contributor 陈景明 背景 在一些业务场景, 往往需要自定义异常来满足特定的业务, 主流用法是在catch里抛出异常, 例如: public void deal() { try{ //doSomething ... } catch(IGreeterExcep ......
Triple Java

正确理解和使用JAVA中的字符串常量池

前言 研究表明,Java堆中对象占据最大比重的就是字符串对象,所以弄清楚字符串知识很重要,本文主要重点聊聊字符串常量池。Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存。它也被称为String Intern Pool或String ......
常量 字符串 字符 JAVA

90%的Java开发人员都会犯的5个错误

前言 作为一名java开发程序员,不知道大家有没有遇到过一些匪夷所思的bug。这些错误通常需要您几个小时才能解决。当你找到它们的时候,你可能会默默地骂自己是个傻瓜。是的,这些可笑的bug基本上都是你忽略了一些基础知识造成的。其实都是很低级的错误。今天,我总结一些常见的编码错误,然后给出解决方案。希望 ......
错误 人员 Java 90%

Git和Maven的学习笔记

Git 1、Git简介 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCas ......
笔记 Maven Git

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记

目录 为什么我们用 Orleans Dapr VS Orleans Actor 模型 Orleans 的核心概念 结合 OP Storming 的实践 结合 OP Storming 的实践 业务模型 设计模型 代码实现 业务模型 我们可以把关键对象(职位、客户行为记录、线索)参考为 actor 猎头 ......
架构 分布式 Storming 笔记 Actor

如何使用Java获取货币符号?

1. 前言 最近做了一个支付相关的需求,要求在收银台页面显示商品的价格时带上货币符号¥,类似下图中的格式: 最初我是用的下面这样的代码: System.out.println(Currency.getInstance(Locale.CHINA).getSymbol()); 本机测试,正常返回¥,如下 ......
货币 符号 Java

Java 中的接口还可以这样用,你知道吗?

Java 程序员都知道要面向接口编程,那 Java 中的接口除了定义接口方法之外还能怎么用你知道吗?今天阿粉就来带大家看一下 Java 中的接口还可以有哪些用法。 基本特性 我们先看一下接口的基本特性 接口的定义需要使用关键字 interface; 接口定义的所有方法默认都是 public abst ......
接口 Java

东拼西凑学java

前言 随着大环境的影响,互联网寒冬降临,程序员的日子越来越难,搞不好哪天就被噶了,多学点东西也没啥坏处,国内市场java如日中天,出门在外不会写两行java代码,都不好意思说自己是程序员,伪装成一个萌新运维,混迹于各大java群,偷师学艺,略有所获,水一篇博客以记之 本博客仅仅代表作者个人看法,以. ......
东拼西凑 java

Mattermost 笔记

Mattermost 是一个开源、可私有化部署的在线通讯平台,可以和Github、Jira、Jenkins、Gitlab等做集成,所以也可以作为 ChatOps 的一种实现方式。 很早之前为开源项目 boat-house 做的一个教程,今天偶尔翻笔记的时候找了出来,在这里也分享一下。 部署 使用do ......
Mattermost 笔记

【Java面试指北】反射(1) 初识反射

如果你被问到:什么是反射?为什么需要反射、以及反射的应用?你会如何回答呢? 本篇会带大家初识反射,了解反射概念和基本应用。反射的原理以及深入源码的探究将会在后面几篇介绍。 ......
Java

Qwt开发笔记(二):Qwt基础框架介绍、折线图介绍、折线图Demo以及代码详解

前言 QWT开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,本系列旨在系统解说并逐步更新其各种Demo示例 本片文章主要讲解折线图,借助折线图展现一个基础流程框架。 Demo QwtP ......
线图 Qwt 框架 代码 基础