线程 随笔java

JUC源码学习笔记5——1.5w字和你一起刨析线程池ThreadPoolExecutor源码,全网最细doge

源码基于JDK8 文章1.5w字,非常硬核 系列文章目录和关于我 一丶从多鱼外卖开始 话说,王多鱼给好友胖子钱让其投资,希望亏得血本无归。胖子开了一个外卖店卖国宴,主打高端,外卖小哥都是自己雇佣,并且开迈巴赫送外卖。最开始胖子觉得这么贵的外卖,就雇佣100个外卖员(核心线程)够了,并购买了100台迈 ......

安卓部署Java项目

开头:之前做了个文档转换的小项目,想部署在安卓手机上,自己可以随时看看,所以才有了下面这篇文章,内容或有瑕疵,望请批正。文末放我自己部署文档转换网址,仅供大家参考,谢谢! 选择:Termux 还是 Linux Deploy 还是 AidLinux? 我自己的情况就是:linux deploy安装ra ......
项目 Java

你知道这个提高 Java 单元测试效率的 IDEA 插件吗

前言 2023年我们公司主抓代码质量,所以单元测试必不可少,而且都写到了年底的绩效目标中了。在考虑如何达成这个目标的过程中,我发现了一个关于单元测试的IDEA插件——SquareTest,它可以帮助我们提高编写单元测试的速度,你知道吗? 欢迎关注个人公众号【JAVA旭阳】交流学习 SquareTes ......
插件 单元 效率 Java IDEA

每个Java程序员都必须知道的四种负载均衡算法

前言 一般来说,我们在设计系统的时候,为了系统的高扩展性,会尽可能的创建无状态的系统,这样我们就可以采用集群的方式部署,最终很方便的根据需要动态增减服务器数量。但是,要使系统具有更好的可扩展性,除了无状态设计之外,还要考虑采用什么负载均衡算法,本文就带领大家认识以下常见的4种负载均衡算法。 欢迎关注 ......
程序员 算法 程序 Java

Java线程诊断

1.诊断CPU占用过高 [root@master ~]# nohup java -jar JvmProject.jar & // 有问题的java程序 [1] 1627 [root@master ~]# nohup: ignoring input and appending output to ‘n ......
线程 Java

Java的深拷贝和浅拷贝的区别

一、拷贝的引入(1)、引用拷贝创建一个指向对象的引用变量的拷贝。 Teacher teacher = new Teacher("Taylor",26); Teacher otherteacher = teacher; System.out.println(teacher); System.out.p ......
拷贝 Java

Java中Elasticsearch 实现分页方式(三种方式)

目录 ES 简介 ES 的特点: 一、from + size 浅分页 二、scroll 深分页 scroll删除 三、search_after 深分页 ES 简介 Elasticsearch 是一个基于 Lucene 实现的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful ......
方式 Elasticsearch Java

第二章 线程管控

第二章 线程管控 主要内容: 启动线程,并通过几种方式为新线程指定运行代码 等待线程完成和分离线程并运行 唯一识别一个线程 2.1 线程的基本管控 ​ main函数其本声就是一个线程,在其中又可以启动别的线程和设置其对应的函数入口。 2.1.1 发起线程 ​ 不管线程要执行的任务是复杂还是简单,其最 ......
线程 第二章

深入理解 OpenMP 线程同步机制

在本篇文章当中主要给大家介绍了一些经常使用的 OpenMP 用于线程之间同步的指令,并且用实际例子分析它内部的工作机制,以及我们改如何使用 nowait 优化程序的性能,以上就是本篇文章的所有内容希望大家有所收获! ......
线程 机制 OpenMP

OpenMP 线程同步 Construct 实现原理以及源码分析(上)

在本篇文章当中主要给大家介绍了 flush, master 和 critical 指令的实现细节和他的调用的库函数,并且深入分析了这几个 construct 当中设计的库函数的源代码,希望大家有所收获。 ......
线程 Construct 源码 原理 OpenMP

PowerUsageSummary.java源码分析

在在线网站http://androidxref.com/上对Android版本6.0.1_r10源码进行分析 官方手机的应用耗电排行具体实现位置在:/packages/apps/Settings/src/com/android/settings/fuelgauge/PowerUsageSummary ......
PowerUsageSummary 源码 java

BatteryStatsHelper.java源码分析

在分析PowerUsageSummary的时候,其实可以发现主要获取应用和服务电量使用情况的实现是在BatteryStatsHelper.java中 还是在线网站http://androidxref.com/上对Android版本6.0.1_r10源码进行分析 具体位置在 /frameworks/b ......
BatteryStatsHelper 源码 java

Java安全之JDBC Attacks学习记录

Java安全之JDBC Attacks 写在前面 很早就看到了Make JDBC Attacks Brilliant Again议题,一直想分析学习下,但是太懒。 MySQL 原理概述 "扩展参数" 就是本次导致安全漏洞的一个重要的部分。 Mysql JDBC 中包含一个危险的扩展参数: ”auto ......
Attacks Java JDBC

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

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

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

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

从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

C#开发的线程池和管理器 - 开源研究系列文章

上次编写了一个小软件,用于练手及自己的一个小工具集合。今天把其中的线程池和管理器的代码抽取出来,写成一个博文,让需要的朋友能够进行学习和应用。 这个线程管理器包括了3个类库和一个应用程序,见下图: 第一个是窗体磁吸屏幕的类库,以前有过一个VB编的类库(磁性窗体源码开源 - 开源研究系列文章),这次把 ......
线程 文章

【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线程问题诊断工具Thread Dump

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

跟光磊学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

用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