- 博客(33)
- 收藏
- 关注
原创 JVM架构、JVM垃圾回收机制、垃圾回收算法、垃圾回收器、JMM(内存模型)
1 JVM架构1-1 JVM位置在哪里?硬件——>OS——>JVM即:JVM在操作系统之上。1-2 JVM架构分三大块:Class Loader Subsystem 类加载子系统Runtime Data Area 运行时数据区Execution Engine 执行引擎画图:1-3 类加载器位置:在类加载子系统。类加载过程:加载——>链接(验证、准备、解析)——>初始化双亲委派机制:保证类加载和程序的安全。1)类加载器收到类的请求2)将这
2022-04-28 11:00:32
205
原创 Java后端刷面经1
1 介绍项目我做的项目是线上商品交易平台,主要实现了用户登录,商品展示,商品详情展示,商品秒杀功能。服务端基于SpringBoot框架搭建项目后台。数据库使用MySQL,并且使用Redis来环节数据库的压力。2 限流怎么实现的?限流是通过Redis预先存储商品的库存数量,在Redis实现预减缓存,判断是否有库存;lua脚本实现减库存数据操作的原子性;也加了验证码辅助,让请求分散开。使用计数器算法限流,超过数量的请求拒绝。3 超卖问题怎么解决?Redis实现预减缓存,库存-1后大于0可以继续执行,小
2022-04-27 20:38:22
941
原创 SSM框架+SpringBoot简介
1 SSM(SSM 框架集)SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。1-1 SpringSpring就像是整个项目中装配Bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架
2022-04-27 11:48:55
11075
1
原创 服务器(Linux)安装MySQL和远程访问
1 Linux安装MySQL1)选择安装方式完全的tar包,离线安装。但是这种方式很麻烦,要配置环境变量之类的。在线安装,自动配置环境变量,不用手动配置。2)准备好源要与操作系统对应,我的适应centos7 。指令:yum -y install mysql80-community-release-el7-5.noarch.rpm安装源成功。3)安装MySQL。指令:yum -y install mysql-community-server等待联网下载安装的过程
2022-04-24 19:25:41
797
3
原创 TCP的三次握手和四次挥手
1 三次握手1-1 过程描述首先Client端发送连接请求报文Server端接受连接后回复ACK报文,并为本次链接分配资源。Client端收到ACK报文后也向Server端发送ACK报文,并分配资源,这样TCP连接就建立了。1-2 小结小结:三次握手的关键是要确认对方收到了自己的数据包。这个目标是通过 “ 确认号(ACK)”字段实现的。计算机会记录下自己发送的数据包序号Seq,待收到对方的数据包后,检测“确认号”字段,看ACK = seq+1是否成立,如果成立说明对方正确收到了自己的数据包。
2022-04-18 15:50:37
2414
原创 Java线程基础
1 知识点概念理解:程序、进程、线程单线程 和 多线程并发 和 并行线程的使用:继承Thread类 和 实现Runnable接口Thread类 VS 实现Runnable接口线程常用方法用户线程 和 守护线程线程的生命周期线程同步机制互斥锁线程死锁释放锁 和 不释放锁的情况2 手写笔记3 代码演示窗口售票代码:package threaduse;/** * @author Li * @data 2022/3/20 - 14:49 */public
2022-03-21 15:52:18
116
原创 Java泛型 + JUnit测试框架使用
1 知识点泛型的引出 / 为什么有泛型?泛型的语法泛型的介绍泛型的好处泛型的细节自定义泛型类及其细节自定义泛型接口及其细节自定义泛型方法及其细节泛型的继承和通配符说明JUnit测试框架2 手写笔记3 JUnit测试框架用法传统方式测试方法,要在main函数调用。用JUnit测试。...
2022-03-19 11:06:17
414
原创 腾讯云重装系统后不能远程账户密码登录
1 服务器重装系统起因腾讯云服务器redis没设密码,被黑。2 腾讯云服务器重装系统3 重装系统之后只能public key登录1)需要先关机2)重设密码3)开机4 远程账号密码登录完成以上步骤,就能Xshell远程账号密码登录了!...
2022-03-15 09:27:30
1963
原创 Java面向对象—类的五大成员—内部类
1 类的五大成员1)属性2)方法3)构造器4)代码块5)内部类2 有4种内部类1)局部内部类2)匿名内部类(重点!!!!!!)3)成员内部类4)静态内部类3 学习内部类书写笔记4 匿名内部类代码演示package innerClass_;/** * @author Li * @data 2022/3/13 - 9:36 *//* 匿名内部类: 1 本质是类 2 内部类 3 没有名字 4 同时还是一个对象 */public cla
2022-03-13 16:44:11
2157
2
原创 2022-3-7面试问题
1)super关键字 和 this 的区别?2)equels方法和==区别?3)Object类方法?4)nstanceOf比较运算符,永于判断对象的(编译 | 运行)类型是否为XX类型或者XX类型的子类型?运行。5)动态绑定机制?当调用对象方法的时候,该方法会对该对象的运行类型(内存地址)绑定。6)属性可以重写吗?属性没有重写之说,只看编译类型。7)8继承:向上转型时,可以调用子类的特有成员吗?不可以。因为编译器只能理解编译类型。(编译不会通过)...
2022-03-09 17:23:44
142
原创 集合—ConcurrentHashMap源码
4-3 ConcurrentHashMap(2021-11-11)1 ConcurrentHashMap jdk1.8简介jdk1.8中ConcurrentHashMap的结构是:数组+链表+红黑树。2 ConcurrentHashMap在jdk1.7和jdk1.8中的区别JDK 1.7 使用数组+Segment+分段锁的方式实现。Segment继承自重入锁 ReentrantLock,并发度与 Segment 数量相等。ConcurrentHashMap定位一个元素的过程需要进
2022-03-04 09:29:31
250
原创 集合—Hashtable源码
4-2 Hashtable(2021-11-10)1 Hashtable基本介绍存放键值对。键和值都不能是null,不然会抛出NullPointerException。是线程安全的,HashMap线程不安全。2 源码2-1 无参构造函数public Hashtable() { //初始化容量为0。 this(11, 0.75f);}2-2 putpublic synchronized V put(K key, V value) { //添加一组k-v。 // 保证v
2022-03-04 09:27:54
176
原创 集合—HashMap源码
4-1 HashMap源码(2021-11-9)1 Map接口和常用方法(jdk1.8)用于保存具有映射关系数据key-value双列元素。Map中的key和value可以是任何类型元素,会封装到HashMap$Node对象中。Map中的key不允许重复,有相同的key时,就替换。Map中的key可以为null,value也可以为null;但是key只允许有一个null,value可以有多个。常用key作key,但是其他对象也可以。Node实现了Entry接口。2
2022-03-04 09:26:31
406
原创 集合—HashSet源码
3-1 HashSet(2021-11-7)1 Set接口基本介绍无序(添加和取出的顺序不一致,但取出顺序是固定的),没有索引。不允许重复元素,所有最多包含一个null。2 Set接口常用方法2-1 HashSet介绍构造函数:HashSet底层是HashMap。public HashSet() { map = new HashMap<>(); //底层是hashmap}HashMap底层是(数组+链表+红黑树)1.7:组+链表:是因为存储效率太低了。
2022-03-04 09:19:57
294
原创 集合—LinkedList源码
2-3 LinkedList(2021-11-4)1 说明LinkedList底层实现了双向链表和双向队列特点。可以添加任何元素(可重复,可null)。线程不安全,没有实现同步。属性:size(链表中元素)first(指向 维护的链表(数据)的第一个元素)last(指向 维护的链表 最后)每个节点(Node对象),里面又维护了prev,next。2 源码无参构造:public LinkedList() { //size = 0}add:public bool
2022-03-04 09:17:12
184
原创 集合—Vector源码
Vector(2021-11-3)1 Collection接口遍历元素方式:使用迭代器。for循环增强。1-1 迭代器遍历迭代器基本介绍:Interator对象成为迭代器,主要用于遍历Collection集合中的元素。所有实现了Collection接口的集合类都有一个interator()方法,用于返回一个实现了Interator接口的对象,即可以返回一个迭代器。Interator仅用于遍历集合,Interator本身不存放对象。Interator结构:Iterator i
2022-03-04 09:16:04
158
原创 集合—ArrayList源码
一 集合(2021-11-2)动态保存任意多个元素,数据类型可以不一样。提供了一系列方便操作对象的方法:add,remove,set,get(增删改查)。比数组代码简洁。1 集合框架体系集合主要是两组:单列集合(集合中放的单个对象) ; 双列集合(键值对形式)。Collection 接口有两个重要的子接口 List Set , 他们的实现子类都是单列集合。#mermaid-svg-UVpHrKsMd4jVtFYa {font-family:"trebuchet ms",verda
2022-03-04 09:04:59
177
原创 2021-09-29
随手记——爬虫是什么?爬虫是什么?网络爬虫,跟着python火了。这个概念能追述到万维网-互联王诞生之时。在我们没有搜索引擎的时候,互联网只是集合了全部文件传输站点,用户只能手动查找需要的文件。最开始还是能很快找到想要的文件,但是随着文件数量的增多,在大量的文件中手动查找无异于大海捞针。为了快速找到目标文件,人们创造了自动化的探测程序,就是网络爬虫。网络爬虫简称爬虫,也叫网络蜘蛛、网络蚂蚁、网络机器人等,可以代替人类自动在互联网中进行数据信息的采集与整理。当然浏览信息的时候需要按照我们制定的规则进行
2021-10-30 08:43:21
261
原创 2021-05-05——Python安装第三方库wordcloud出现错误解决方法
python安装第三方库wordcloud出现错误解决方法一、步骤一:最开始我是按照下面链接这个文章安装的,安装wordcloud可能需要安装其他的包,可能需要升级pip,按照cmd中的错误提示操作安装需要的包即可。ps:pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。https://blog.youkuaiyun.com/qq_44712013/article/details/113898934?ops_request_misc=%257B%25
2021-05-05 11:30:34
1171
原创 2021-03-21——学习数据结构与算法(使用Java)遇到问题(未解决):给栈写一个插入函数
学习数据结构与算法(使用Java)遇到问题(未解决):给栈写一个插入函数一、问题描述对我写的栈这个类想给它写一个插入函数,用了两种方式,为什么第一种方式输出时不对的,插入不成功?主类代码:public class Main { public static void main(String[] agrs) { //创建一个可变数组 MyArray ma = new MyArray(); //获取长度 int size = ma.size(); ma.show(); Sy
2021-03-27 19:15:26
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人