随笔分类 - Java
Java相关技术
摘要:JDK(Java Development Kit)自带了很多工具,以下是一些常用的工具及其作用: 1. jstat:用于监视 JVM 中各种运行时状态信息,如类加载、内存、垃圾回收等。 2. jmap:用于导出 JVM 内存映像,可以用于内存泄漏分析、GC 分析等。 3. jstack:可以用于查看
阅读全文
摘要:# Java笔试输入 ``` import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in) //判断是否有下一个输入 sc.has
阅读全文
摘要:目录 一、Java基础篇 1.接口和抽象类的区别 2.重载和重写的区别 3.==和equals的区别 4.异常处理机制 5.HashMap原理 6.想要线程安全的HashMap怎么办? 7.ConcurrentHashMap原如何保证的线程安全? 8.HashTable与HashMap的区别 9.A
阅读全文
摘要:# 1. Java Thread中和interrupt相关的方法有几个,作用分别是什么? 在 Java Thread 中,与 interrupt 相关的方法有以下几个,作用分别是: interrupt() 方法:中断线程。当线程调用 interrupt() 方法时,如果该线程正在阻塞状态(如 sle
阅读全文
摘要:在我们日常的开发中,我们经常会用到Filter和Interceptor。有时同一个功能。Filter可以做,Interceptor也可以做。有时就需要考虑使用哪一个比较好。这篇文章主要介绍一下,二者的区别和联系。希望给大家进行选择的时候,提供一些帮助 Filter 和 Interceptor 的区别
阅读全文
摘要:在我们日常的开发中,我们经常会遇到 NullPointerException。如何才能优雅的处理NPE?这里告诉大家一个较为流行的方法 java.util.Optional 使用Optional来修饰对象,表示这个对象可能为null。在使用时,就要加以注意,必须要考虑该值为null的场景。 使用Op
阅读全文
摘要:在我们实际的开发过程中,我们肯定会用到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,就是处于这
阅读全文