自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows环境下,MySQL8.0链接提示caching_sha2_password

1.启动mysql数据库使用cmd 在DOS命令窗口中输入 net start mysql或 services.msc手动开启2.找到MySQL中bin目录下输入 mysql -hlocalhost -uroot -p后输入自身数据库密码输入:alter user ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;更改root账户使用的验证插件为mysql_native_password。...

2021-03-08 17:02:14 846

原创 Docker(一):Docke的组成、安装与原理概述

Docker的组成:镜像(image):Docker镜像就相当于是一个文件系统,通俗来说就是为容器用来创建容器的容器(Container):Docker 利用容器 (Container) 独立运行的一个或一组应用,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台,可以把容器看做是一个简易版的Linux系统容器就相当于Java中的对象,镜像相当于Java中的类仓库(Repository)仓库是集中存放镜像文件的场所仓库注册服务器 (Regi

2020-09-26 23:44:50 464

原创 Inerable类添加一种或多种foreach语句中使用这类得方法

来自JAVA编程思想第243页11.13.1 适配器方法惯用法一种解决方法是所谓的适配器方法的惯用法,“适配器”部分来自于设计模式,因为你必须提供特定接口以满足foreach语句,当你有一个接口并需要另一个接口时,编写适配器就可以解决问题,这里,我希望在默认的前向迭代器的基础上,添加产生反向迭代器的能力,因此我们不适用覆盖,而是添加了一个能够产生Iterable对象的方法,该对象可以用于foreach语句,正如你所见,这使得我们可以提供多种使用foreach的方式/** * @Description

2020-09-26 16:08:57 155

原创 Java的优先队列PriorityQueue

一、优先队列概述  优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序,可以放基本数据类型的包装类(如:Integer,Long等)或自定义的类,对于基本数据类型的包装器类,优先队列中元素默认排列顺序是升序排,但对于自己定义的类来说,需要自己定义比较器二、常用方法peek()//返回队首元素poll()//返回队首元素,队首元素出队列add()//添加元素size()//返回队列元素个数isEmpty()//判断队列是否为空,为空返回true,不空返回false

2020-09-25 17:39:07 186

原创 JAVA 五种单例模式

JAVA 五种单例模式单例模式饿汉式实现:线程安全,调用效率高。但是,不能延时加载。懒汉式实现:线程安全,调用效率不高。但是,可以延时加载。双重检测锁式:由于JVM底层内部模型原因,偶尔会出现问题,不建议使用。静态内部类式:线程安全,调用效率高,可以延时加载。枚举式:线程安全,调用效率高。但是,不能延时加载(避免反射和反序列化的漏洞)。核心代码:构造方法私有化,private。饿汉式/** * 单例模式:饿汉式 * 线程安全,调用率高,但是,不能延时加载 */

2020-09-24 20:38:13 93

原创 静态代理与动态代理以及AOP与动态代理

代理Proxy:Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间,从而在设计上获得

2020-09-24 20:34:50 129

原创 java1.9版本后class.newInstance()方法被弃用

在java1.9版本中,newInstance被弃用取而代之的是:class.getDeclaredConstructor().newInstance()class.newInstance()会直接调用该类的无参构造函数进行实例化class.getDeclaredConstructor().newInstance()getDeclaredConstructor()方法会根据他的参数对该类的构造函数进行搜索并返回对应的构造函数,没有参数就返回该类的无参构造函数,然后再通过newInstance进行

2020-09-24 20:30:59 2941

原创 泛型接口-生成器 (generator)

泛型可以适用于接口,例如生成器(generator)这是一种专门负责创建对象的类,实际上,这是工厂方法设计模式的一种应用,当使用生成器创建新对象时,他不需要如何参数,而工厂方法一般需要参数,也就是说,生成器无需额外的信息就可以创建新对象使用方法使用方法1 定义Generator接口由于Java标准库中没有实现这个接口,这个生成器接口需要自己定义,只需要声明next()方法即可public interface Generator<T> { public T next();}

2020-09-24 20:29:26 421

原创 初识IOC

1.什么是IOC(1)控制反转,把对象创建和对象之间的调用过程,交给spring进行管理(2)使用IOC的目的:为了降低耦合度 (IOC是理论,DI是实现)实例:设计两个类(UserService)和(UserDao)public class UserService { execute(){ UserDao dao = new UserDao(); }}public class UserDao { add(){ ...... }}直接调用耦合太

2020-09-24 18:01:17 162 1

原创 org.springframework.beans.factory.BeanCreationException:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘paymentController’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with nam

2020-09-13 17:49:09 275

转载 JVM学习03-运行时数据区概述及线程

运行时数据区概述及线程前言本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操

2020-09-12 11:07:06 67

转载 JVM学习02-类加载子系统

02-类加载子系统本文针对Class Loader SubSystem这一块展开讲解类加载子系统的工作流程类加载子系统作用1.类加载子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识即16进制CA TE BA BE;2.加载后的Class类信息存放于一块成为方法区的内存空间。除了类信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)来一张经典的JVM内存结构图:其中类加载器的工作

2020-09-12 10:58:20 94

转载 JVM学习01-JVM简介

01 JVM简介首先看计算机系统中JVM所在的位置JVM是运行在操作系统之上的,并没有和硬件有直接的交互Java一次编译,到处运行JVM版本SUN ClassicExact VMHotSpot VM :HotSpot指热点代码探测技术BEA JRockit:(BEA 已被Oracle收购) 专注于服务端应用,世界最快的jvm之一IBM J9Taobao JVM: 目前已经在淘宝、天猫上线,替换了Oracle官方JVM;Graal VM: Oracle 2018年4月公开,口号 R

2020-09-12 10:33:32 161

转载 进程控制块(PCB)

进程控制块(PCB)用来描述和控制进程的运行的一个数据结构——进程控制块PCB(Process Control Block),是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB是进程存在的唯一标志系统能且只能通过PCB对进程进行控制和调度PCB记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息PCB中的信息1 进程标识符进程标识符用于唯一地标识一个进程。一个进程通常有两种标识符:内部标识符:在所有的操作系统中,都为每一个进程赋予了一个唯一的数字标识符,

2020-08-29 14:24:58 1725

转载 在spring中使用JdbcTemplate进行数据库管理操作

JdbcTemplate1、JdbcTemplate概念及使用​ a)Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作​ b)引入相关 jar 包​ c)在 spring 配置文件配置数据库连接池<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value

2020-08-20 16:25:27 200

转载 spring IOC容器 Bean 管理——基于注解方式

IOC 操作 Bean 管理(基于注解方式)1、什么是注解​ (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值…)​ (2)使用注解,注解作用在类上面,方法上面,属性上面​ (3)使用注解目的:简化 xml 配置2、Spring 针对 Bean 管理中创建对象提供注解​ 下面四个注解功能是一样的,都可以用来创建 bean 实例​ (1)@Component​ (2)@Service​ (3)@Controller​ (4)@Repository​3、基于

2020-08-20 16:12:24 134

转载 Spring-AOP概念及使用教程

Spring-AOP1、AOP 基本概念​ (1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。​ (2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能​ (3)使用登录例子说明 AOP2、AOP(底层原理)​ a)AOP 底层使用动态代理 ,动态代理有两种情况:第一种 有接口情况,使用 JDK 动态代理 ;创建接口实现类代理对象,增强类的方法第二种 没有接口情况,使用

2020-08-20 16:10:43 128

转载 Spring IOC容器-Bean管理——基于XML方式 -续

Spring IOC容器-Bean管理——基于XML1、IOC 操作 Bean 管理(FactoryBean) 1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean)​ 2、普通 bean:在配置文件中定义 bean 类型就是返回类型​ 3、工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样 第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean 第二步 实现接口里面的方法,在实现的方法中定义返回的 be

2020-08-19 17:49:29 163

转载 spring IOC容器管理必须知道这些操作——基于XML方式

--------观看尚硅谷后总结的笔记--------Spring——IOC(控制反转)一、IOC容器​ 1、什么是IOC(控制反转)​ a)把对象创建和对象之间的调用过程,交给Spring进行管理​ b)使用IOC目的:为了降低耦合度​ 2、IOC底层​ a)xml解析、工厂模式、反射​ 3、Spring提供的IOC容器实现的两种方式(两个接口)​ a)BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员进行使用(加载配置文件时候不会创建对象,

2020-08-19 16:15:59 141

转载 什么是CAS机制?

我们先看一段代码:启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果一定是200吗?因为这段代码是非线程安全的,所以最终的自增结果很可能会小于200。我们再加上synchronized同步锁,再来看一下。加了同步锁之后,count自增的操作变成了原子性操作,所以最终输出一定是count=200,代码实现了线程安全。虽然synchronized确保了线程安全,但是在某些情况下,这并不是一个最有的选择。关键在于性能问题。synchronized关键字会让没有得到

2020-08-18 16:32:06 175

转载 volatile关键字解析

一.内存模型的相关概念大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就有了高速缓存。也就是,当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,

2020-08-18 15:59:29 123

空空如也

空空如也

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

TA关注的人

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