自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 类加载过程

文章目录类加载过程 类加载过程 类的加载(不是new出来的对象),连接,初始化过程都是在程序运行期间完成的 连接过程可分为三个部分 验证。验证加载的class文件是否正确符合规范 准备。为类中的静态变量分配内存,并附上初始值。如int初始值为0,boolean为false,引用类型为null 解析。将类,字段,方法的符号引用转成可以使用的直接引用 初始化 类和接口只有在 “首次主动使用” 时才进行初始化 通过new创建类的实例 对静态变量取值或者赋值 static String a = “1”

2023-03-16 15:55:15 106

原创 排序算法。

一、冒泡排序 重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。 比较相邻的元素。如果第一个比第二个大,就交换它们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 重复步骤1~3,直到排序完成。 public static void main(String[] args) { int[] sortArray = new int[] {1, 8, 9, 65, 3, 8

2023-03-16 15:54:02 118

原创 rabbitmq

一、应用场景 异步处理,比较耗时又不需要同步的操作可以放入队列中进行传递请求,这样消息的发送方和接收方互不干扰即为解耦 广播,一次发送大家共享,减少了冗余的操作 流量削峰,一次性有大量请求过来,防止应用崩溃。所有请求全部进入消息队列,消费者逐个处理。 二、消息队列过程 客户端连接到消息队列服务器,建立TCP连接也就是connection channel是在connection内部创建的逻辑连接,线程将会创建单独的channel进行通讯,而不需要每次都创建一个connection。 客户端声明一个exc

2023-03-16 15:52:25 163

原创 常用工具类

一、Arrays 数组被声明后,长度不能发生改变,如果继续往数组添加元素会报错 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_default_https_context =

2023-03-16 15:51:18 95

原创 SQL优化

避免where条件加null。可以加上默认值 避免使用!= 和<> 避免使用or select id from t where num=10 or num=20 可以这样查询: select id from t where num=10 union all select id from t where num=20 不使用like %a% where左边不要计算 连续的值123456 between .

2023-03-16 15:50:06 169

原创 Threadlocal

内存泄漏:不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露 当ThreadLocal t = new ThreadLocal,代码执行完成后t被回收,但是Thread类中的MAP的value没有被回收,只有等线程结束后才回收。但是遇到线程池,会导致线程重复。造成内存泄漏 t的值使用完后及时调用remove方法 ...

2023-03-16 15:49:00 92

原创 mysql事务

一、mysql事务四大特性 ACID A 原子性Atomicity 执行的事务全部成功,或者回滚到执行事务前的状态 C 一致性Consistency 事务执行前后数据必须一致,执行前a+b=1,执行后也是a+b=1 I 隔离性isolation 多个事务之间的数据,彼此独立和透明互不影响 D 持久性durability 事务一旦被提交,数据改变永久性 二、mysql事务隔离级别 1. 脏读:事务A读取事务B更新的数据,然后事务B回滚,A读到的数据是脏数据 2. 不可重复读:事务A多次读取同一数据,事务B

2021-07-12 00:05:19 133

原创 线程池解析

一、几种常用线程池 Executors.newSingleThreadExecutor() 单个的线程池 使用的LinkedBlockingQueue Executors.newFixedThreadPool(10) 固定数量线程池 使用的LinkedBlockingQueue Executors.newCachedThreadPool() 可缓存的线程池 使用的SynchronousQueue 通过ThreadPoolExecutor构造器,前面三个也是通过构造方法创建public ThreadPool

2021-07-07 11:01:14 88

原创 spring

生命周期 Spring启动,查找并加载需要被Spring管理的bean,进行Bean的实例化 Bean实例化后对将Bean的引入和值注入到Bean的属性中 如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法 如果Bean实现了BeanFactoryAware接口的话,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入 如果Bean实现了ApplicationContextAware接口的话,Spr

2021-06-29 11:13:31 104

原创 redis

一、redis基础数据结构 字符串string 列表list 集合set 有序集合sort set 散列hash 二、基本命令 dbsize 获取存储数据个数 exists key 判断是否存在key del key 删除指定数据 scan 0 match key count 10 从0下标开始查找key,查找10条数据 type key 返回key的数据类型 expire key 1000 设置key1000秒过期时间 ttl key 返回整数表示剩余时间,-1表示永久有效,-2已经失效过期 二、

2021-06-27 23:05:17 343

原创 Thread相关方法

一、Thread.currentThread().interrupted() 中断当前线程,如果线程被阻塞sleep, wait, join则会中断阻塞,抛出异常。可以捕获异常处理逻辑 二、Thread.interrupted() 作用:返回当前线程是否被中断。且如果当前线程被中断,取消中断过程,线程被阻塞。如果未被中断,则线程被阻塞 三、Thread.currentThread().isInterrupted() 返回线程是否被中断,无取消中断的效果。 如果截图,返回了线程被中断,最后的执行

2021-06-04 17:06:26 379

原创 守护线程.

前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot a

2021-06-02 14:26:46 77

原创 分布式锁。

分布式锁一般有三种实现方式 数据库乐观锁。 基于Redis的分布式锁。 基于ZooKeeper的分布式锁。 一、Redis实现分布式锁 通过setnx,不存在key则插入成功,存在key则不插入 且加上过期时间,防止释放锁失败一直死锁 插入和设置过期时间是原子性操作 释放锁,只有当前持有改锁的客户端能够释放锁。通过Lua脚本执行,如果redis value相同才删除key /** * 获取分布式锁, 且锁加上过期时间 * 单个redis服务器, 已有key存在, 则函数不会调用

2021-03-30 18:42:12 96

原创 深浅复制。

一、浅复制 将一个对象的引用指向另外一个新的对象,两个对象的引用地址相同 二、深复制 通过实现Cloneable接口,重写clone()方法, 对于基本数据类型的成员对象,因为基础数据类型是值传递的,所以是直接将属性值赋值给新的对象。基础类型的拷贝,其中一个对象修改该值,不会影响另外一个(和浅拷贝一样)。 对于有多层对象的,每个对象都需要实现 Cloneable并重写 clone() 方法。 public class Student implements Cloneable { publi

2021-03-25 17:32:04 114

原创 类加载器。

一、类加载器ClassLoader 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_def

2021-03-24 11:46:35 96

原创 AbstractQueuedSynchronizer

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码

2021-03-03 12:06:24 73

原创 ArrayList Collections.synchronizedList CopyOnWriteArrayList

文章目录一、Collections.synchronizedList二、使用步骤1.引入库2.读入数据参考内容 一、Collections.synchronizedList 1. 使用方法 List list = Collections.synchronizedList(new ArrayList()); 且该方法返回的是一个方法都加锁的对象SynchronizedList 2. 多线程下使用迭代器访问数据时,需要手动加锁 3. 通过反编译后的.class文件看出,增强for循环底层用的迭代器实现 二、

2021-03-02 16:52:57 179

原创 泛型。。。

泛型, Object和?的区别前言一、pandas是什么?二、Object和?2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、Object和? 1. Object是所有类的父类 2. ?,当数据类型不

2021-02-26 15:46:32 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除