Java基础
仰望夜空一万次
记录一切美好事物。
展开
-
Java应用通过jmx_exporter对外暴露jvm指标
jmx_prometheus_javaagent原创 2024-02-27 15:39:25 · 973 阅读 · 0 评论 -
guava使用
字符串拼接String str = Joiner.on(File.separator).join("a", "b");原创 2021-09-14 17:25:28 · 103 阅读 · 0 评论 -
Redis单例实现连接池工具类
jedisPool依赖apache-commons-pool.jar包JedisPoolUtil代码:package com.atguigu.redis.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisPoolUtil { priv原创 2020-09-24 18:59:20 · 485 阅读 · 0 评论 -
深入分析CAS(乐观锁)
什么是CAS(1)CAS(compare and swap) 比较并替换,比较和替换是线程并发算法时用到的一种技术(2)CAS是原子操作,保证并发安全,而不是保证并发同步(3)CAS是CPU的一个指令(4)CAS是非阻塞的、轻量级的乐观锁为什么说CAS是乐观锁乐观锁,严格来说并不是锁,通过原子性来保证数据的同步,比如说数据库的乐观锁,通过版本控制来实现等,所以CAS不会保证线程同步。乐观的认为在数据更新期间没有其他线程影响CAS原理CAS(compare and swa...转载 2020-09-24 10:45:14 · 529 阅读 · 0 评论 -
jstack命令排查性能问题
使用top -Hp命令查看某进程里面,资源占用率高的线程id。通过Java自带的jstack命令查看线程id中锁死的代码行。排查步骤找到出现问题的进程top 命令,大写M(按照进程占用内存排序),大写P(按照进程占用CPU排序)或ps -ef|grep keywordtop -Hp pid 查看占用最多资源的线程把线程pid转换成16进制数这里我们看到的占用最多资...原创 2020-01-13 14:56:11 · 353 阅读 · 0 评论 -
Java比特位操作
本文介绍Java中bit的操作,涉及到原码、反码、补码的概念。最后引入编程珠玑中的题目实战如何使用bit的方式存储数据。首先复习下原码、反码、补码的概念,为后续负整数的内存显示格式理解打好基础。原码、反码、补码在java虚拟机中整数有byte、short、int、long四种整数,分别表示 8位、16位、32位、64位有符号整数,使用补码表示。原码所谓原码就是符号位加上数字的...原创 2019-10-22 19:16:20 · 3640 阅读 · 0 评论 -
Guava中Null的处理方式
使用与避免NULL值“Null sucks.” -Doug Lea“I call it my billion-dollar mistake.” - Sir C. A. R. Hoare, on his invention of the null reference粗心使用null可能会导致各种错误。Google代码库大约95%的集合类中不支持存储null值,...翻译 2019-10-17 16:50:49 · 1589 阅读 · 0 评论 -
Google Guava介绍
导读:Apache Guava项目包含我们在基于Java的项目中依赖的Google的几个核心库:集合,缓存,原语支持,并发库,通用批注,字符串处理,I / O等。 这些工具中的每一种确实每天都会被Google员工用于生产服务中。Apache Guava哲学Google Guava是什么?Guava是Google核心Java库的开源版本:Google员工每天在其代码中使用的核心实用程序。...翻译 2019-10-16 17:25:30 · 893 阅读 · 0 评论