4 我就想起个通过的名字

尚未进行身份认证

暂无相关简介

等级
TA的排名 2w+

mysql状态查看 QPS/TPS/缓存命中率查看

Reference:https://www.cnblogs.com/zping/p/5163670.html运行中的mysql状态查看对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态。(1)QPS(每秒Query量)QPS = Questions(or Queries) / secondsmysql > show global ...

2019-08-13 17:29:19

Object 对象的方法有哪些?分别有什么作用?

1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clone方法。2.getClass方法final方法,获得运行时类型。3.toS...

2019-03-22 15:05:59

J.U.C之AQS:AQS简介

Java的内置锁一直都是备受争议的,在JDK 1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略(分析synchronized的实现原理),但是与Lock相比synchronized还是存在一些缺陷的:虽然synchronized提供了便捷性的隐式获取锁释放锁机制(基于JVM机制),但是它却缺少了获取锁与释放锁的可操作性,可中断、超时获取锁...

2019-02-15 14:58:05

分析ThreadLocal

ThreadLocal是什么?ThreadLocal是啥?以前面试别人时就喜欢问这个,有些伙伴喜欢把它和线程同步机制混为一谈,事实上ThreadLocal与线程同步无关。ThreadLocal虽然提供了一种解决多线程环境下成员变量的问题,但是它并不是解决多线程共享变量的问题。那么ThreadLocal到底是什么呢?API是这样介绍它的:This class provides thread-...

2019-02-14 15:01:09

Java内存模型之总结

JMM规定了线程的工作内存和主内存的交互关系,以及线程之间的可见性和程序的执行顺序。一方面,要为程序员提供足够强的内存可见性保证;另一方面,对编译器和处理器的限制要尽可能地放松。JMM对程序员屏蔽了CPU以及OS内存的使用问题,能够使程序在不同的CPU和OS内存上都能够达到预期的效果。Java采用内存共享的模式来实现线程之间的通信。编译器和处理器可以对程序进行重排序优化处理,但是需要遵守一些规...

2019-02-14 14:36:46

Java内存模型之分析volatile

深入分析volatile的实现原理 中已经阐述了volatile的特性了: volatile可见性;对一个volatile的读,总可以看到对这个变量最终的写; volatile原子性;volatile对单个读/写具有原子性(32位Long、Double),但是复合操作除外,例如i++; JVM底层采用“内存屏障”来实现volatile语义 下面LZ就通过happens...

2019-02-14 14:18:59

Java内存模型之从JMM角度分析DCL

DCL,即Double Check Lock,中卫双重检查锁定。其实DCL很多人在单例模式中用过,LZ面试人的时候也要他们写过,但是有很多人都会写错。他们为什么会写错呢?其错误根源在哪里?有什么解决方案?下面就随LZ一起来分析问题分析我们先看单例模式里面的懒汉式:public class Singleton {    private static Singleton singlet...

2019-02-14 11:28:21

Java内存模型之重排序

在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序,但是不能随意重排序,不是你想怎么排序就怎么排序,它需要满足以下两个条件: 在单线程环境下不能改变程序运行的结果; 存在数据依赖关系的不允许重排序 如果看过LZ上篇博客的就会知道,其实这两点可以归结于一点:无法通过happens-before原则推导出来的,JMM允许任意的排序。as-if-serial语义...

2019-02-14 11:20:48

Java内存模型之happens-before

在上篇博客LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题。那么我们正确使用同步、锁的情况下,线程A修改了变量a何时对线程B可见?我们无法就所有场景来规定某个线程修改的变量何时对其他线程可见,但是我们可以指定某些规则,这规则就是happens-before,从JDK 5 开始,JMM就使用happens-before的概念来阐述多线程之间的内存...

2019-02-14 11:18:10

volatile的实现原理

通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地...

2019-02-14 11:03:04

synchronized的实现原理

下面跟随LZ一起来探索synchronized的实现机制、Java是如何对它进行了优化、锁优化机制、锁的存储结构和升级过程;实现原理synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性Java中每一个对象都可以作为锁,这是synchronized实现同步的基础: 普通同步方法,锁是当前实例对象 ...

2019-02-14 10:49:05

Redis yum安装redis

Redis yum安装redis一、直接用yum安装redis1、yum安装redis//更新yum仓库yum update //安装redisyum install redis2、yum卸载redis//卸载yum remove redis3、启动、关闭、重启redis服务器service redis start //启动service redis stop //...

2019-01-10 18:24:33

【Java入门提高篇】Day25 史上最详细的HashMap红黑树解析

当当当当当当当,好久不见,最近又是换工作,又是换房子,忙的不可开交,断更了一小段时间,最重要的一篇迟迟出不来,每次都犹抱琵琶半遮面,想要把它用通俗易懂的方式进行说明,确实有一定的难度,可愁煞我也,但自己挖的坑,哭着也要把它补上。请允许我当一回标题党。  好了,言归正传,本篇主要内容便是介绍HashMap的男二号——TreeNode(男一号还是给Node吧,毕竟是TreeNode的爷爷,而且普通...

2018-12-01 13:34:26

elastic-job的原理

elastic-job是当当开源的一款非常好用的作业框架,在这之前,我们开发定时任务一般都是使用quartz或者spring-task(ScheduledExecutorService),无论是使用quartz还是spring-task,我们都会至少遇到两个痛点:1.不敢轻易跟着应用服务多节点部署,可能会重复多次执行而引发系统逻辑的错误。2.quartz的集群仅仅只是用来HA,节点数量的增加并...

2018-10-25 10:23:47

Elastic-job入门

Elastic-Job是一个分布式的定时任务框架 基于成熟的定时任务作业框架Quartz cron表达式执行定时任务 相对于Quartz它增加了任务分片。这样能有效的防止单节点部署项目带来的种种不便入门案例 本案例基于Springmvc 和 maven 如果你在本地测试需要首先自己安装好zookeeper因为注册中心是zookeeper 采用测试用例测试的时候 需要两台不同ip的机器去启动...

2018-10-25 10:20:35

详述 hosts 文件的作用及修改 hosts 文件的方法

1 什么是hosts文件?  hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的 IP 地址,一旦找到,系统就会立即打开对应网页,如果没有找到,则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。2 hosts文件的作用...

2018-09-05 11:37:48

IntelliJ IDEA 最新激活码(截止到2018年10月14日)

IntelliJ IDEA 最新激活码(截止到2019年5月4日):点击获取!!!IntelliJ IDEA 注册码:EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2V...

2018-09-05 11:36:57

Struts中private static final long serialVersionUID的作用

今天在看项目源码的时候发现struts的action里面有 private static final long serialVersionUID = -1672970955045193907L;这样的一条语句。 中文搜索之后,全部都是如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的类恢复时会出错。为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入...

2018-09-05 11:12:45

Intellij IDEA自动生成serialVersionUID配置

 完整操作流程:Setting->Editor->Inspections->Java->Serialization issues->Serializable class without ‘serialVersionUID’(选择勾上)配置完成后,如果你的Class实现了Serializable接口,那么将光标停留在类名上,然后按Alt+Enter就会提示自动创...

2018-09-05 11:11:45

BigDecimal 的那些坑事儿

最近查看rebate数据时,发现一个bug,主要现象是,当扣款支付宝的账号款项时,返回的是数字的金额为元,而数据库把金额存储为分,这中间要做元与分的转化,这个转化规则很简单,就是*100的,所以一开始代码很简单,如下。   Float f = Float.valueOf(s); f =f*100; Long result = f.longValue(); ...

2018-07-26 17:00:33

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!