随笔分类 - Java基础补漏
摘要:HashMap通过在元素数量达到阈值时将数组容量扩大为原来的两倍,并重新计算键的哈希值来实现扩容。 扩容机制是HashMap保持高效性能的重要一环。当HashMap中的元素数量达到数组大小的加载因子(默认为0.75)时,就会触发扩容操作。具体来说,扩容操作包括以下几个步骤: 1. 创建新的数组:新数
阅读全文
摘要:幂的意思是覆盖,接口幂等性是指对同一接口的同一请求,多次执行产生的效果与单次执行相同。放到系统设计中,要做到接口防重、数据库建立唯一性索引等。
阅读全文
摘要:在Java中,新建线程的方法有两种: 1. 继承`Thread`类并重写`run()`方法 class MyThread extends Thread { @Override public void run() { // 在这里编写线程要执行的任务 } } public class Main { p
阅读全文
摘要:@Transactional(rollbackFor = {RuntimeException.class, Error.class}) @Override public boolean create() { create1(); create2(); return true; } public vo
阅读全文
摘要:大家想要表情包吗,可以关注我公众号:喜汁表情包 。公众号每日定期更新,不喜勿喷,谢谢大家。
阅读全文
摘要:abstract不能与final,private,static放在一起,因为abstract修饰的方法是必须在其子类中实现(覆盖),才能以多态方式调用,以上修饰符在修饰方法时期子类都覆盖不了这个方法,final是不可以覆盖,private是不能够继承到子类,所以也就不能覆盖,static是可以覆盖的
阅读全文
摘要:
SpringBoot内嵌Tomcat知多少 在 Spring Boot 框架中,我们使用最多的是 Tomcat,这是 Spring Boot 默认的容器技术,而且是内嵌式的 Tomcat。 Tomcat 是 Apache 基金下的一个轻量级的 Servlet 容器,支持 Servlet 和 JSP。
阅读全文

摘要:含义 构造代码块(也称为初始化块)是放在类中的一段代码块,用{ } 进行包裹,位于类的成员变量和方法之间,用于完成初始化操作,通常和构造方法一起使用,执行于构造方法之前。 静态构造代码块整个生命阶段只运行一次——类加载阶段; 非静态构造代码块整个生命阶段至少运行一次,每当有类的实例被创建时非静态代码
阅读全文
摘要:
前言 提到拷贝,大家第一时间想到的可能都是克隆模式的深克隆,因为这个模式在面试中出现的机率非常高,同时实现的方式也比较容易:对象的类实现Cloneable接口并且重写clone()方法即可。但是在实际情况中克隆模式有时候其实并不适合用来拷贝对象,因为如果有很多的实体类都需要拷贝,这个时候难道把这些实
阅读全文

摘要:
出现背景 在以往并发情况下进行累加计数时通常使用AtomicLong,因为其底层是基于cas实现的,高并发下对单一变量进行CAS操作,从而保证其原子性。其它的线程都会进行不断自旋,这就产生了问题,随着并发线程数增加,等待线程的自旋时间也会大幅增加,白白造成了CPU资源的浪费; LongAdder问世
阅读全文

摘要:List代表有序的,元素可以重复的集合。 ArrayList和LinkedList区别 ArrayList的实现是基于数组,LinkedList的实现是基于双向链表; 对于随机访问ArrayList要优于LinkedList,ArrayList可以根据下标以O(1)时间复杂度对元素进行随机访问,而L
阅读全文
摘要:Java程序编写具有三大特征: 封装、继承和多态; 封装 对类中的方法和属性进行权限访问控制,只提供特定接口供外部访问,这样一方面增加了代码的规范性,另一方面增加了代码的访问安全性; 封装是面向对象编程语言对客观世界的模拟,在客观世界里,对象的状态信息都被隐藏在对象内部,外界无法直接操作和修改。对一
阅读全文
摘要:我们先不上结论,接下来一点点推导: public static void main(String[] args) { SpringApplication.run(Main.class, args); log.info("项目启动成功"); int a=1; add(a); log.info("a:{
阅读全文
摘要:三种代理方式之间对比 代理方式实现优点缺点特点 JDK静态代理 代理类与委托类实现同一接口,并且在代理类中需要硬编码接口 实现简单,容易理解 代理类需要硬编码接口,在实际应用中可能会导致重复编码,浪费存储空间并且效率很低 好像没啥特点 JDK动态代理 代理类与委托类实现同一接口,主要是通过代理类实现
阅读全文
摘要:JDK和JRE是java开发中使用度很高的专业名词,这两个本身还是有着很大的区别,接下来一起了解下: 1.JRE(Java Runtime Environment) JRE 是 Java 运行时环境。它是运行已编译java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,
阅读全文
摘要:要理解Java的一处编译处处运行这句话,首先需要知道平台的概念; 什么是平台 CPU处理器与操作系统的整体叫平台。CPU: 每种CPU又有特定的指令集;操作系统:不同的操作系统支持不同CPU的指令集; Java的跨平台性 java的跨平台是java编译器编译生成一个 .class 的中间代码(通过j
阅读全文