java基础
文章平均质量分 83
易柏州Innovation
Java工程师。 推崇以白话文记录学习博客
展开
-
KafKa常用命令
KafKa常用命令。原创 2022-10-06 18:51:23 · 602 阅读 · 1 评论 -
String底层、字符串常量池详解
String底层、字符串常量池详解原创 2022-05-29 13:19:34 · 368 阅读 · 4 评论 -
白话@PostConstruct
白话@PostConstruct@PostConstruct是什么:案例:运用场景:面试的时候遇到过一个问题,Spring中,怎么让A对象在初始化的时候调用到B对象的方法?拿到这个问题的时候我一脸懵逼的,这是什么问题,还会有这样的使用场景嘛?当时最先想到的是在A对象的构造方法里手动new一个B对象,然后调用其方法。但当前是在Spring环境中,我们是通过@Autowired自动注入来取到目标对象的,所以不能用手动的new方法来做。这时候就会想:好,我不new ,我@Autowired一个B对原创 2022-04-01 13:52:52 · 902 阅读 · 0 评论 -
白话Java缓冲流(BufferedInputStream,BufferedOutputStream)
白话缓冲流(BufferedInputStream,BufferedOutputStream)1. 什么是流1.1 读写(复制)文件案例2. 什么是缓冲流2.1 缓冲流的作用。2.1.1 缓冲流的逻辑。2.1.2 输入缓冲流案例:2.1.3 输出缓冲流案例(复制文件):看了整个CSDN,关于缓冲流的文章基本都是模糊不清,晦涩难懂或者复制粘贴的。这里做一个简单的分享,以免面试的时候被问到那可就阴沟里翻船了。🍅你的点赞是我分享的动力🍅其实大多数Java开发人员在工作中很少会接触的IO流。可面试偏原创 2022-03-24 15:39:39 · 2642 阅读 · 0 评论 -
【ArrayList】白话文源码分析
【ArrayList】白话文源码分析ArrayList类解析全局变/常量构造方法无参构造:有参构造(参数为int)有参构造(参数为Collection集合其他方法add()打好基础,再说其他的,不要整天好高骛远。希望我的分享能帮到一样迷茫但努力的同学。ArrayList类解析首先我想对一些基础不好同学说一句。ArrayList是一个类,不是你们认为的就直接操作内存了。既然ArrayList是一个类,那么类就有类的规则,有规则我们就能学习。我们来看看这个类的结构:public class Ar原创 2022-02-28 17:07:18 · 363 阅读 · 0 评论 -
深入浅出:java开发中,字符集编码详解
我相信,这个问题很多人在工作中都不知道也不敢问。说真的我一开始也不知道,我不好意思问同事,因为我觉得这种问题一旦问出口,大家都投来鄙夷的眼神。但最后我才发现,我身边的程序员其实都他妈答不上这个问题。原创 2021-12-16 18:02:52 · 1283 阅读 · 0 评论 -
Java基本数据类型解析及转换。(面试必问)
Java基本数据类型解析及转换。(面试必问) 很多高级程序员在工作中都会遇到数据类型转换等问题。这种问题不能死记硬背,这里总结一下。工作中有需要可以打开博客看看。 基本数据类型分类:总览图:位数:看了上面的列表我们看到有一列叫做”位数“。那么什么他妈是位数呢?我们知道,计算机不认识我们的代码,代码最后都会被编译为计算机认识的二进制数据(0和1)。那么这里的位数,就是代表这个数据类型占了多少二进制位数。 例如Byte类型,我们通过包装类中的SIZE属性,可以得到其占用二进制的原创 2021-12-09 16:58:51 · 12976 阅读 · 1 评论 -
深入浅出java8 stream流操作,带案例演示(Map集合)
深入浅出java8 stream流操作 基本介绍:关于stream的基本原理这里不介绍了。我之前找到这篇博客,写得很好。java8中stream原理概述无状态:指元素的处理不受之前元素的影响;有状态:指该操作只有拿到所有元素之后才能继续下去。非短路操作:指必须处理所有元素才能得到最终结果;短路操作:指遇到某些符合条件的元素就可以得到最终结果,如 A || B,只要A为true,则无需判断B的结果。 案例演示(串行流):初始化List: static List<Map原创 2021-11-12 11:06:02 · 20977 阅读 · 8 评论 -
事务的传播机制(案例演示)
事务的传播机制(案例演示) 案例介绍:数据库表:user表,两条数据:Mapper逻辑:两条sqlupdate1:修改张三的pass字段为2。update2:修改李四的pass字段为2。 @Update("Update user set pass = 2 where id = 1") void update1(); @Update("Update user set pass = 2 where id = 2") void update2();Se原创 2021-08-08 19:05:21 · 18242 阅读 · 5 评论 -
java线程池简述,线程池的7个参数(面试必考)
java线程池简述(面试必考) 线程池的优势:线程池的工作就是控制运行线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。翻译:就是一开始就创建一定数量的线程。来一个用一个,用完了不销毁,返还到池子里等着被下一次调用。 如果需要的线程大于了我线程池准备好的线程,那么久等待,空出来一个,用一个。线程池主要特点:线路复用 :降低资源消耗。复用以创建的线程,降低新线程创建销毁造成的消原创 2021-08-07 16:01:48 · 3407 阅读 · 0 评论 -
JVM中堆空间简述,JVM调优以及GC垃圾回收算法
JVM堆空间简述以及GC垃圾回收算法和方式 JVM简述(面试之前看一遍).堆(非常重要)堆内存逻辑上分为三个区:1. 新生代伊甸园区幸存者0区幸存者1区2.老年代(养老区)3.元空间(永久区)元空间也就是方法区,储存类信息+普通常量+静态常量+编译器编译后的代码GC垃圾回收流程。现在有一个程序在不间断地创建对象,对象都存在在伊甸园区。某个时间段,伊甸园区满了!第一次GC开始了,有n个对象被GC掉了。剩下了1个就留到了幸存者0区,伊甸园区被清空。由于新的对象不断被创原创 2021-08-05 17:53:26 · 3713 阅读 · 0 评论 -
JVM简述(面试之前看一遍)
JVM简述(面试之前看一遍) 上图,我们从上往下一一解析:类装载器(ClassLoader)类装载器负责加载由.java 文件生成的.class文件。class文件在文件的开头有特定的文件标识,将class文件字节码加载进内存中,并将这些内容转换成方法区中的运行时数据结构。ClassLoader只会负责class文件的加载,至于它是否可以运行,则由其他模块决定ClassLoader类装载器有4个启动类加载器 Bootstrap, 加载JDK自带的class文件 如Object类扩展类原创 2021-08-03 18:56:21 · 213 阅读 · 0 评论 -
CAS缺点,以及ABA问题和解决办法(AtomicStampedReference)
CAS缺点,以及ABA问题和解决办法 java中多线程之CAS(compareAndSet),Unsafe类大白话详解.CAS缺点循环时间长,开销大 public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1, var2); } while(!thi原创 2021-07-31 17:29:55 · 329 阅读 · 0 评论 -
java中多线程之CAS(compareAndSet),Unsafe类大白话详解.
java中多线程之CAS详解 什么是volatilevolatile是JVM提供的轻量级同步机制好,开始讲大家看不懂的东西了!volatile有三大特性:保证可见性不保证原子性有序性傻了吧,这他妈都是些什么jb东西啊?别着急,我们一个一个来。在学习volatile之前,我们先了解一下JMM。什么又是JMM?我只知道JVM。这他妈是啥东西啊?JMM:java内存模型。jmm是一种抽象的概念,并不真实存在,它描述的是一种规范,通过这种规范定义了程序中的各个变量的访问形式。(仔细读原创 2021-07-31 15:56:59 · 17146 阅读 · 5 评论 -
java中多线程之volatile详解(最通俗)
java中多线程之volatile详解 什么是volatilevolatile是JVM提供的轻量级同步机制好,开始讲大家看不懂的东西了!volatile有三大特性:保证可见性不保证原子性禁止指令重排傻了吧,这他妈都是些什么jb东西啊?别着急,我们一个一个来。在学习volatile之前,我们先了解一下JMM。什么又是JMM?我只知道JVM。这他妈是啥东西啊?JMM:java内存模型。jmm是一种抽象的概念,并不真实存在,它描述的是一种规范,通过这种规范定义了程序中的各个变量的访问原创 2021-07-29 19:51:52 · 16726 阅读 · 12 评论 -
java 7种单例模式写法(最全,面试必问)
java 7种单例模式写法(最全,面试必问)饿汉式(静态常量)public class type1 { private final static type1 instance = new type1(); private type1(){ } public type1 getInstance(){ return instance; }}饿汉式(静态代码块)public class type2 { private原创 2021-07-27 18:38:12 · 294 阅读 · 0 评论 -
java中的静态、动态代理模式以及Spring中的CgLib动态代理解读(面试必问)
java中的静态、动态代理模式以及Spring中的CgLib动态代里解读(面试必问) 基础知: 反射知识什么是反射 反射是框架的灵魂JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.在j原创 2021-07-27 17:31:50 · 13100 阅读 · 3 评论 -
java中的反射原理,为什么要使用反射以及反射使用场景(面试常问)
java中的反射原理,为什么要使用反射以及反射使用场景 什么是反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.看下面一段代码在这里插入代码片这里的filter指的是Spring框架原创 2021-07-17 22:41:14 · 20648 阅读 · 20 评论