Java
文章平均质量分 78
颍川道人
唯有热爱,能抵岁月漫长
展开
-
并发编程学习思考-如何学习并发编程?
阅读极客时间王宝玲 并发编程课程有感什么是并发并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。并发编程的优点,我们为什么需要它并发可以带来性能上的提升提升对CPU的使用效率提升访问I/O时CPU的利用率:当一个线程要在网上下载一些东西的时候,这个线程将处于阻塞状态,这时CPU就不会再为这个线程分配CPU时间了,而其他进程可以不受任何影响地获得CPU时间。反过来如果没有使用.原创 2021-05-06 17:40:03 · 269 阅读 · 0 评论 -
Java-ReentrantLock-公平锁源码分析
说明在了解AQS后,那应该怎么了解AQS的最佳实践那,我想再也没有Java官方的实践更加优秀了,这次我打算重新拿出系统源代码,并将其总结成一系列文章,以供将来查看.本次准备分六篇文章用来分析基于AQS实现的类第一篇(Java-ReentrantLock-非公平锁源码分析)第二篇(Java-ReentrantLock-公平锁源码分析)第三篇(Java-并发工具-CountDownLatch源码分析)第四篇(Java-并发工具-Semaphore源码分析)第五篇(Java-ReentrantRe原创 2021-04-22 17:17:59 · 266 阅读 · 0 评论 -
Java-ReentrantLock-非公平锁源码分析
说明在了解AQS后,那应该怎么了解AQS的最佳实践那,我想再也没有Java官方的实践更加优秀了,这次我打算重新拿出系统源代码,并将其总结成一系列文章,以供将来查看.本次准备分六篇文章用来分析基于AQS实现的类第一篇(Java-ReentrantLock-非公平锁源码分析)第二篇(Java-ReentrantLock-公平锁源码分析)第三篇(Java-并发工具-CountDownLatch源码分析)第四篇(Java-并发工具-Semaphore源码分析)第五篇(Java-ReentrantRe原创 2021-04-22 17:13:28 · 188 阅读 · 0 评论 -
问题排查-线上CPU300%排查过程(dubbo引起的)
概述监控告警发现线上某台服务器cpu300%,下面记录排查过程查看服务器情况top查看哪个线程cpu占用高 ps -mp 39954 -o THREAD,tid,time|sort -r|head -n 30转换 线程id为16进制printf "%x\n" 400099c49查看问题堆栈信息 jstack 39954|grep 9c49 -A 15分析堆栈信息由上图可以看出,是线程名为 “DubboSaveRegistryCache-thread-原创 2021-04-15 14:20:14 · 780 阅读 · 0 评论 -
Java对象内部结构
Java对象内部结构分析对象头对象头占用12个字节,存储内容包括对象标记(markOop)和类元信息(klassOop)。对象标记存储对象本身运行时的数据,如哈希码、GC标记、锁信息、线程关联信息等,这部分数据在64位JVM上占用8个字节,成为"Mark Word"。为了存储更多的状态信息,对象标记的存储格式是非固定的(具体与JVM的实现有关)。类元信息存储的是对象指向它的类元数据(即Klass)的首地址,占用4个字节.实例数据存储本类对象的实例成员变量和所有可见的父类成员变量原创 2021-03-22 22:43:12 · 200 阅读 · 0 评论 -
Java面试-类加载
类加载过程任何程序都需要加载到内存才能与CPU进行交流.字节码.class文件统一需要加载到内存中,才能实例化类,而ClassLoader正是关键,它的使命就是提前加载.class文件到内存中. 在加载类时,使用双亲委派模型(朔源委派加载模型)Java的类加载器是一个运行时核心基础设施模块,主要在启动之初进行类的Load Link Init,即加载 连接 初始化类加载是一个将.class字节码文件实例化成Class对象并进行相关初始化的过程。加载(Load)第一步,Load阶段读取类文件产生二进制原创 2021-03-04 16:54:08 · 208 阅读 · 2 评论 -
Java面试-JVM虚拟机内存布局
这里写自定义目录标题内存布局本地方法栈程序计数器虚拟机栈堆元空间(MetasSpace)内存布局JVM内存布局规定了Java在运行过程中内存申请,分配,管理策略,保证了JVM的高效平稳运行。不同JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。本地方法栈程序计数器虚拟机栈堆(Heap)元空间(MetasSpace)本地方法栈本地方法栈在JVM内存布局中,也是线程对象私有的,但是虚拟机栈’主内’,而本地方法栈’主外’,这个内外之别是针原创 2021-03-04 16:17:01 · 177 阅读 · 3 评论 -
服务编排--Conductor 文档翻译 (介绍与基本概念)
介绍Conductor 优点为什么不进行点对点编排?基本概念工作流定义任务定义系统任务工人任务工作流任务的生命周期元数据定义任务定义重试逻辑超时政策工作流定义工作流程中的任务连接输入和输出$ {SOURCE.input / output.JSONPath}JSON路径支持系统任务的创建(DYNAMIC) 动态任务定义(DECIDE)决策任...翻译 2018-07-27 17:22:38 · 23131 阅读 · 4 评论 -
服务编排--Conductor 实践 (1) 安装
环境准备工具准备JDK 1.8 安装gradle 安装Conductor安装本地内存启动docker 镜像启动环境准备centos6.7 工具准备JDK 1.8gradle 4.8JDK 1.8 安装下载 http://download.oracle.com/解压tar -zxvf jdk-8u171-linux-x64....原创 2018-07-27 17:03:17 · 3698 阅读 · 0 评论 -
Java数据结构与算法--简单排序
简单排序本文讨论比较简单的排序算法:冒泡排序、选择排序、插入排序、对象排序原创 2017-05-23 12:01:19 · 589 阅读 · 0 评论 -
Java编程思想读书笔记--一切都是对象
一切都是对象 Java是一种更纯粹的面向对象程序设计语言。用引用操作对象 尽管一切都看做对象,但是操纵的标识符实际上是对象的一个“引用”(reference)。也就是说,你拥有一个引用,并不一定需要一个对象与它关联。String s;存储到什么地方 程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎样分配的呢?实际有五个不同的地方可以存储数据。1 . 寄存器:这是最快的存储区,原创 2017-03-23 23:36:12 · 395 阅读 · 0 评论 -
Solr 搜索服务(中文解析器配置)--Liunx
Solr 中文解析器配置IK 下载配置原创 2017-03-07 11:28:45 · 484 阅读 · 0 评论 -
Solr搜索服务的搭建(Liunx)
Solr 搜索服务的搭建 总结一下solr 搜索服务的搭建环境准备 需要JDK1.5以上版本,最新版的solr已经内置了tomcat ,无需准备可直接运行 Liunx 环境(这里我选用的是Centos6.5)Solr搭建第一步 下载solr solr下载地址第二步 解压,指定solr安装目录tar -zxvf solr-6.4.1.tgz 第三步 在/usr/loc原创 2017-03-07 10:48:40 · 399 阅读 · 0 评论 -
RESTful的Api设计之统一接口
内容根据 Java RESTful Web Service实战 [韩陆著] 整理REST统一接口 REST式的Web服务和RPC式的Web服务在接口定义上的区别是,REST使用HTTP通用方法作为统一接口的标准词汇,REST式的Web服务所提供的方法信息都在HTTP方法里,而RPC式的web服务所提供的方法信息在SOAP/HTTP信封里(其封装的格式通常是HTTP或者是SOAP),每个RPC式原创 2017-02-23 10:38:18 · 8974 阅读 · 1 评论