自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孙志南的博客

业精于勤荒于嬉,行成于思毁于随

  • 博客(26)
  • 收藏
  • 关注

原创 使用idea连接阿里云数据RDS实例方法

idea连接阿里云RDS介绍具体步骤步骤一:安装JDBC驱动步骤二:阿里云RDS设置白名单步骤三:新增MySQL连接常见问题[08001] Public Key Retrieval is not allowed.[28000][1045] Access denied for user 'root'@'xxxx' (using password: YES)介绍个人在使用阿里云数据库的时候需要通过idea连接到自己购买的阿里云RDS,这里记录下连接方法,方便后面回顾。具体步骤步骤一:安装JDBC驱动我

2020-11-29 22:53:53 2299 2

原创 JVM学习笔记(二)——垃圾收集器

垃圾收集器如何判别垃圾?(一) 引用计数(二) 可达性分析垃圾回收算法——如何回收垃圾?(一) 复制(Copying)(二) 标记-清除(Mark-Sweep)(三) 标记-整理(Mark-Compact)分代介绍——年轻代、老年代基本介绍年轻代老年代常见的垃圾收集器(一) Serial收集器(二) ParNew收集器(三) Parallel Scavenge收集器(四) Serial Old收集器(五) Parallel Old收集器(六) CMS收集器(七) G1收集器——Garbage First如

2020-10-24 06:40:36 220

原创 JVM学习笔记(五)——常见问题说明

常见问题隔代引用与跨区引用解决方法——记忆集写屏障(Write Barrier)用关系改变(对象消失)解决方案浮动垃圾隔代引用与跨区引用解决方法——记忆集在分代垃圾收集器中,是不是会有隔代引用,也就是说年轻代里的对象引用老年代里对象,同理老年代的对象引用年轻代里的对象。如果是年轻代引用老年代还好说,MinorGC是不会回收这类对象,但是如果是老年代引用年轻代里的对象,MinorGC如何区分年轻代中的对象有没有被老年代引用呢?如果不区分,那么是不是每次回收都要区老年代里去扫描一次?衍生到G1收集器也是一样

2020-10-24 06:40:19 223

原创 JVM学习笔记(三)——三色标记

三色标记简介

2020-10-24 06:39:37 757

原创 设计模式——个人学习之策略模式

策略模式

2020-09-16 23:35:07 79

原创 JAVA多线程(八)——Callable,FutureTask以及CompletableFuture简介

个人学习笔记之——FutureCallaleFutureTask简介get方法awaitDone方法cancel方法run方法FutureTask使用样例CompletableFuture简介Callale对于Callable大家应该都很熟悉,它与Runnable属于线程的顶级接口,不过它与Runnale不同的是,它支持线程返回执行结果,下面是它的使用方法:package com.example.demo.thread;import java.util.concurrent.*;/** *

2020-09-16 22:48:27 432

原创 JAVA多线程(四)——AQS

AQSAQSAQS

2020-09-16 22:46:55 117

原创 Git学习笔记

Git学习笔记Git介绍Git安装Git结构本地仓库创建本地仓库流程1、创建本地文件夹2、初始化本地仓库3、创建一个示例文件4、提交到暂存区5、提交到本地仓库远程仓库分支介绍分支操作创建分支查看分支切换分支分支开发合并分支提交分支GitHub将本地代码推送到远程仓库克隆代码推送代码拉取代码GitLab冲突解决办法同一团队跨团队IDEA解决冲突IDEA集成GitGit 常用命令git versiongit initgit addgit commitgit statusgit log/git refloggit

2020-09-06 13:15:52 115

原创 JAVA多线程(五)—— CyclicBarrier和CountDownLatch

CyclicBarrier和CountDownLatchCyclicBarrierCountDownLatchCyclicBarrierCountDownLatch

2020-08-23 16:48:13 162

原创 数据结构与算法学习笔记(四)——散列表

散列表简介特征散列函数哈希冲突开放寻址法链表法(树形)思考说完数组和链表之后,我本来想先介绍跳表的,但是想了想了还是先介绍散列表,因为散列表可以通过数组和链表结合的方式来优化我们的数据处理能力。简介散列表又称哈希表,它是以哈希值(key)通过散列函数运算,得到一个数组下标,然后在对应的数组下标位置存储值的,它的存储方式是key-value的形式。如图(选用了JDK8的HasMap图):特征散列函数散列函数(这个在HashMap里有详细介绍):这里我举个简单的散列函数,比如:hash值 % 数

2020-08-13 23:18:40 293

原创 设计模式——个人学习之工厂模式

工厂模式简介简单工厂模式工厂方法模式抽象工厂模式简介我相信说到工厂模式,很多人都很熟悉,毕竟作为一个程序员怎么可能不了解Spring,用过Spring的人都知道,Sping IOC就是一个大型的工厂,它替你管理着项目中对象,你可以从IOC中随时的获取你想用到的对象,因此工厂模式简单的来说就是替我们生产对象的地方。工厂模式有三种:简单工厂模式工厂方法模式抽象工厂模式简单工厂模式简单工厂模式的核心就是它“很简单”,因为它只需要生产一种产品,我们可以把它想象成一个产品单一的工厂。它的UML图如

2020-08-12 23:09:28 118

原创 设计模式——个人学习之观察者模式

观察者模式简介优缺点代码实现简介如果有这样一个场景,比如:我们在游戏的时候,当我们完成一个主线任务的时候,可以能会同时开启多个支线任务,因此我们的支线任务一定是要等主角完成主线任务后,根据主角完成的质量或者说结果来开启对应的支线任务,因此支线任务就像一个观察者,一直盯着主角主线任务完成到哪里了,什么时候它才能公布出来,这就是观察者模式的实际场景应用。观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。它是对象行

2020-08-11 23:18:36 109

原创 Java基础笔记(一)——反射

java 反射介绍如何通过反射获得Class对象getClass()方法Class.forName(类路径)方法类名.class 方法示例介绍反射(Reflection)体现了java具有动态语言这一特性!通过反射,我们可以在代码运行的时候改变其内部特征和结构,同时也能获得其参数,比如在开发过程中我们经常会设置一些私有属性,这些属性只有通过类自己暴露get方法才能获得,但是通过反射我们也同样可以获得类的私有属性。为什么我们要学习反射,其实在我们阅读源码的过程中,我们可以随处都可以看到反射的影子,尤其是

2020-08-10 23:54:54 121

原创 Java基础笔记(二)——注解

Java 注解介绍注解的分类内置注解元注解自定义注解反射获取注解介绍在开发过程中,我相信很多人都用过注解,但是对于自定义注解用的地方应该不是很多,这篇博客我就简单介绍下我学习注解过程中的一些笔记。Annotation注解的作用可以理解为,它为一个类添加了额外的辅助信息,我们可以通过注解来解释、访问类或者增强方法功能等一些操作。注解可以在package、class、method等上面使用。注解的分类内置注解@Overrid,@Deprecated,@SuppressWarnings这三个注解

2020-08-09 22:50:28 147 1

原创 Spring个人学习笔记(三)——Spring AOP

Spring AOP简介AOP组成部分AOP使用示例简单示例结合注解示例注解说明AOP常用注解自定义注解首先再说AOP之前,可以先去了解一些代理模式,Spring的AOP功能就是基于JDK动态代理和Cglib代理实现的,关于代理模式可以去看我的这篇文章——代理模式简介AOP,简单的来说就是面向切面编程,它的全称是Aspect Oriented Programming,它能够将我们的业务逻辑和横切的问题进行分离(横切问题和我们业务逻辑关系不大),达到解耦的目的,使代码的重用性和开发效率提高。通过上面

2020-08-09 18:16:36 139

原创 设计模式——个人学习之代理模式

代理模式代理模式介绍静态代理动态代理Cglib代理代理模式介绍代理模式的定义:通过一些代理对象来控制访问目标对象,访问者不会直接访问目标对象,而是通过代理类来进行访问,代理类是访问者和目标对象之间的桥梁。在我们生活中,比如我们要去买房子,我们不可能直接去看房子,必须要通过房地产经销商来推荐和介绍,我们才能买到理想中的房子,在这个例子里,房地产经销商就是类似一个代理类,房子就是目标类,而我们买房子的人就是访问类。类似的例子还有很多,比如各种产品的代理商等等代理模式的主要角色如下。抽象主题(

2020-08-08 21:54:01 135

原创 数据结构与算法学习笔记(一)——入门

数据结构与算法——入门数据结构与算法数据结构什么是数据结构算法(algorithm)什么是算法时间复杂度空间复杂度常数项时间JAVA常用运算符**>>**:带符号右移**>>**>:不带符号右移**<<**:左移**异或运算:^****“&”和“|”****取反 ~**示例:例子一:例子二:例子三例子四数据结构与算法如果你不想只作为一个业务逻辑coder的话,我建议来学学数据结构与算法吧,真的很有意思!数据结构什么是数据结构数据结构就是一种存储数据

2020-08-08 14:41:46 2093 1

原创 开发积累——异步任务队列

异步任务队列背景代码任务信息类队列接口抽象任务队列类具体任务队列抽象线程(任务)类xi具体任务类型处理类执行任务类总结背景在我们的项目开发过程中,经常会处理一些任务,而这些任务不一定需要在主线程中立刻执行,在这种情况下,我们可以通过将任务信息放入一个队列中,且程序一直有个线程池能够一直消费任务。我想很多人都遇到过这样的需求,这边整理了一套代码,可以根据自己的业务需求来参考。(代码较为简单,仅作参考)代码任务信息类首先定义一个任务信息类package com.example.demo.async

2020-08-06 23:43:45 333

原创 JVM学习笔记(六)——JVM类加载子系统

JVM类加载子系统简介类加载步骤1、加载2、验证3、准备4、解析5、初始化使用和卸载类加载器类加载机制双亲委派模型简介在介绍jvm的时候,我们了解了jvm 运行时数据区,在运行时数据区里,我们知道对象是放在堆中的,类是放在方法区(元空间)的,对象是我们程序运行过程中产生的,那么类又是如何产生和加载到方法区呢?这就是我们接下来需要讲述的类加载器,类加载器是JVM中的一个独立模块,我们称之为类加载子系统。还记得我们刚开始学习java的时候,老师在介绍java相比较于其他语言有个很好的优势,就是它可移植(跨

2020-08-06 14:28:40 117

原创 JVM学习笔记(一)——基础

JVM入门介绍程序计数器本地方法栈方法区Java虚拟机栈堆介绍由上图可以看出,JVM分为五个大块,分别是方法区,jvm运行方法栈,本地方法栈,程序计数器以及最大块的堆。程序计数器程序计数器,人如其名,程序计数器就是一个记录数字的地方,那他记录的是什么数字呢?一个程序运行需要CPU,CPU有内核,一个内核只能执行一条线程的指令,我们所说的多线程,很多情况下是一个内核实现。因为一个内核只能执行一条线程的指令,那么我这么多线程该如何跑起来还能让用户感觉不到停顿呢,这是因为一个内核在轮流切换并分配处理时间

2020-08-06 14:27:52 109

原创 JAVA多线程(一)——入门

多线程入门介绍

2020-08-06 14:25:00 300

原创 设计模式——个人学习之单例模式

单例模式简介优点缺点示例一示例二示例三示例四示例五应用场景简介单例模式是JAVA23中设计模式中最简单的形式之一。单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。优点单例模式只有一个实例对象,这样在内存中的占用就会很低,减少内存开支。单例模式只生成一个对象,这样就避免了对于一个频繁使用对象的创建和销

2020-08-04 22:15:29 81

原创 设计模式——个人学习之模板方法

模板方法简介示例应用简介示例应用

2020-08-04 22:15:16 83

原创 设计模式——个人学习之责任链模式

责任链模式

2020-08-04 22:15:04 103

原创 设计模式——入坑

设计模式介绍一、概述二、设计模式七大原则1. 单一职责原则2. 开闭原则3. 里氏替换原则4. 合成复用原则5. 依赖倒置原则6. 接口隔离原则7. 迪米特法则一、概述在java中设计模式分为三大类:创建型模式:包括单例、原型、工厂方法、抽象工厂、建造者。创建型模式主要特征是描述如何创建对象,基于“将对象的创建与使用分离”。结构型模式:代理、适配器、桥接、装饰、外观、享元、组合。结构型模式主要特征是描述如何将对象按照一种布局组成更大的结构。行为型模式:模板方法、策略、命令、职责链、状态、观察者、

2020-08-04 22:14:06 147

原创 HashMap(一)——遍历方式

学习笔记——HashMap

2020-08-02 01:43:49 184

空空如也

空空如也

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

TA关注的人

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