自定义博客皮肤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)
  • 收藏
  • 关注

原创 JVM小白入门知识

文章目录类加载器加载器种类双亲委派(溯源加载)内存布局本地方法栈程序计数器字节码的执行原理程序计数器的作用JVM Stack(虚拟机栈)栈帧Heap(堆区)垃圾收集GC Roots垃圾收集算法垃圾收集器JVM常用参数查看参数常用参数HeapStackGC常见的OOMError类加载器类加载器把字节码文件(.class文件)加载进内存中的方法区,方法区存储了类的模板(Class类)加载器种类...

2020-04-07 16:37:33 332

原创 ForkJoinDemo

package test.java.com.example;import java.util.List;import java.util.Random;import java.util.concurrent.RecursiveTask;import java.util.stream.Collectors;import java.util.stream.Stream;public cla...

2020-04-18 14:36:27 149

原创 Redis_持久化

文章目录RDBRDB的优点RDB的缺点RDB的工作方式AOFAOF的优点AOF的缺点AOF的工作方式重写Redis本身是一个基于内存的非关系型数据库,但它提供了可以把数据写入硬盘的持久化机制,分别是RDB(Redis DataBase)和AOF(Append Only File)RDB持久化能够在指定的时间间隔对数据进行快照存储AOF持久化是记录每次对服务器的写操作,当服务器重启的时候会重...

2020-04-17 14:50:47 155

原创 适配器模式

在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。我们平时创建线程的时候,会创建一个Runnable接口来实现run方法,同时把接口传进Thread中 Thread thread =...

2020-04-15 21:10:54 236

原创 自旋锁

package test.java.com.example;import java.util.concurrent.atomic.AtomicReference;public class SpinLockDemo { //原子引用线程 AtomicReference<Thread> atomicReference = new AtomicReference&lt...

2020-04-13 21:16:42 96

原创 Redis_常用数据类型及其命令

文章目录字符串String哈希Hash列表List集合Set有序集合SortedSet字符串Stringstring是Redis最基本的类型,一个key对应一个value。string 类型是二进制安全的,string可以包含任何数据。比如jpg图片或者序列化的对象。string类型的值最大能存储512MBSET key value [EX seconds] [PX millisecond...

2020-04-12 18:15:29 115

原创 Java_强软弱虚四大引用

强引用默认支持,强引用的对象不会被回收,就算出现OOM也不会被回收public class Reference { public static void main(String[] args) { //这种等号赋值的都是强引用 Object object1 = new Object(); Object object2 = object1;...

2020-04-05 13:06:39 90

原创 策略模式

策略模式对应于解决某一个问题的一个算法簇,允许用户从该算法簇中任选一个算法来解决某一个问题,可以由客户端去决定调用哪一个算法,把算法和实现分离开package test.java.com.example.demo.demo.StrategyModeDemo;public class StrategyMode { public double calculationTotalPrice(i...

2020-04-03 22:05:06 89

原创 抽象工厂

什么是抽象工厂工厂方法指的是把类的构造方法抽象出来,抽象出来的部分被称为工厂方法,而抽象工厂是对工厂的再抽象。工厂是创建对象的地方,其目的是将对象的创建与对象的使用分离。抽象工厂模式的目的,是将若干抽象产品的接口与不同类的具体实现分离开。使用抽象工厂模式,能够在具体工厂变化的时候,不用修改使用工厂的客户端代码,甚至是在运行时(这里指的是Java反射),抽象工厂模式是简单工厂模式和工厂方法模式的整...

2020-03-23 18:59:07 148

原创 原型模式

原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据为什么使用原型模式一个我们项目中经常会遇到的场景:通过数据库获取了一个对象A,这个对象的值会展示在...

2020-03-23 18:54:47 80

原创 Java_优雅的关闭资源连接_try-with-resource

背景在Java中,如果打开了外部资源(文件、数据库连接、网络连接等),因为外部资源不由JVM管理,无法享用JVM的垃圾回收机制,我们必须在这些外部资源使用完毕后,手动关闭它们。如果我们不在编程时确保在正确的时机关闭外部资源,就会导致外部资源泄露,紧接着就会出现文件被异常占用,数据库连接过多导致连接池溢出等诸多很严重的问题传统关闭方式为了确保外部资源一定要被关闭,通常关闭代码被写入finall...

2020-03-23 18:53:09 698

原创 工厂方法

什么是工厂工厂是一个用来创建其它对象的对象。工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建的各种类型的对象。工厂是构造方法的抽象,工厂可以通过各种方式来创建一个对象,并完成复杂的初始化过程或者其它操作。为什么要使用工厂模式说到工厂模式,都会首先说简单工厂模式,虽然之前看过了很多的例子但是我一直没弄明白到底为什么要使用简单工厂模式?你说道理我也背下来了:什么定义一个创建对象的接口,让...

2020-03-17 21:13:06 181

原创 Git小白入门笔记

Git是目前世界上最先进最牛逼的分布式版本控制系统(没有之一)。相对比于集中式版本控制,比如SVN,分布式系统没有中央服务器,每台电脑都保留了所有的历史版本,相对于集中式更为安全,在没有网络的情况下也可以进行版本的回退Git的结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w1EheW7x-1584366449994)(en-resource://databa...

2020-03-16 21:48:00 151

原创 Atomic类如何保证原子性

CAS全称是CompareAndSwap,它是一条CPU并发原语。用来判断内存某个位置的值是否为预期值,如果是则改为更新的值,这个过程是原子的。AtomicInteger之所以能保证原子性是依赖于UnSafe类,这个类是Java最底层的类之一,里面都是很屌的native方法,都是其他语言写的,咱看不见,Unsafe类可以执行以下几种操作:分配内存,释放内存可以定位对象的属性在内存中的位置,...

2020-03-09 06:54:07 4393

原创 volatile

volatile是Java虚拟机提供的轻量级的同步机制保证可见性不保证原子性禁止指令重排JMM(Java内存模型):是一种并不真实存在的抽象概念,它是一组规则,通过这组规则定义了程序中各个变量的访问方式JMM的三大特性:可见性原子性有序性JMM关于同步的规定:线程加锁前,必须读取主内存的最新值到自己的工作内存线程解锁前,必须把工作内存中的共享变量的值刷新回主内存加...

2020-03-09 06:53:45 86

原创 Spring_IOC

文章目录依赖注入装配Bean自动装配显式装配通过Java代码装配通过XML装配Bean混合配置环境与Profile条件化的Bean处理自动装配的歧义性bean的作用域**使用请求和会话作用域**运行时值注入注入外部的值**Environment**属性占位符Spring表达式语言SpEL的常见特性SpEL运算符计算集合依赖注入Spring的核心之一控制反转,即不需要我们来手动创建对象,而是把创...

2019-11-27 18:30:49 99

原创 Java内置四大函数式接口

Java内置四大函数式接口Consumer:消费型接口@FunctionalInterfacepublic interface Consumer<T> {/*消费型接口的抽象方法,接收一个T类型的对象,接口的实现中写对该对象的操作*/ void accept(T t);/*一个有默认实现的普通方法,用于多个消费接口的拼接,先运行第一个接口,然后再调用拼接上的...

2019-11-24 15:30:57 358

原创 JDK1.8_Stream_流式操作

文章目录StreamStream操作步骤创建Stream中间操作筛选与切片映射排序终止操作查找与匹配归约收集组合StreamStream是Java 8中处理集合的关键抽象概念,可以执行非常复杂的查找、过滤、和映射数据操作,使用Stream API对集合数据进行操作,就类似使用SQL执行的数据库查询。Stream不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的...

2019-11-24 15:30:25 393

原创 代理模式

代理模式文章目录代理模式什么是代理模式为什么要使用代理模式常见的代理模式静态代理JDK代理Cglib代理什么是代理模式为一个目标对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象。为什么要使用代理模式使用代理模式可以在目标对象(远程对象、创建开销大的对象和需要安全控制的对象,或者来自第三方库所提供的我们不可以修改的对象)实现的基础上,不修改目标对象本身的代码并增强额外的...

2019-11-17 17:05:21 90

原创 单例模式

单例模式文章目录单例模式什么是单例模式单例模式的要素饿汉式懒汉式双重校验静态内部类单例枚举单例什么是单例模式单例模式,属于创建型设计模式。即一个类只有一个实例,一次实例化之后对整个系统提供这个实例对象。单例模式可以减少创建对象的内存开支,避免对资源的多重占用(比如Hibernate中的sessionFactory)单例模式的要素构造方法私有化,即外界无法使用new关键字来创建对象通过...

2019-11-17 17:04:51 88

原创 Java反射

Java反射文章目录Java反射什么是反射为什么要用反射怎么使用反射获取Class类对象的实例Class类对象的主要方法成员变量构造器方法成员方法什么是反射将类的组成部分封装成为其他对象,这就是反射首先我们需要知道我们的代码是怎么运行起来的,Java代码在计算机中经历了什么以及我们平时经常说的编译和运行到底是什么。代码运行的三个阶段javac.exe编译类加载器ClassLoade...

2019-11-17 17:03:07 118

原创 MySQL批量插入数据脚本

DELIMITER $$CREATE FUNCTION randVarchar(maxlength INT) RETURNS VARCHAR(255)BEGIN DECLARE alphabet VARCHAR(62) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; ...

2019-11-17 15:22:28 206

原创 MySQL_初探存储过程和函数

存储过程和函数文章目录存储过程和函数存储过程是什么函数是什么MySQL变量创建存储过程调用存储过程创建函数调用函数删除存储过程或函数分支结构循环结构循环控制语句循环结构存储过程是什么存储过程是一组SQL的集合,类似于Java中的方法,将一组完成特定功能的SQL和逻辑语句封装起来,对外只暴露一个名字,通过调用存储过程可以实现封装好的功能函数是什么函数和存储过程相似,也是一组SQL和逻辑语句...

2019-11-17 15:21:52 120

原创 MySQL_初探索引优化_查询优化

文章目录MySQL的配置文件MyISAM和InnoDB的区别SQL执行顺序索引优化什么是索引执行计划索引优化查询优化**小表驱动大表**SQL排序慢查询日志mysqldumpslow日志分析工具Show Profile全局查询日志MySQL锁机制锁的分类表锁行锁主从复制主机修改配置文件my.ini在主机上建立账户并授权给从机MySQL的配置文件二进制日志log-bin用于记录数据库的写行为...

2019-11-17 15:20:28 147

原创 MySQL_CRUD基础_视图

MySQL基础文章目录MySQL基础数据库相关概念SQL的语言分类DQL常见函数单行函数分组函数查询类型基础查询条件查询模糊查询排序查询分组查询连接查询子查询分页查询联合查询DML插入数据更新数据删除数据delete语句truncate语句DDL库和表的管理库的管理表的管理常见数据类型六大约束标识列TCL数据库事务事务的分类:事务的隔离级别视图视图是什么为什么要使用视图怎么使用视图创建视图修改视...

2019-11-17 15:19:34 502

原创 JDK1.8_Lambda表达式

Lambda表达式文章目录Lambda表达式什么是函数式接口?什么是Lambda表达式Lambda表达式的语法Lambda的方法引用和构造引用什么是函数式接口?函数式接口(Functional Interfaces):如果一个接口只定义了一个抽象方法,那么这个接口就被称为函数式接口。可以包含多个默认方法、类方法,但是只能声明一个抽象方法。同时引入了一个新的注解:@FunctionalInte...

2019-10-24 07:10:46 134

空空如也

空空如也

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

TA关注的人

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