自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 金融基础知识笔记

金融基础知识笔记

2022-04-19 01:04:08 242

原创 面向对象

1、类与对象面向对象的思想是通过面向过程的思想演变而来的,面向对象实际上是对面向过程进行功能分化和责任转移而来的。功能分化是指将工作逻辑分化,可以理解为各做各的事;责任转移是指将完成工作的责任分化,程序员不关心代码工作过程,只关心结果,具体的工作过程是如何执行的应该由对象自己来负责;责任转移可类比为:我想吃个煎饼,不需要我自己和面、摊煎饼,我只要和卖煎饼的大妈说:“我要一个煎饼。”,卖煎饼...

2020-02-14 22:28:29 224

原创 MySQL各版本对比

1、MySQL各版本对比截止到2020年2月5日,MySQL更新到了 MySQL 8.0.19 MySQL各版本对比 MySQL Percona MySQL Maria DB 服务器特性 开源 开源 ...

2020-02-05 22:44:11 1673

原创 MySQL用户管理

1、如何定义MySQL数据库账号?MySQL用户名由两部分组成,中间由 @ 符号隔开: 用户名 @ 可访问控制列表 MySQL 5.7 用户名长度只有16个字节;MySQL 8.0 用户名长度为32个字节;可访问控制列表表示“用户可以从哪些服务器上对数据库进行访问”,书写格式如下:%:代表可以从所有外部主机进行访问(默认值)192.168.1.%:可以从 192.168.1 网段进行...

2020-02-05 22:43:29 217

原创 MySQL常用的存储引擎

1、MySQL中常用的存储引擎引擎名称是否支持事务说明MyISAMNMySQL 5.6 之前的默认引擎,最常用的非事务引擎;CSVN以CSV格式存储数据,非事务型引擎;ArchiveN只允许查询和新增数据而不允许修改数据;MemoryN将数据存储在内存中,不支持事务;InnoDBYMySQL 5.6 之后的默认引擎,最常用的事务型...

2020-02-05 22:42:39 110

原创 INNODB是如何实现事务的?

1、什么是事务通俗来说就是一组SQL语句,而且这组SQL要么同时都执行成功要么同时都不成功。事务的特性:特征说明原子性(A)一个事务中的所有操作,要么全都成功,要么全都不成功,不会结束在中间某个环节;一致性(C)事务开始之前和结束之后,数据库的完整性没有被破坏;隔离性(I)要求每个读写事务的操作对象与其他事务的操作对象能相互隔离;持久性(D)事务...

2020-02-05 22:41:28 4809

原创 Java中的Volatile和Synchronized有何不同?

为充分理解Java中多线程同步的实现原理,必须先理解JMM。一、Java内存模型Java Memory Model 是为了处理并发过程中的可见性、原子性、有序性问题的。在Java虚拟机中,堆是一个线程共享的内存区域。堆中主要存放对象的实例、静态对象、数组等。堆中存放着一些共享变量。每条线程都会有一个属于自己的本地内存,本地内存不允许其他线程访问。本地内存中存储的是共享变量的副本。线程A若...

2020-02-01 14:44:39 136

原创 MyBatis数据源与连接池

MyBatis 把数据源 DataSource 分为三种:UNPOOLED 不使用连接池的数据源POOLED 使用连接池的数据源JNDI(Java Naming and Directory Interface ) 使用 JNDI 实现的数据源创建数据源MyBatis 是通过工厂模式来创建数据源 DataSource 对象的,MyBatis 定义了抽象的工厂接口:org.apache...

2019-11-18 20:57:16 129

原创 Spring 注解驱动编程

注解的派生性注解有派生性:在SpringFramework 4.0 中通过递归的方式查找元注解,实现了注解的派生性;在3.0 支持两层继承;在2.0中支持单继承派生性导致了覆盖:在Spring中,由于注解的查找方式(递归查找),底层(对比子类理解)注解可以覆盖高层(对比超类理解)注解的同名属性。注意:在Java 编程语言级别上,Java注解是绝对静态性的,且属性方法是表达注解状态的唯一途径。...

2019-11-17 11:30:05 155

原创 Java8-Lambda表达式与函数式接口

Lambda表达式Lambda表达式(也叫做闭包)是Java 8中最大的也是期待已久的变化。它允许我们将一个函数当作方法的参数(传递函数),或者说把代码当作数据,这是每个函数式编程者熟悉的概念。很多基于JVM平台的语言一开始就支持Lambda表达式,但是Java程序员没有选择,只能使用匿名内部类来替代Lambda表达式。Lambda表达式的设计被讨论了很久,而且花费了很多的功夫来交流。不过最后...

2019-11-08 14:49:49 241

原创 设计模式——设计模式的六大原则

设计模式的六大原则开闭原则(Open Close Principle)Open-Close Principle(OCP):一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。目的就是保证程序的扩展性好,易于维护和升级。开闭原则被称为面向对象设计的基石,实际上,其他原则都可以看作是实现开闭原则的工具和手段。意思就是:软件对扩展应该是开放的,对修改是封闭的,通俗来说就是,开发一个软件时,应该...

2019-11-06 09:43:54 235

原创 ClassLoader类加载器

一、ClassLoader 定义ClassLoader的作用就是根据一个指定的类的全限定名,找到对应的Class字节码文件,然后加载它转化成一个java.lang.Class类的一个实例。所有Class都是由classloader进行加载的,ClassLoader负责通过将Class文件里的二进制数据流装载进系统,然后交给java虚拟机进行连接、初始化等操作。JVM 运行实例中会存在多个 C...

2019-10-28 20:39:55 141

原创 Java高级特性——反射

一、定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。二、与反射相关的几个类Field类:提供有关类或接口的属性的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)属性或实例属性,简单的理解可以把它看成一个封装反射类的属性的类...

2019-10-27 21:22:12 580

原创 ArrayList 源码详解 jdk10

一、ArrayList 介绍1.1、概述ArrayList 是一种变长集合,基于定长数组实现。ArrayList 允许所有元素,包括null和重复元素。ArrayList 类还提供了一些方法来操作数组的大小,每个ArrayList实例都有一个容量值。当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制对数组进行扩容。ArrayList中size、isEmpt...

2019-10-24 21:27:34 168

原创 leetcode-202,快乐数

题目如下:编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。在线编程点这里做此题的要点是要知道不快乐数会循环就如同这样:4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4...

2019-09-28 12:47:53 123

原创 hash % n 为什么等于 (n - 1) & hash

HashMap 的长度为什么是2的幂次方?为了能让 HashMap 存取高效,尽量较少碰撞,也就是要尽量把数据分配均匀。我们上面也讲到了过了,Hash 值的范围值-2147483648到2147483647,前后加起来大概40亿的映射空间,只要哈希函数映射得比较均匀松散,一般应用是很难出现碰撞的。但问题是一个40亿长度的数组,内存是放不下的。所以这个散列值是不能直接拿来用的。用之前还要先做对数组...

2019-09-17 21:18:20 10667 9

原创 第一章——微服务与 Spring Cloud

1、SOA架构优缺点SOA架构优点:把模块拆分,使用接口通信,降低模块之间的耦合度。把项目拆分成若干个子项目,不同团队负责不同子项目,便于开发。可以灵活地进行分布式部署。SOA架构的缺点:系统之间的交互需要使用远程通信,接口开发增加工作量。2、微服务架构微服务是一种架构风格,对于一个大型复杂的业务系统,它的业务功能可以拆分成多个相互独立的微服务,各个微服务之间是松耦合的,通...

2019-09-10 22:10:01 145

原创 输入两个链表,找出它们的第一个公共结点

题目:输入两个链表,找出它们的第一个公共结点牛客链接我的解:利用Set集合记录第一条链表遍历的所有节点,然后遍历第二条链表找到第二条链表中与第一条相同的节点。这个方法有点笨。public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { ...

2019-09-09 21:33:31 528

原创 翻转单词

题目:把 student a am I 翻转为 I am a student 。牛客在线编程思路:这个判断很妙,过滤了入参为“”或“ ”的情况。if(str.trim().isEmpty()){ return str; } else{题解如下:import java.util.*;public class Solution { ...

2019-09-08 21:57:40 119

原创 Could not open a connection to your authentication agent

执行ssh-add时出现Could not open a connection to your authentication agent在执行 ssh-add ~/.ssh/id_ras 时发生此错,执行如下命令 ssh-agent bash然后再执行 ssh-add ~/.ssh/id_ras 即可。...

2019-09-08 21:03:32 57947 14

原创 实现包含min()方法的栈

题目如下:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。牛客网在线编程链接思路:因为题目要求时间复杂度为O(1),所以不能用遍历得出最小值的方法创建两个栈,一个做正常操作,另一个用来记录最小值入栈时正常栈入栈,min栈的栈顶元素与入栈值比较如果min栈顶的值小于将要入栈的值,min栈将栈顶的值再次入栈如果min栈顶的值大于将...

2019-09-03 21:40:54 119

原创 变态青蛙跳台阶

题目如下:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。牛客网在线编程点这里解题思路:当n = 1 时,f(1) = 1;即只有一个台阶时,只跳一次当n = 2 时, 可能一次跳1阶跳两次或一次跳2阶,f(2) = f(2-1) + f(2-2), 式中f(2-1)可理解为跳了一步之后还有2-1阶台阶,f(2-2)可理解为...

2019-09-02 13:33:05 159

原创 青蛙跳台阶问题(斐波那契数列)(递归)

题目如下:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。牛客网在线编程点这里思路:青蛙每次只能跳1阶楼梯或2阶楼梯如果当前有n层楼梯每跳一次剩下的跳法可能是f(n-1)次层或f(n-2)次层。因此f(n) = f(n-1) + f(n-2);当青蛙跳到最后只剩1层或2层阶梯时:f(1) = 1; f(2) ...

2019-09-02 11:19:42 620

原创 从jdk8更换到jdk11导致STS/Eclipse打开时报错

从jdk8更换到jdk11因jdk版本太高导致STS/Eclipse报错没有找到.metadata.log.文件通过查看该log文件发现启动时发生了如下错误:org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError:解决方法:在STS/Eclipse的安装位置下找到STS.ini或Eclipse.i...

2019-08-31 16:10:27 1848 1

原创 在做一个分布式商城时的小bug

测试程序的时候一顿报错,错误日志一直写十多分钟都写不完。经多方检查,发现是因为Mybatis逆向工程Generator自动生成文件时没有清空原文件。也就是说,逆向工程Generator的时候执行了两次或多次,那工具是不会帮你把代码替换掉的,会直接加在后面,所以就导致了这样一个异常。建议在生成的时候先清空,再生成,就不会有这个问题了,或者后续记得删除也行.Cause: java.lang.I...

2019-08-20 11:26:17 151

原创 算法入坑——回文检测

请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:false正解import java.util.Stack;public class Palindrome { public static boolean isPalindrome...

2019-06-21 22:06:28 823

原创 算法入坑——之字形打印矩阵

**题目:**之字形打印矩阵**难度:**低对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。给定一个整数矩阵mat,以及他的维数nxm,请返回一个数组,其中元素依次为打印的数字。测试样例:[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],4,3返回:[1,2,3,6,5,4,7,8,9,12,11,10]**解题思路:**用其输出特点来解题,...

2019-06-20 21:19:21 835

原创 算法入坑——猫狗收容所(好气哦)

算法入坑难度:低题目:有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作序列int[][2] ope(C++中为vector<vector<int>>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个...

2019-06-17 21:36:27 557

原创 腾讯对象存储与微信小程序之坑[Java]

腾讯对象存储与微信小程序之坑[Java]腾讯对象存储微信小程序部分最近写一个小程序,涉及到了文件上传,主要是上传图片。后台是Java+SSM框架,用到了腾讯云COS对象存储,下面详细介绍一下我遇到的各种坑。如有错误,请多指教。腾讯对象存储首先Maven工程要导入下面几个包,其中一个是腾讯云存储的官方文档中说明的必须要的包。commons-codec包腾讯的文档中并没有说要导入,但没有的话会报...

2019-05-31 22:04:20 1055

原创 微信小程序路由页面栈简述

微信小程序目前有以下几种页面跳转方式:switchTab : 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面reLaunch : 关闭所有页面,打开到应用内的某个页面redirectTo : 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。navigateTo : 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 ...

2019-05-11 19:07:29 1285 1

转载 vue2.0项目引入element-ui

1.新建项目查看node和npm是不是已经安装好了, 命令: node -v npm -v (必须先安装好环境);npm install -g cnpm --registry=https://registry.npm.taobao.org (安装国内的淘宝镜像文件,后面的安装npm可以全部改为cnpm);安装 vue-cli 1. cnpm install -g vue 2. cn...

2019-04-29 20:51:54 173

原创 编译程序的结构与编译过程

编译程序的结构与编译过程词法分析语法分析语义分析与中间代码生成代码优化目标代码生成词法分析词法分析阶段的任务是对输入的符号串形式的源程序进行最初的加工处理.依次扫描读入的源程序中的每个字符,识别出源程序中有独立意义的源语言单词, 用某种特定的数据结构对它的属性予以表示和标注.语法分析依据源语言的语法规则, 对词法分析的结果进行语法检查,并识别出单词符号串所对应的语法范畴, ...

2019-04-23 21:53:55 979 1

原创 老实的当你的码农吧你。

老实的当你的码农吧你。

2019-04-19 21:43:32 123

原创 Abstract Factory (抽象工厂)模式简记

Abstract Factory 模式简介:意图:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。使几个对象需要以一种协调的方式实例化。在这个模式中:客户对象只知道向谁请求所需的对象和如何使用这些对象;Abstract Factory 类通过为每个不同类型的对象定义一个方法,来指定实例化哪个对象,一般而言,对于每一种必须实例化的对象,Abstract Facto...

2019-04-18 21:17:31 507

原创 Node.js学习简记

NodeJSNode是一个服务器端JavaScript解释器,用于方便地搭建响应速度快、易于扩展的网络应用。Node使用事件驱动,非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。Node是一个可以让JavaScript运行在浏览器之外的平台。它实现了诸如文件系统、模块、包、操作系统 API、网络通信等Core JavaScript没有或者不完善的功能。历史上...

2019-04-15 09:21:48 171

原创 ==与 .equals()的区别

== 比的是地址.equals() 比的是内容

2019-04-10 09:28:21 166

原创 &与&&的区别

区别:&和&&都可以用作逻辑与的运算符,&表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equa...

2019-04-10 09:25:15 402

原创 Strategy模式简述

Strategy模式的主要思想(意图):定义一系列的算法, 把它们一个个封装起来, 并且使他们可以相互替换. Strategy模式使算法可独立于使用它的客户而变化.案例 : 某国际电商在对不同地区的缴税计算. 在不同地区缴税功能的实现时, 对不同地区缴税的算法是相同的, 而不同地区的税率是不同的. 尝试 “考虑设计中什么应该是可变的 什么是不变的” , “对变化的概念进行封装” 并且最重要的是...

2019-03-27 10:40:23 998 1

原创 Adapter模式简述

Adapter模式是一个很常用的模式, 它将一个(或多个)类的接口转换成我们需要的类所具备的另一个接口. 它实现的方式是: 创建一个具备所需接口的新类, 然后包装原有类的方法, 这样实际上就包含了被适配的对象.Adapter模式的主要思想: 将一个类的接口转换成使用者希望的另一个接口. Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作.Adapter模式的俩种变体:对象...

2019-03-24 19:28:50 362

原创 Facade模式简述

Facade模式的主要思想:为子系统中的一组接口提供一个统一的接口, 定义了一个更高层的接口, 使子系统更加容易使用.意思是说, 我们需要用一种比原有方式更简单的办法与系统交互, 或者说, 我们需要以一种特殊方式使用系统(例如以二维的方式使用一个三维绘图程序). 因为对于一个复杂的系统我们只需要使用它的一个子集, 所以我们可以创建更简化的交互方式来提高工作效率....

2019-03-23 09:30:01 1006 1

空空如也

空空如也

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

TA关注的人

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