自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络-基础

TCP/IP四层(五层)模型TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求1. . . . . . . . . . . . . . . TCP/IP四层(五层)模型图2. . . . . . . . . . . . . . .理解应用层的作用, 初...

2020-03-27 20:46:01 162

原创 redis-like项目

Myredis项目源码项目目标项目使用技术栈与平台项目背景认识缓存认识redis项目功能项目演示启动服务器启动一个客户端redis-cli插入一些数据再启动一个客户端读取数据系统流程系统设计socket设计协议支持的数据类型创建一个内存数据库命令开发步骤创建Maven实现客户端与服务器连接获取socket的I/O流建立一个固定大小的线程池redis协议的处理内存数据库命令实现项目总结项目参考资料...

2020-03-09 18:11:48 912

原创 文件搜索项目

文件搜索项目项目目标项目使用技术栈与平台项目背景项目功能项目演示选择文件目录根据文件名搜索根据全拼搜索根据拼音首字母搜索系统流程整体流程文件对比流程技术栈介绍SQLite介绍Pinyin4j介绍JavaFX介绍系统设计sql表单 : 数据库设计工具类 : JDBC工具类设计数据库初始化任务工具类 : 拼音工具类JavaFX界面设计任务型 :多线程目录扫描任务设计业务型:本地文件、数据库文件对比及更...

2020-03-08 00:03:00 770

原创 深入了解JVM

如果你想深入了解虚拟机结构,但却无从下手,完全可以按这个顺序去学习1. . . . . . . . . . . . . .JVM(Java Virtual Machine),整体框架结构介绍2. . . . . . . . . . . . . .JVM虚拟机运行时数据区3. . . . . . . . . . . . . .运行时数据区-程序计数器和方法区4. . ...

2020-03-03 14:42:11 178

原创 MySQL重点面试题

1.阐述JDBC操作数据库的步骤建立数据库连接connection书写sql语句执行对象PrepareStatement执行sql语句如果是查询操作,获取结果集ResultSet,处理结果集2.

2020-03-01 18:55:34 2035

原创 剑指offer Java实现代码

<<剑指offer>><<剑指offer>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ~ 10<<剑指offer>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

2020-02-29 23:41:09 132

原创 Serializable & serialVersionUID作用

序列化是一种对象持久化的手段,普遍应用在网络传输、RMI等场景中,类通过实现 java.io.Serializable 接口以启用其序列化功能。但是,还有一个知识点并未展开介绍,那就是关于serialVersionUID ,这个字段到底有什么用?一、Serializable1.1 简介Java类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法进行序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。1.2 作用在分布式应用中,就得实现序列化

2022-03-10 20:05:03 647

原创 Spring5 狂神笔记

B站 https://www.bilibili.com/video/BV1WE411d7Dv狂神说Spring01:概述及IOC理论推导 https://mp.weixin.qq.com/s/VM6INdNB_hNfXCMq3UZgTQ狂神说Spring02:快速上手Spring https://mp.weixin.qq.com/s/Sa39ulmHpNFJ9u48rwCG7A狂神说Spring03:依赖注入(DI)https://mp.weixin.qq.com/s/Nf-cYENenoZpXqDj

2021-02-21 12:31:21 246

原创 mybatis入门之注解版 idea(含目录结构与sql语句)

mybatis入门之注解版maven目录结构1、创建一个maven项目2、 配置pom文件3、创建数据库及数据库表4、java类和接口4.1 User.java实体类4.2、UserMapper.java 接口5、mybatis相关配置4.1、db.properties文件4.2、mybatis_config.xml文件5、 测试(5步)5.1、MybatisUtils.java5.2、UserMapperTest.javamaven目录结构1、创建一个maven项目如果你的maven项目加载不了依

2021-02-19 19:29:18 263

原创 mybatis入门之XML配置 idea版(含目录结构与sql语句)

mybatis入门之XML配置maven目录结构1、创建一个maven项目2、 配置pom文件3、创建数据库及数据库表4、java类和接口4.1 User.java实体类4.2、UserMapper.java 接口4.3、UserMapper.xml 文件5、mybatis相关配置4.1、db.properties文件4.2、mybatis_config.xml文件4.3、log4j.properties5、 测试(5步)5.1、MybatisUtils.java5.2、UserMapperTest.jav

2021-02-19 19:13:49 552

原创 Kafka原理

主要概念:Kafka-cluster:Broker、Topic、Partition、Segment主从:Leader、Follower、Replica、ISR生产/消费:Producer、Consumer、Consumer Group一、Kafka集群Broker:一台 Kafka 机器就是一个 Broker。一个集群由多个 Broker 组成。一个 Broker 可以容纳多个 TopicTopic:可以理解为一个队列,Topic 将消息分类,生产者和消费者面向的是同一个 TopicParti

2020-09-15 23:37:10 154

原创 go中的iota关键字

package mainimport "fmt"func main() { const ( A = iota //0 B //1 C //2 D = "haha" //3 E //4 F //5 G = iota //6 ) const (...

2020-05-07 09:46:29 163

原创 面试题 : JDK8采用的是哪种垃圾收集器

垃圾收集器Serial(串行收集器)特性:单线程,stop the world,采用复制算法应用场景:jvm在Client模式下默认的新生代收集器优点:简单高效ParNew特点:是Serial的多线程版本,采用复制算法应用场景:在Server模式下常用的新生代收集器,可与CMS配合工作Parallel Scavenge特点:并行的多线程收集器,采用复制算法,吞吐量优先,...

2020-04-06 20:20:01 5054 6

原创 腾讯面试题:长度为10的数组,0~9的数字无序且可重复,找出重复的数字,要求:时间复杂度O(n),空间复杂度O(1);

长度为10的数组,0~9的数字无序且可重复,找出重复的数字,要求:时间复杂度O(n),空间复杂度O(1);其实就是位图的思想public class Main{ public static void main(String[] args) { int[] arr = {1,1,1,1,2,4,4,6,6,6}; for (int i = 0; i &lt...

2020-03-29 11:26:27 551

原创 ARP协议

认识以太网“以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;例如以太网中的网线必须使用双绞线; 传输速率有10M, 100M, 1000M等;以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等;认识MAC地址MAC地址用来识别数据链路层...

2020-03-27 20:36:16 418

原创 IP协议

主机: 配有IP地址, 但是不进行路由控制的设备;路由器: 即配有IP地址, 又能进行路由控制;节点: 主机和路由器的统称;IP协议格式4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因...

2020-03-27 20:08:49 266

原创 maven经常报错,改改你的setting.xml

如果你的maveni经常报错,不要再改这改那了,直接换掉你的setting.xml.地址 : apache-maven-3.5.0\conf\setting.xml<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor ...

2020-03-11 20:12:07 577

原创 mybatis入门小项目(含目录结构与sql语句)

目录结构第一步 : 配置Pom文件加载mybatis与mysql等依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...

2020-03-11 19:59:08 1552

原创 TCP协议

TCP协议:传输控制协议(Transmission Control Protocol)tcp协议格式源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;32位序号/32位确认号: 后面详细讲;4位TCP报头长度: 表示该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最大长度是15 * 4 = 606位标志位:URG: 紧急指针是否有效ACK: 确认...

2020-03-06 19:50:56 245

原创 四次挥手为什么要等2个MSL,而不是1个MSL

MSL是什么?MSL是TCP报文的最大生存时间四次挥手为什么要等2个MSL,而不是1个MSL等待2MSL时间主要目的是怕最后一个 ACK包对方没收到,那么对方在超时后将重发第三次握手的FIN包,主动关闭端接到重发的FIN包后可以再发一个ACK应答包。如果client直接closed,然后又向server发起了一个新连接,我们不能保证这个新连接和刚关闭的连接的端口号是不同的。假设新...

2020-03-06 00:56:12 4670 2

原创 TCP 为什么是三次握手,而不是两次或四次?

TCP 为什么是三次握手,而不是两次或四次?TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上两方面的需求!TCP可靠传输的精髓: TCP连接的一方A,由操作系统动态随机选取一个32位长的序列号(InitialSequence Number) ,假设A的初始序列号为1000,以该序列号为原点,对自2将要发送的每个字节的数据进行编号,1...

2020-03-05 23:14:09 285

原创 端口号

端口号端口号是什么端口号(Port)标识了一个主机上进行通信的不同的应用程序;端口号范围划分0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的.1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的认识知名端口号ssh服务器, 使用22端口ft...

2020-03-05 18:46:55 356

原创 HTTP协议

HTTP协议(超文本传输协议)什么是URL平时我们俗称的 “网址” 其实就是说的 URLHTTP请求的格式是什么样的?首行 : [发法] + [url] + [版本号]请求头(Header) : 请求的属性,冒号分隔的键值对;每组属性用\n划分,遇到空行Header部分结束请求体(Body) : 空行后面都是请求体.请求体可为空.如果请求体存在,那么请求头中会有一个Cont...

2020-03-05 18:31:14 118

原创 GET和POST的区别

GET和POST的区别修改服务器方面get请求不会在服务器上产生任何结果,所以通常说的安全就是指不会修改服务器信息post请求可能会修改服务器上的数据或信息,比如,发表的博客或者评论,都会对现在的界面进行修改,即都是post请求,也可以看作,post是动态的,get是静态的书写格式方面get方法 GET http://weibo.com/signup/signup.php...

2020-03-05 17:54:57 133

原创 TCP/IP四层(五层)模型图

TCP/IP四层(五层)模型图TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层...

2020-03-05 16:45:48 2155

原创 Java深浅拷贝(对象)

深浅拷贝(对象)Cloneable:CloneNotSupportedException只有子类实现了Cloneable接口后才可以使用Object类提供的clone方法。protected native Object clone() throws CloneNotSupportedException;要想让对象具有拷贝的功能,必须实现Cloneable接口(标识接口,表示此类允许...

2020-03-04 20:55:40 170

原创 JVM调优以及调优参数意义

JVM调优JVM调优设计哪几方面?合理的编写程序充分并合理的使用硬件资源合理的进行JVM调优对于非堆内存堆外内存文件句柄Socket句柄数据库连接文件限制文件大小,最好采用异步方式(写sql语句最好使用limit限制,避免栈溢出)网络IO:限流,并及时关闭大对象对于JVM是一个噩梦。避免使用大对象,如果使用尽量减少生存时间JVM调优原...

2020-03-04 20:34:57 218

原创 深入了解volatile关键字以及单例模式的双重校验锁

volatile关键字的两个作用关键字volatile可以说是JVM提供的最轻量级的同步机制,但是它并不容易完全被正确理解和使用。JVM内存模型对volatile专门定义了一些特殊的访问规则。当一个变量定义为volatile之后,它将具备两种特性。可见性第一是保证此变量对所有线程的可见性,这里的"可见性"是指 : 当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。...

2020-03-04 19:58:59 225 1

原创 JMM内存模型详解

JMM(Java Memory Model)内存模型详解java线程内存模型跟CPU缓存模型类似,是基于cpu缓存模型建立的,Java线程内存模型是标准化的,屏蔽掉了底层不同计算机的区别.CPU缓存模型JMM证明工作内存的存在public class JMM { public static boolean initFlag = false; public stat...

2020-03-04 18:00:34 276

原创 CPU多核并发缓存架构介绍

CPU多核并发缓存架构CPU工作原理首先CPU工作的时候,由控制单元充当大脑,负责协调。让运算单元做运算的时候,会首先从最靠近CPU的寄存器(其实是和CPU一体的)上读取数据,在寄存器上有CPU运行的常用指令如果寄存器上没有想要的数据,则就从三级缓存的L1级缓存中获取,如果L1取到数据了,会加载到寄存器中,再转输给CPU运算单元。如果L1中没有,则从L2级缓存中读取,同理,如果没...

2020-03-04 15:21:40 742

原创 JVM垃圾回收收机制

这里要讲的是JVNM的四种垃圾回收算法1.标记-清除算法2.复制算法(新生代回收算法)3.标记-整理算法(老年代回收算法)4.分代算法为什么要进行垃圾回收?回收无用的对象,清理无用的内存碎片,分配给新的内存,防止内存溢出或内存泄漏.怎么对可回收的对象进行标记?需要满足两个条件:经过可达性分析算法后,不可达的对象覆写了finalize()方法或者finalize...

2020-03-03 23:16:34 129

原创 回收方法区

回收方法区方法区主要回收的是那些东西?废弃常量无用的类。什么情况下会回收废弃常量回收废弃常量和回收Java堆中的对象十分类似。以常量池中字面量(直接量)的回收为例,假如一个字符串"abc"已经进入了常量池中,但是当前系统没有任何一个String对象引用常量池的"abc"常量,也没有在其他地方引用这个字面量,如果此时发生GC并且有必要的话,这个"abc"常量会被系统清理出...

2020-03-03 20:59:39 110

原创 GC Roots根与判断对象死活算法

都说无用的对象会被gc,那怎么判断哪些是无用的对象,那些还是有用的对象?引用计数法给对象增加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时,计数器就-1;任何时刻计数器为0的对象就是不能再被使用的,即对象已"死"。引用计数法实现简单,判定效率也比较高,在大部分情况下都是一个不错的算法。比如Python语言就采用引用计数法进行内存管理。但是,在主流的JVM中没有选...

2020-03-03 20:42:02 262

原创 运行时数据区-程序计数器,方法区,栈,堆区

运行时数据区线程私有区域:程序计数器、Java虚拟机栈、本地方法栈线程共享区域:Java堆、方法区、运行时常量池程序计数器程序计数器是一块比较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。如果当前线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是一个Native方法,这个计数器值为空。程序计数器内存区域是唯...

2020-03-03 18:21:54 312

原创 JVM虚拟机运行时数据区---一个程序详细运行步骤

JVM虚拟机运行时数据区想要真正了解各个区执行程序时究竟发生了什么,我们还是从代码开始public class Main { public static void main(String[] args) { Main main = new Main(); main.compute(); } private int compute()...

2020-03-03 17:22:00 159

原创 JVM(Java Virtual Machine)整体框架结构介绍

JVM框架结构执行Main.class的顺序先通过类装载系统把文件字节码装载到运行到方法区再通过字节码执行引擎执行相关代码完整 JVM 构成的三个部分类装载子系统运行时数据区(内存模型)字节码执行引擎浅谈堆大家学过jdk之后,估计都知道它存放的都是new出来的对象,深一点就会知道伊甸园,幸存者区和老年代,还有gc等等浅谈栈栈又叫虚拟机栈...

2020-03-03 15:38:59 285

原创 MySQL事务隔离级别与ACID

事务事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体.MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。事务基本操作创建一个测试表create table account( id int primary key, name varchar(50) not null defaul...

2020-03-01 17:34:59 176

原创 数据库索引底层原理与优化策略

博客内容1.索引数据结构红黑树, Hash, B+树详解2.索引是怎样支撑千万级表的快速查找3.如何基于索引B+树精准建立高性能索引4.联合索引底层数据结构又是怎样的5.MySQL索引优化最佳实践看完之后,会明白数据库底层的原理与优化什么是索引?索引是帮助MySQL高效获取数据的排好序的数据结构索引数据结构有哪些二叉树红黑树Hash表B-Treesel...

2020-02-29 23:05:23 494

原创 Java基础面试题16~30

16.接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?接口可以继承接口抽象类可以实现接口抽象类可以继承具体类也可以继承抽象类17.Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?都可以18.内部类可以引用它的包含类(外部类)的成员吗?有没有什么限...

2020-02-29 11:00:15 126

原创 Java中基本数据类型和引用数据类型的存放位置

Java中基本数据类型和引用数据类型的存放位置局部变量(方法中)基本数据类型 : int a = 10; 中a 和 10都放在栈中引用数据类型 : A a = new A(); 中 引用 在栈中,new A()在堆中成员属性(类中)基本数据类型 : int a = 10; 中a 和 10都放在堆中引用数据类型 : A a = new A(); 中 对象的引用和new A()都在堆中...

2020-02-28 13:36:47 740

空空如也

空空如也

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

TA关注的人

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