自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 作为程序员的你不得不懂的 github 高级搜索技巧

github 作为全球最大的项目托管平台,受众和欢迎程度自不必说,作为程序员的你真的知道如何高效的使用 github 搜索开源项目吗?可能有小伙伴会说:搜索框输入关键字谁不会呀,然后 clone 下来就好了嘛~我:呵呵哒~这只是初级阶段啦, github 光是搜索就有很多小技巧,学会使用这些技巧,会让你快速高质量的找到想要的项目。github 开源项目的组成name:项目名称description:项目的简要描述项目源码README.md: 项目的详细情况的介绍除了这些..

2020-11-02 13:47:57 178

原创 Spring源码解读 - Spring bean 的生命周期

IOC

2022-08-02 18:22:27 216

原创 Spring 源码解读 - IOC流程

IOC

2022-08-02 18:01:01 375

原创 Spring 源码解读(1) - Spring上下文构造方法的初始化

IOC

2022-08-02 17:38:28 250

原创 redis总结

redis的基础知识非关系型数据库是什么?有哪些?非关系型数据库是相对于关系型数据库而言,一般不遵循ACID原则,不适合存储 海量数据和较为复杂的数据。redis、mem redis是c语言开发的。 mem的value是没有类型的redis的端口号是什么?6379redis的客户端启动命令redis-cliredis一共多少个库16个库切换库select 数字redis项目中使用场景?分布式锁、限流器(手机号登录频次、短信发送频次、某业务功能的使用频次) app首页访

2022-03-03 18:29:23 480

原创 计算机网络协议

常见的网络协议TCP/IP 协议DNS协议DHCP协议FTP协议TCP协议UDP协议POP/STMP/IMAP协议POP收邮件协议STMP发邮件协议HTTP/HTTPS协议ARP协议等开放式的信息互联模型(OSI)物理层通信管道的原始比特流创建、维护、断开物理连接数据链路层地址解析,物理寻址建立数据连接网络层IP(互联网协议)/IPV6(互联网协议的第六个版本)协议控制子网的运行,IP地址、分组传输、路由选择传输层TCP/IP协议分割数据会话层不同

2022-03-03 08:48:39 899

原创 Centos 7 安装mysql

查看是否有mysql 的yum源yum list | grep mysql查看是否有mysql-server,由于某些yum源的版本。使用yum方式安装 wget https://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpmyum install mysql-server查看mysql是否开启service mysqld

2022-03-02 17:56:12 88

原创 Linux 基础知识

Linux中的目录结构/ : 代表根目录,一个硬盘一个根/bin:系统常用的命令目录/exc:发布目录。系统的核心内容,建议不要随意读写。/usr:用户目录。相当于windows中的program files目录/root或者~:root的根用户。相当于windows中的c:/user/administrator/home:保存其他用户目录的目录,/home/mamba/var:系统运行过程的数据目录Linux 中的常用命令pwd:输出当前工作目录,绝对路径cd:切换目录ls:

2022-03-01 14:56:50 662

原创 虚拟机安装centos 7

虚拟机安装Linux创建新的虚拟机选择Linux的ISO文件创建用户名密码密码设置为111111指定容量修改镜像位置安装设置密码设置为root,如果提示密码简单可以多点击两次完成等待安装重启初始设置结束配置后续设置设置为root虚拟机Linux centos7设置网络cd /etc/sysconfig/network-scriptsvi ifcfg-ens33ONBOOT默认是no,我们要改成yes重启客户端system

2022-03-01 13:52:32 464

原创 Java注解+反射机制

注解分类:JDK内置注解有:@Override、@SuppressWarning等元注解:解释注解的注解。元注解有:@Target 表明注解作用与类的什么位置(类、属性、方法)@Retention 表明注解的运行实际(运行时、编译时,默认编译期,比如@Oveerride)注解的作用编译检查、生成文档、运行时动态处理、编译时动态处理反射在程序运行期间动态创建对象,动态获取类的信息反射应用场景反射和自定义注解结合使用各种框架大量使用了反射机制,比如Spring的@Compone

2021-11-17 22:10:39 293

原创 Java 泛型

泛型出现的背景以及什么是泛型?在jdk1.5之前,没有指定泛型类型的时候,我们可以向集合中添加任意元素的对象。在获取集合元素的过程中,需要我们明确的知道使用的元素的类型,否则会出现ClassCastException异常。这种异常是在运行时异常,在编译期发现不了这种异常。针对这种情况,JDK1.5推出新特性-泛型,泛型提供了编译期类型检测机制,可以在编译期检测到非法的数据类型 。泛型的本质就是参数化类型,也就是所操作的数据类型是一个参数。泛型使用方式泛型类泛型接口泛型方法泛型类class 类名

2021-11-17 17:07:54 368

原创 Java基础之数据类型

数据类型的由来由于Java是一种强类型语言,声明一个变量必须规定数据类型(基本数据类型、引用数据类型)基本数据类型的分类(四类八种)整数型byteshortintlong浮点型floatdouble布尔型boolean字符型char整型占用字节范围byte 字节1-128~127short 短整型2-2^15 - 2^15-1int 整型4-2^31~ 2^31-1long 长整型8-2^63~ 2^

2021-11-16 15:17:52 773

原创 Java 集合&ArrayList源码分析

1-使用集合的好处 数组:长度固定、一旦指定,不能修改 保存同类型的元素 增加、删除元素比较麻烦 int[] ints = new int[1]; ints[0] = 1; //数组扩容 int[] ints1 = new int[ints.length + 1]; for (int i = 0 ; i < ints.length; i ++) {

2021-11-11 21:09:34 535

原创 Java 注解

@Target是修饰注解的注解,称为元注解@Deprecated表示已过时,可以修饰在包、类、方法、字段、参数,作用是做到新旧版本的兼容和过渡@SuppressWarnings({""})ngs({""})当我们不希望看到某些警告时,可以使用 SuppressWarnings 注解来抑制警告信息,{""}中可以写入希望抑制的警告信息,如:all...

2021-11-11 21:06:53 254

原创 Java 枚举

枚举是一组常量的集合自定义枚举类使用枚举类创建枚举类的特点:会隐式继承Enum类,枚举类是一个final 类,可以使用Javap 工具反编译验证枚举对象必须放在枚举类的首行不需要set方法,因为枚举对象值通常为只读构造方法私有化public enum AAEnum{ A(1,"1"), //常量名(参数列表),其实是调用构造方法 B(2,"2"), C(3,"3"); private Integer value; private String na

2021-11-11 21:05:41 74

原创 Java之字符串

1-实现了serializable,表示该类可以串行化,表明可以在网络中传输2-实现了Comparable,表明可以比较大小3-是final修饰的,不能被其他类继承4-底层是private final byte[] value,用于存储字符串内容,final修饰的,一旦赋值不能被改变, 不能被修改的意思是,地址不能被修改,但是可以修改其中单个字符// 不能被改变final byte[] a = {'a','b'};a[0] = 'c'; //可以改变其中的单个字符a = {'c'}; /

2021-11-11 21:04:24 455

原创 Java内部类

类的五大成员:属性、方法、构造器、代码块、内部类四种内部类:1-局部内部类(放在方法或者代码块中)2-匿名内部类(放在方法或者代码块中)3-成员内部类4-静态内部类局部内部类public class Out { private int a = 1; private void n3(){} private void n1(){ //3.局部内部类不能添加访问修饰符,但可以用final修饰 class Inner {

2021-11-11 20:59:40 73

原创 Java之序列化

java 中对象的序列化是指:将对象转化为以字节序列的形式表示,一个序列化后的对象,可以被写入到数据库或者文件中,也可以用于网络传输,一般当我们调用rpc(网络传输)的时候,经常需要我们的对象实现Serializable接口,序列化的最终目的是反序列化,反序列化后的字节序列可以恢复成Java对象,这个过程叫反序列化。# 序列化需要实现Serializable接口class Person implements Serializable{ //该字段不被序列化 private transi

2021-11-11 20:58:06 75

原创 Java 异常及处理

程序运行过程中发生的不正常行为叫做异常异常体系图Error栈溢出内存溢出Exception运行时异常空指针异常数学运算异常类型转换异常 classCastException数组下标越界异常数字格式化异常 NumberFormatExceptionint a = Integer.parseInt("s");编译时异常是指代码在编译期间就必须处理的异常,否则代码不能编译通过IOExceptionClassNotFoundExceptionFileNotFoundExcept

2021-11-11 20:55:49 416

原创 java 之 hashCode & equals & ==

==判断基本数据类型,判断的是值是否相等判断引用数据类型,判断的是地址是否相等1:A a = new A(); A b = a; A c = a; a == b == c ;//trueequals()是Object的方法,只能判断引用类型是否相等,默认判断的是地址是否相等子类往往重写该方法,判断内容是否相等,比如Integer、StringObject的equals()public boolean equals(Object obj) { return (this

2021-11-11 20:53:36 77

原创 Java关键字final

final 关键字的作用是防止数据被修改,保证代码的安全。可以修饰类、类中的方法、变量、参数修饰类如:String 类public final class String implements java.io.Serializable, Comparable<String>, CharSequence { ... }被 final 修饰的类,表示该类不可以被继承,防止被修改。修饰方法当不希望子类重写父类的某个方法时,可以使用 final 修饰该方法public

2021-11-11 20:51:48 92

原创 java 关键字static

static 的作用变量方法代码块内部类被static 修饰的成员变量个方法,只属于类本身,不属于类的某个对象。static 修饰的成员变量和方法从属于类,普通方法和变量从属于对象什么情况下需要使用静态方法?方便在没有创建对象的时候调用类中的静态方法和静态变量, 调用该方法的时候不用实例化,比如一些工具类静态变量static成员变量的初始化顺序按照定义的顺序进行初始化。静态方法静态方法不能调用非静态成员变量,否则编译失败非静态方法中可以访问静态方法和静态成员变量static 方法

2021-11-11 20:50:06 534

原创 Java基础-基本数据类型的包装类

常量池常量池是为了方便快捷的获取某些对象而出现的,当需要一个对象时,就从常量池中取出(如果没有就创建一个),因此在需要重复创建相等变量时节省l时间。基本数据类型都有对应的包装类。包装类大部分都实现了常量池技术。即:Byte、Short、Integer、Long、Character、Boolean.前面四种默认在[-128-127]区间内缓存数据,Character在[0-127]缓存数据。如果超出范围会创建。浮点型并没有实现常量池技术。Double d1 = 1.2;Double d2 = 1.

2021-11-07 22:49:43 89

原创 Java基础-注解

@Target是修饰注解的注解,称为元注解@Deprecated表示已过时,可以修饰在包、类、方法、字段、参数,作用是做到新旧版本的兼容和过渡@SuppressWarnings({""})ngs({""})当我们不希望看到某些警告时,可以使用 SuppressWarnings 注解来抑制警告信息,{""}中可以写入希望抑制的警告信息,如:all...

2021-11-03 17:33:38 61

原创 Java基础-运算符

1:短路与&&。a&&b,当a为false时,程序不会再判断b的逻辑判断 int a = 6; int b = 2; if(a < 1 && b++ >5){ System.out.println(1111); } System.out.println(b); // 2 int a = 6; int b = 2; if(a < 8 && b++ >5){

2021-11-03 17:31:43 520

原创 Java基础之数据类型

数据类型的由来由于Java是一种强类型语言,变量必须规定数据类型(基本数据类型、引用数据类型)基本数据类型的分类(四类八种)整数型byteshortintlong浮点型floatdouble布尔型boolean字符型char整型占用字节范围byte 字节1-128~127short 短整型2-215~215-1int 整型4-231~231-1long 长整型

2021-11-03 17:24:07 117

原创 Mysql日志

Mysql 中的日志种类binlog二进制日志文件undo log回滚日志,实现事务的原子性和MVCCredo log重做日志,实现事务持久性relay log中继日志error log错误日志slow query log慢查询日志general log一般查询日志binlogbinlog 记录了所有的 DDL (创建表、修改表、删除表)、DML(crud)操作,包含语句的消耗时间。主要目的是复制和恢复使用场景主从复制master 端

2021-04-20 18:19:18 103

原创 Mysql 事务

MySQL 逻辑架构客户端连接层负责连接管理、授权认证、安全等每个客户端的连接都对应服务器的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到 MySQL 服务器时,服务器对其进行认证。可以通过用户名密码或者SSL密钥证书的形式进行认证。服务器层负责解析查询(编译 SQL),并对其进行优化,如调整表的读取顺序、选择合适的索引等。对于select 语句,在解析之前,服务器会先查询缓存,如果能找到对应的查询结果,则无需进行查询解析、优化等过程,直接返回查询结

2021-04-20 10:03:29 393

原创 读完这篇,你再也不怕mysql面试了!

mysql 数据库执行 sql 的原理客户端连接连接器连接器是负责客户端跟 mysql 服务端建立连接,以及验证身份和权限。连接器查询缓存文件,如果命中,就直接返回结果缓存文件很容易失效,只要对表做增删改操作,缓存会清空mysql 8 以后取消了缓存功能否则分析器会对 sql 进行语法分析优化器对 sql 检测,是否可以优化,是否用到索引,以及索引选择执行器操作存储引擎(存储引擎提供读写接口),返回数据mysql 的事务ACID一致性是最终结果保证原子

2021-02-01 22:49:09 90

原创 Java 源码解读之 String 类

String 类定义package java.lang; public final class String implements java.io.Serializable, Comparable<String>, CharSequence {.....}String 类是 java lang 包下的一个类被 final 修饰的一个常量类,不能被任何类继承,被创建后,该对象的字符序列是不可变的,包含该类后续的所有方法都不能修改该对象,直至该对象被销毁,该类的一些方法,

2020-11-26 22:29:27 140

原创 Java 反射总结

项目中哪些地方用到了反射?

2020-10-12 20:46:44 80

原创 分布式一系列问题的解决方案总结

分布式事务如何实现?TCC 优点缺点?使用最终一致性

2020-10-12 01:09:48 362

原创 Java 注解 和 反射

注解注解的作用是:对注解对象增加了额外的辅助功能,配合反射机制访问元数据;可以被其他程序读取,格式是:@…使用位置:package、class、method、filed,元注解作用是:定义其他注解的注解;元注解存在 annotation 包下;四个元注解:@Target@Retention@Documented@Inherited/** * ElementType 注解可以作用的地方 */@Target(value = {ElementType.METHOD, Eleme

2020-10-11 23:07:15 68

原创 Mybatis 使用

Mybatis 基础知识Mybatis 的执行过程加载 mybatis 配置文件,得到一个输入流通过 SqlSessionFactoryBuilder().build() 加载输入流, 从而获得 SqlSessionFactory, SqlSessionFactory 是单例的;相当于数据库连接池通过 SqlSessionFactory.openSession(), 获取 SqlSessionSqlSession 执行 xxMapper.xmlsqlSess

2020-10-11 23:05:48 134

原创 计算机网络协议

HTTPhttp 是超文本传输协议超文本。不单单是文本,还可以是图片视频音频TCP / IP 的网络模型是什么?一般为4层应用层http、ftp、dns传输层tcp、udp网络层ip网络接口层OSI 七层网络模式是什么?应用层表现层会话层传输层网络层链路层物理层HTTPS 是什么?超文本安全传输是 HTTP + SSL/TSL安全性保证是 SSL/TSL 做的HTTP 和 HTTPS 的区别是什么?http 在地址栏是: http:// 开头ht

2020-10-11 23:02:35 114

原创 Nginx

Nginx 有哪些负载均衡策略?轮询一致性哈希相同请求参数都会打到同一台机器上…加权

2020-10-11 21:38:06 102

原创 Maven 总结

maven 是什么?maven 是一个基于 Java 平台的项目构建、依赖管理工具maven 项目结构有哪些?src/main/javaJava 源代码scr/main/resourcejava 配置文件src/test/javajava 测试代码src/test/resourceJava 测试代码的配置文件/target编译后的class 文件。jar warpom配置文件maven 常用命令有哪些?mvn deploy 发布项目mvn test 单元测试mvn

2020-10-11 21:16:35 1358

原创 设计模式总结

单例模式工厂模式最熟悉的其余两种模式?

2020-10-11 18:49:23 810

原创 SpringMVC

spring mvc 的工作原理是什么?客户端发送请求到dispatcherservletdispatchservlet 查询到handlermapping 找到处理的controllercontroler 处理业务返回 modelandviewdispatchservlet 查询modelandview 找到指定视图前端渲染视图...

2020-10-11 17:54:50 69

原创 Spring 源码解读(2) - Spring IOC 容器初始化的方式

IOC

2020-10-11 16:26:56 166

空空如也

空空如也

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

TA关注的人

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