08 2022 档案
摘要:我们在日常的开发的过程中,经常需要前端测试发送请求测试一些数据。但是由于一些session,cookie的存在,我们无法在postman上创建一些会话。那么这样,我们就可以在浏览器上直接发送Ajax请求 $.ajax({ type: "POST", url: "https://zoomdev.us/
阅读全文
摘要:在我们日常的开发中,我们经常需要查看每个线程的cpu使用情况。其实,在linux中,top也是我们查看cpu使用状况的一个好帮手 top:先查看每一个进程的使用状况 我们可以发现PID:3800这个经常的CPU使用率偏高 top -Hp 3800:查看这个3800进程的具体CPU使用情况 我们可以发
阅读全文
摘要:我们在日常开发时,难免会遇到一些没有内存泄漏等问题。有时,我们无法下载arthas等开源的诊断工具。这时候,我们就可以借助JDK自带的一些诊断工具。 首先我们可以使用jstat查看gc信息 字段含义 S0C:年轻代中第一个Survivor区的容量,单位为KB。 S1C:年轻代中第二个Survivor
阅读全文
摘要:在我们日常的工作中,经常会遇到一些线上才会遇到的问题。Arthas无疑是我们在工作中,定位线上问题的神奇。下面,我将介绍一下我们在工作中经常用到的一些功能。 dashboard 首先我们可以通过dashboard查看线程整体的运行情况,heap的消耗情况,以及运行时环境 thread thread:
阅读全文
摘要:在我们实际的开发过程中,我们肯定会用到MQ中间件,常见的MQ中间件有kafka,RabbitMQ,RocketMQ。在使用的过程中,我们必须要考虑这样一个问题,在使用MQ的时候,我们怎么确保消息100%不丢失? 案例背景 以我们熟悉的淘宝系统为例子,在用户下订单的时候,通常会给客户发放一下优惠劵。在
阅读全文
摘要:在我们实际使用中,我们经常会遇到对象需要序列化的问题。我将通过下面几个问题,理解序列化的相关问题 什么是序列化和反序列化 什么时候需要进行序列化和反序列化 实现序列化和反序列化为什么要实现Serializable接口 在实现Serializable接口时,为什么要显示指定serialVersionU
阅读全文
摘要:Java 运行时数据区 堆 线程栈 本地方法栈 方法区 程序计数器 我们的java文件,首先编译成class文件。通过类加载器加载到我们的Java虚拟机。Java虚拟机中,最大的一块是运行时数据区。 其中堆和方法区是所有线程共有的。线程栈、本地方法栈、程序计数器是每个线程单独拥有一份的。 类装载系统
阅读全文
摘要:在我们日常开发中,代理模式是一个非常常见的模式。动态代理时jdk中自带的,可以非常方便的在原有的功能上添加一些我们自己的功能。 什么是代理 就是为其他对象提供一个代理以控制被代理对象的访问。 动态代理 利用Java的反射机制,在运行时创建代理类。 public interface DoSomethi
阅读全文
摘要:在我们看他人code的时候经常会看到,可能会经常看到lambda表达式,函数式接口,以及流式计算。在刚接触这些新功能时,也觉得真的有必要吗?但是现在写多了,发现这个功能确实能简化代码结构,提升编码效率。lambda表达式,函数式接口,流式计算单个来用确实非常难用,但是整合到一起,就会发生非常奇妙的反
阅读全文
摘要:在我们平时的开发中,我们肯定会遇到过spring框架。框架中我们几乎不需要手动去new对象。只需要通过一些简单的配置,spring就会把对象为我们创建好。这里就用到反射。下面我们详细的介绍一下Java中的反射。 什么是Java反射 Java的反射机制是指运行时获取类的状态属性,可以调用它的任意属性和
阅读全文
摘要:- JVM,运行是内存模型 - Java 反射 - Java 注解 - 函数式接口 - lambda表达式/流式计算 - 动态代理
阅读全文
摘要:在我们平时写code的时候,经常会使用到多线程。其中线程所处的状态就是我们需要进程思考的问题。 线程有哪些状态 NEW: 一个线程刚被创建,但是没有被使用就是处于这个状态 RUNNABLE: 一个线程正在jvm虚拟机中被执行就是处于这个状态 BLOCKED:一个线程等待一个moniter,就是处于这
阅读全文