
▼ JavaCore
文章平均质量分 72
主要是java核心技术为主,归纳总结jdk原生核心实现,包括其中使用的设计模式总结。
逆流°只是风景-bjhxcc
当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。
展开
-
【RPC】Apache Thrift系列详解 - 概述与入门
Thrift是一个轻量级、跨语言的远程服务调用框架,最初由Facebook开发,后面进入Apache开源项目。它通过自身的IDL中间语言, 并借助代码生成引擎生成各种主流语言的RPC服务端/客户端模板代码。Thrift支持多种不同的编程语言,包括C++、Java、Python、PHP、Ruby等,本系列主要讲述基于Java语言的Thrift的配置方式和具体使用。本文对Thrift的概念做了相关介绍,体验了一番thrift程序如何编写!原创 2023-03-15 06:45:00 · 1396 阅读 · 0 评论 -
【即时通信】openfire安装和配置讲解
这里选择spark_2_8_3.exe,它自带了一个jre运行环境,因为spark_2_8_3_online.exe默认是32位jre运行环境,64位机器需要指定一个32位jre,不推荐这种方式安装。登录的时候需要设置一下服务器信息,另外,如果登录失败,报certificate_unkown,需要设置一下。一、下载openfire,解压就可以openfire启动服务。在登录spark之前,我们需要在openfire console界面创建用户,我这里创建的用户有smack,hadoop,openfire。原创 2023-03-15 06:00:00 · 7120 阅读 · 0 评论 -
【Java】java 环境配置(详细教程)
java 环境配置,网上教程很多,那我为什么还要写?首先为了完善我的知识体系今后一些软件的安装教程也可能会用到想写一个更加详细的,因为这并不仅仅是写给 IT 行业的,其它行业可能也需要配置java环境提示:以下是本篇文章正文内容,下面案例可供参考。原创 2023-03-13 15:44:10 · 19297 阅读 · 10 评论 -
【Java诊断工具】Arthas使用指南
Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。原创 2023-03-06 05:45:00 · 883 阅读 · 0 评论 -
【java】alibaba Fastjson --全解史上最快的JSON解析库
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。Fastjson 源码地址:https://github.com/alibaba/fastjsonFastjson 中文 Wiki:https://github.com/alibaba/fastjson/wiki/Quick-Start-CN。原创 2023-03-04 11:08:11 · 2705 阅读 · 4 评论 -
【工具类库】Lombok简介、使用、工作原理、优缺点--最全一篇Lombok使用讲解及原理真香啊
more.大概的意思:Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。官网链接简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。Lombok 是一款好用顺手的工具,就像 Google Guava 一样。可用来帮助开发人员消除 Java 的冗长代码,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。原创 2023-03-03 22:22:04 · 817 阅读 · 0 评论 -
【spring】Spring Data --Spring Data JPA
Spring Data JPA 是Spring Data中一款强大的用于操作关系型数据库的技术。它的出现,省去了我们编写Dao层的步骤。在业务逻辑相对简单的时候,使用它会极大的提高开发效率。但是当业务逻辑太过复杂时,Spring Data JPA缺乏灵活性的问题就会暴露出来,这个时候MyBatis反而是更好的选择。原创 2023-03-03 06:30:00 · 842 阅读 · 2 评论 -
【连接池】什么是HikariCP?HikariCP 解决了哪些问题?为什么要使用 HikariCP?
数据库连接池负责分配、管理和释放数据库的连接。数据库连接复用:重复使用现有的数据库长连接,可以避免连接频繁建立、关闭的开销。统一的连接管理:释放空闲时间超过最大空闲时间的数据库连接,避免因为没有释放数据库连接而引起的数据库连接泄漏。HikariCP 是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。其作者还有产出了另外一个开源作品HikariJSON——高性能的JSON解析器。代码体积更是少的可怜,130kb。原创 2023-03-03 06:00:00 · 697 阅读 · 2 评论 -
【Spring】Spring缓存注解@Cacheable、@CacheEvict、@CachePut使
key属性是用来指定Spring缓存方法的返回结果时对应的key的。该属性支持SpringEL表达式。当我们没有指定该属性时,Spring将使用默认策略生成key。我们这里先来看看自定义策略,至于默认策略会在后文单独介绍。自定义策略是指我们可以通过Spring的EL表达式来指定我们的key。这里的EL表达式可以使用方法参数及它们对应的属性。使用方法参数时我们可以直接使用“#参数名”或者“#p参数index”。下面是几个使用参数作为key的示例。returnnull;returnnull;原创 2023-03-02 06:45:00 · 471 阅读 · 2 评论 -
【编程思想】理解面向过程(OPP)、面向对象(OOP)、面向切面(AOP)
但是也有它的缺点,最明显的就是关注点聚焦时,面向对象无法简单的解决这个问题,一个关注点是面向所有而不是单一的类,不受类的边界的约束,因此OOP无法将关注点聚焦来解决,只能分散到各个类中。大多数支持面向对象的语言,同时也支持面向过程,不论是JAVA、PHP,还是JS,它们都还无法完全面向对象,因为面向过程是必然的,面向过程代表着必要的程序流程,调动对象进行组合或对象内部能力的实现,都一定会存在“过程”,它最终还是需要通过拆分步骤来指导最具体的执行细节。else的判断,这段代码,无疑是很恶心的。原创 2023-02-16 07:45:00 · 2528 阅读 · 0 评论 -
【java】EJB(Enterprise Java Bean)概述
客户端仅通过业务逻辑Bean所定义的接口来访问业务逻辑(跟具体实现无关)。当在开发企业Bean之前,首先要做的第一个决定是:EJB要支持什么样的客户端?因为不同 的客户端,其访问方式也将不同。原创 2023-02-09 17:54:55 · 786 阅读 · 0 评论 -
【工具类】Java开发常用Util工具类
经常配合上一个使用,下载的压缩包解压为文件然后解码。将GBK编码的文件转为UTF-8编码的文件。用到的maven坐标。原创 2023-02-08 11:29:03 · 577 阅读 · 0 评论 -
【java】Java生成微信小程序二维码
先介绍一下项目场景,主要是通过微信小程序二维码裂变分享,每个账号有专属邀请二维码,分享出去,有新人扫码入驻,就可以得到现金奖励或红包奖励。当然,产品设计会更丰富,不止有裂变模式,还有渠道推广模式,还有各种奖励规则,但核心实现都是生成二维码。对于如何生成微信小程序二维码,本文一共列举了5种实现方式,其中第4、5种是网上常见的方式,第1、2、3种封装的更为优雅。原创 2023-02-07 22:49:36 · 3237 阅读 · 0 评论 -
【架构设计】DDD(domain driven design/领域驱动设计)
领域驱动设计(简称 ddd)概念来源于2004年著名建模专家eric evans发表的他最具影响力的书籍:《domain-driven design –tackling complexity in the heart of software》(中文译名:领域驱动设计—软件核心复杂性应对之道)一书。,书中提出了“领域驱动设计(简称 ddd)”的概念。原创 2023-02-06 22:16:19 · 670 阅读 · 0 评论 -
【全链路追踪】全链路追踪介绍
实现日志跟踪的基本方案没有太大难度,重在实践中发现问题并一层一层解决问题的思路。原创 2023-02-06 12:45:19 · 2105 阅读 · 0 评论 -
【监控仪表系统】Grafana 中文入门教程 | 构建你的第一个仪表盘
这篇文章里我们从头到尾介绍了如何用 Grafana 生成仪表盘,如何配置和连接数据源,以及如何导入和创建一个仪表盘。之后的文章中,我们会介绍在卡拉搜索,我们是怎样监测服务健康状态的,同时我们会介绍 Prometheus 即普罗米修斯时序数据库的用法,欢迎继续关注我们的博客和公众号 (HiXieke)。如果你的 App 或小程序需要搜索功能,也可以到卡拉搜索首页[10]了解一下我们的托管搜索服务。原创 2023-02-01 15:56:38 · 33037 阅读 · 1 评论 -
【API网关】APISIX介绍和安装使用
APISIX 是一个高性能、可扩展的微服务API网关,基于 nginx(openresty)和 Lua 实现功能,借鉴了Kong的思路,将Kong底层的关系型数据库(Postgres)替换成了NoSQL型的 etcd,这使得 APISIX 相较于 Kong 在性能上有了很大提升,在启用各类插件的情况下,Apache APISIX 的性能据说是 Kong 的 10 倍,极具吸引力。原创 2023-02-01 10:19:44 · 5128 阅读 · 1 评论 -
【代码质量管理开源平台】sonar的安装以及使用
Sonar是一个用于代码质量管理的开源平台,用于管理代码的质量,通过插件形式可以支持二十几种语言的代码质量检测,通过多个维度的检查了快速定位代码中潜在的或者明显的错误。原创 2023-01-31 15:50:04 · 2188 阅读 · 2 评论 -
【分布式性能监视工具】SkyWalking 极简入门
SkyWalking 是什么?分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。原创 2023-01-31 09:57:57 · 610 阅读 · 0 评论 -
【Java】JDBC(Java Database connect)详解
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。原创 2023-01-06 15:24:05 · 1360 阅读 · 0 评论 -
【操作系统】进程的三种状态
进程执行时的间断性决定了进程可能具有多种状态。一 .进程具有三种基本状态: 1、就绪状态。某些进程“万事俱备”(必要资源),只差CPU。(就绪队列) 2、执行状态。某进程占有CPU并在CPU上执行其程序。 3、阻塞状态。某些进程由于某种原因不能继续运行下去,等待处 理问题。也称为等待状态或封锁状态。如:请求I/O。(多个等待队列)原创 2022-11-15 22:25:29 · 2542 阅读 · 0 评论 -
理解Java8里面CompletableFuture异步编程
CompletableFuture在Java里面被用于异步编程,异步通常意味着非阻塞,可以使得我们的任务单独运行在与主线程分离的其他线程中,并且通过 回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常等信息。原创 2022-12-19 10:04:49 · 859 阅读 · 0 评论 -
Lists.newArrayList()和new ArrayList()的区别
在 Java 7 之后,都允许类型推断 - 在运行时没有区别。java8 的new ArrayList()的里面可以不写类型,java回帮你自动推导类型,所以用哪个都无所谓,看自己喜欢,java8之后我还是喜欢直接new的方便。Lists.newArrayList()其实和new ArrayList()几乎一模一样,唯一它帮你做的(其实是javac帮你做的),就是自动推导尖括号里的数据类型。这个被叫做diamond(钻石)运算符,这个运算符从引用的声明中推断类型。原创 2022-12-15 11:45:32 · 1052 阅读 · 0 评论 -
【java】什么是war包?war包该怎么运行?
jar 包全称 Java Archive ,中文名叫 java 归档文件,这是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件(是的,jar 包就是一种压缩文件,甚至 jar 这个单词就有罐子的意思,实际上 jar 包采用的也是 zip 的压缩方式,只不过将文件后缀定义为 jar)。war 包的部署是相当简单的,只需要将 war 包放在 Tomcat 的 webapps 文件夹中,启动 Tomcat,它就会自行解包运行相应的 web 项目。war 包的打包也是通过 jar 命令来实现的。原创 2022-11-25 16:58:10 · 7019 阅读 · 0 评论 -
jar包的一些事儿
什么是jar包这里要啰嗦一遍概念,jar包就是 Java Archive File,顾名思义,它的应用是与 Java 息息相关的,是 Java 的一种文档格式,是一种与平台无关的文件格式,可将多个文件合成一个文件。jar 包与 zip 包非常相似——准确地说,它就是 zip 包,所以叫它文件包。jar 与 zip 唯一的区别就是在 jar 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,该文件是在生成 jar 文件的时候自动创建的,作为jar里面的"详情单",包含了该Jar包的版本原创 2022-11-24 12:40:58 · 727 阅读 · 0 评论 -
JAVA程序运行原理分析
在JVM规范中,这是一个逻辑区,根据不同的虚拟机有不同的具体实现,如oracle的HotSpot的方法区,在java7中放在永久代,java8中放在元数据空间,并通过GC机制对这个区域进行管理。1、虚拟机栈:即虚拟机执行JAVA代码的栈,每个线程都会在这有一个私有空间。Class字节码文件:是一个二进制文件,包含了JAVA程序执行的字节码,包含的信息有版本、访问标志、常量池、当前类、超级类、接口、字段、方法、属性等,中间没有任何分隔符,文件开头有一个特殊标志,用16进制表示为0xcafebabe。原创 2022-11-22 18:13:22 · 789 阅读 · 0 评论 -
Spring体系结构详解
Spring 框架采用分层架构,根据不同的功能被划分成了多个模块,这些模块大体可分为 Data Access/Integration、Web、AOP、Aspects、Messaging、Instrumentation、Core Container 和 Test,如图 1 所示。图 1 中包含了 Spring 框架的所有模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。下面分别对这些模块的作用进行简单介绍。图 1 Spring的体系结构。原创 2022-10-17 09:49:16 · 297 阅读 · 0 评论 -
【Spring】Spring是什么?
Spring 对每一层都提供了技术支持,在表现层提供了与 Struts2 框架的整合,在业务逻辑层可以管理事务和记录日志等,在持久层可以整合 Hibernate 和 JdbcTemplate 等技术。从设计上看,Spring 框架给予了 Java 程序员更高的自由度,对业界的常见问题也提供了良好的解决方案,因此,在开源社区受到了广泛的欢迎,并且被大部分公司作为 Java 项目开发的首选框架。Spring 是另一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力。原创 2022-10-17 09:41:12 · 141 阅读 · 0 评论 -
清洗历史数据根据ID查数据获取分页
在数据清洗中会遇到偏移量去拿数据,但有时怎么记录清洗到哪里了吗?还有清洗过程中你是否感到困惑加字段?原创 2022-09-02 00:21:53 · 205 阅读 · 0 评论 -
灰度发布、蓝绿发布、滚动发布
灰度发布,蓝绿发布,滚动发布原创 2022-06-29 00:26:17 · 366 阅读 · 0 评论 -
java获取内存dump的几种方式
前不久,上线了一个新项目,这个项目是一个压测系统,可以简单的看做通过回放词表(http请求数据),不断地向服务发送请求,以达到压测服务的目的。在测试过程中,一切还算顺利,修复了几个小bug后,就上线了。在上线后给到第一个业务方使用时,就发现来一个严重的问题,应用大概跑了10多分钟,就收到了大量的Full GC 的告警。针对这一问题,我们首先和业务方确认了压测的场景内容,回放的词表数量大概是10万条,回放的速率单机在 100qps左右,按照我们之前的预估,这远远低于单机能承受的极限。按道理是不会产生内存问.原创 2022-03-19 10:22:43 · 6955 阅读 · 0 评论 -
权限模型比较
权限模型:ACL(Access Control List)RBAC(Role Based Access Control)ABAC(Attribute Based Access Control)原创 2022-02-17 09:24:24 · 2819 阅读 · 0 评论 -
什么是xAPI?xAPI到底是做什么的?
一、什么是XAPI?Experience API(或 XAPI)是一种新一代学习技术规范,通过它可以采集(在线和离线)的学习行为数据,打破了只能记录课件阅读过程的局限。XAPI 从多种技术中以一致的格式采集数据。各个系统能够通过使用 XAPI 的简单字段来进行捕获和共享数据,并且能够安全地进行通信。xAPI解除了许多旧的限制,让移动学习、模拟、虚拟世界、严肃游戏、现实世界的活动、体验式学习、社交学习、离线学习和协作学习等等,可以通过xAPI 进行交互采集。值得注意的是,xAPI 是社区驱动的,可以免费实原创 2022-01-13 21:37:55 · 1559 阅读 · 0 评论 -
@Value的使用 《Spring源码解析》java笔记
使用@Value赋值;1、基本数值2、可以写SpEL; #{}3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)1.创建一个类Person其中使用到了第一种和第二种,直接使用@Value进行赋值public class Person { @Value("张三") private String name; @Value("#{20-2}") private Integer age; @Value("${per.原创 2021-12-08 14:22:03 · 194 阅读 · 0 评论 -
I18N 是什么
i18n(其来源是英文单词 internationalization [ˌɪntəˌnæʃnəlaɪˈzeɪʃn]的首末字符i和n,18为中间的字符数)是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。 在全球化的时代,国际化尤为重要,因为产品的潜在用户可能来自世界的各个角落。通常与i18n相关的还有L10n(“本地化”的简称)。...原创 2021-11-29 20:49:58 · 1643 阅读 · 0 评论 -
集合类基础知识
集合类重点:常见的集合类(List集合、Set集合、Map集合)各种集合的特点,重点掌握集合的遍历、添加对象、删除对象的方法要求:会使用集合类集合类是干什么的? 集合类是一种容器,类似于数组,但又与数组不同。不同体现在:数组的长度是固定的,集合类的长度是可变的。数组中主要存放的是基本类型的数据,也可以存放对象引用;集合类只能存放的是对象引用(如果使用基本数据类型,那么需要使用对应的包装类)。数组中的数据类型必须是相同的,集合不需要一定相同。注意:集合类由接口实现,接口所在的包是j原创 2021-08-18 19:39:08 · 1894 阅读 · 0 评论 -
我看阿里双11技术架构:用有限的资源解决更多的问题
我还记得,当年拿到双 11 技术架构的命题时,我脑袋中一片空白,后面通过向前辈们学习才慢慢了解:双 11 技术本质上其实就一个问题,如何用有限的资源解决更多的问题,核心其实是一个平衡。我们的资源有哪些?业务资源、开发资源、硬件资源。业务资源我要投钱,投到什么地方产生更大的效果,这是业务要去考虑的事。开发资源是什么?双 11 的需求真的是非常非常多,要做什么、不做什么,需要脑袋中非常清晰。**一定要有优先级,一定要有取舍,什么需求我投 100 个人我也必须做,哪个需求哪怕一个人就能做完,但我也不会去投入人转载 2021-07-01 09:55:17 · 232 阅读 · 0 评论 -
利用BeanMap进行对象与Map的相互转换
javabean与map的转换有很多种方式,比如:通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用通过Java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦通过net.sf.cglib.beans.BeanMap类中的方法,这种方式效率极高,它跟第二种方式的区别就是因为使用了缓存,初次创建bean时需要初始化,之后就原创 2021-04-01 21:13:10 · 416 阅读 · 0 评论 -
java中impl作用
在Java开发中,通常将后台分成几层,常见的是三层mvc:model、view、controller,模型视图控制层三层,而impl通常处于controller层的service下,用来存放接口的实现类,impl的全称为implement,表示实现的意思。impl用于实现接口通俗点,看图片理解一下:...原创 2021-03-23 15:50:56 · 7695 阅读 · 0 评论 -
Java中dao层、service层、controller层、entity层和view层的概述
DAO层:(持久层)主要与数据库进行交互DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,主要是做数据持久层的工作,主要与数据库进行交互。具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。注:DAO 层的数据源和数据库连接的参数都是在配置文件中进行配置的。Service层:(业务层 )控制业务Service层叫服务层,被称为服务,主要负责业务模块的逻辑应用设原创 2021-03-23 14:43:30 · 4306 阅读 · 0 评论