java基础
java满杯百香果
努力加油
展开
-
jdk8ArrayList源码解析
这里写目录标题一、初始化源码分析1.无参2.有参2.传入一个集合二、添加元素add(Object e)源码分析一、初始化源码分析new ArrayList();ArrayList就是用数组实现的List容器,既然是用数组实现,当然底层用数组来保存数据啦1、空数组可以指定容量初始化,如果没有指定或者指定容量为 0 ,elementData会被设置成空数组。空数组在添加第一个元素时会扩大到 10( 默认容量是 10) ,如果初始化时指定数组容量小于 10 ,会被设置成10(后面分析添加源码会看到)原创 2022-08-22 21:49:39 · 188 阅读 · 0 评论 -
Java常考知识点
String为什么是不可变的String类中使用字符数组保存字符串,数组前有final修饰符,所以string对象是不可变的。StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串,是可变的String str1 = new String(“abc”)创建了几个对象一个或者两个。...原创 2022-08-08 16:01:59 · 1602 阅读 · 0 评论 -
Iterator(迭代器)
迭代器 it 的两个基本操作是 next 、hasNext 和 remove。1.调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。2.调用 it.hasNext() 用于检测集合中是否还有元素。3.调用 it.remove() 将迭代器返回的元素删除。// 引入 ArrayList 和 Iterator 类import java.util.ArrayList;import java.util.Iterator;public class RunoobTest {.原创 2022-05-18 10:30:44 · 115 阅读 · 0 评论 -
hashmap手撕源码笔记
文章目录一 、概述二 、什么是hash三、HashMap原理讲解1. Node的数据结构分析2.底层数据结构3.什么是Hash碰撞4.解决Hash碰撞的方法5.什么是链化6.HashMap的扩容原理7.手撕源码1.hashmap构造方法2.HashMap put 方法分析 - putVal3.HashMap resize 扩容方法分析 核心4.HashMap get 方法分析5.HashMap remove方法分析6.HashMap replace方法分析一 、概述我们先来看一张图,回顾一下之前学习原创 2022-08-22 21:50:34 · 347 阅读 · 0 评论 -
二进制&运算和 1<<4(左移4位)
参加运算的两个数据,按照⼆进制进⾏按位与的运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;即:两位同时为“1”,结果才为“1”,否则为0。例如:2&4 即 0000 0010 & 0000 0100 = 0000 0001 因此,2&4的值得0。左移四位0000 0000 0000 00010000 0000 0001 00001 <<4 数值是16...原创 2022-05-13 10:54:18 · 4287 阅读 · 0 评论 -
java 异或代码编程
什么是异或异或的运算方法是一个二进制运算:1^1=00^0=01^0=10^1=1两者相等为0,不等为1.0^N=NN^N=02)异或运算满足交换律和结合率a^b=b ^a(a^b) ^c= a ^( b ^ c)int a=甲;int b=乙;a=a ^b; a=甲 ^ 乙; b=乙;b=a ^b; a=甲 ^ 乙; b=甲 ^ 乙 ^ 乙=甲 ;a=a ^b; b=甲 a=甲 ^ 乙 ^ 甲=乙;必须满足内存区域原创 2022-05-13 09:11:03 · 717 阅读 · 0 评论 -
springboot之实现线程池(事务编程方式)
提示:以下是本篇文章正文内容,下面案例可供参考一、线程池配置类import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.scheduling.concurren.原创 2022-05-07 17:57:56 · 1248 阅读 · 0 评论 -
线程池实战-解析csv500w数据-笔记
提示:工作中的线程实战文章目录前言一、解析csv文件配置类二、线程池实现类三、xml文件三、数据库设计截图前言提示:实战背景:解析500万数据csv文件入库这里面没有写事务,最好加上事务,防止中途代码报错,导致没有回滚,数据插入数据库。提示:以下是本篇文章正文内容,下面案例可供参考一、解析csv文件配置类package com.service.boot.config;import java.io.BufferedReader;import java.io.File;import.原创 2022-04-27 11:48:27 · 449 阅读 · 1 评论 -
线程池笔记
文章目录一、什么是线程池?二、线程池的7个参数三、线程池的7个参数提示:以下是本篇文章正文内容,下面案例可供参考一、什么是线程池?楠哥教你学Java 线程池讲解: 线程池视频.二、线程池的7个参数corePoolSize:核心线程数,线程池正常情况下保持的线程数,大户人家“长工”的数量。maximumPoolSize:最大线程数,当线程池繁忙时最多可以拥有的线程数,大户人家“长工”+“短工”的总数量。keepAliveTime:空闲线程存活时间,没有活之后“短工”可以生存的最大时间。原创 2022-04-11 14:57:13 · 358 阅读 · 0 评论 -
线程创建方式笔记
文章目录一、继承Thread二、实现Runnable三、通过Callable和Future创建线程线程的生命周期1.线程休眠sleep()一、继承Thread(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。 public static class AThread extends Thread {原创 2022-04-11 11:02:52 · 66 阅读 · 0 评论 -
java基础 IO流非常棒
我是感觉讲的好,自己留着回忆转载:https://blog.csdn.net/sinat_33921105/article/details/81081452转载 2022-04-11 11:04:33 · 62 阅读 · 0 评论