自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hybrid App的架构

目前App大致分为三大类Web App定义:将所有功能都放在Web上展现,运行基于本地浏览器。在此将给Web简单的套一层App外壳的应用也归入Web App。完全采用HTML/CSS/JS编写,专为触摸操作进行了优化。目前iOS已禁止简单的套壳App上架。优点:开发速度快,跨平台,成本低,实时迭代用户无需更新缺点:网络速度要求高、服务器压力大,系统级别API调用难度大,用户体验差、用户留存度低Native App定义:NativeApp是基于手机本地操作系统并使用原生语言编写的 。

2020-12-16 14:04:39 1909

原创 DevOps

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。从定义来看,其实d.

2020-12-16 11:28:19 169

原创 应用中间件

应用中间件一、概念二、分类一、概念应用中间件(Application Middleware),又名中间件,一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。中间件的思想其实并不复杂。假设我们有n个应用,m个操作

2020-12-16 11:15:06 735 1

原创 SSO(单点登录)

SSO(Single Sign On)单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。详细描述...

2020-12-16 10:37:29 549

原创 Restful与webService区别

REST是一种架构风格,其核心是面向资源;WebService底层是SOAP协议,主要核心是面向活动。相关概念RESTful:REST是一种架构风格,REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful,核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性,为什么这么说,因为RESTful是无状态的,无状态是指任意一个web请求必须完全与其他请求隔离,是独立的,当请求端提出请求时,请求本身包含了这一请求的全部信.

2020-12-16 10:24:24 8829

原创 云平台之多租户

多租户技术多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。在多租户技术中,租户(Tenant)是指使用系统或计算资源的用户,包含在系统中可识别为指定用户的一切数据,比如在系统中创建的账户与统计信息(Accounting Data),以及在系统中设置的各式数据和用户所设置的客户化应用程序环境等,都属于租户的范围。多租户的资源是按照服务请求,动态创建.

2020-12-16 10:03:27 1135

转载 云计算的三种服务模式:IaaS、PaaS、SaaS

云计算的三种服务模式1.IaaS:Infrastructure-as-a-Service(基础设施即服务)2.PaaS: Platform-as-a-Service(平台即服务)3.SaaS:Software-as-a-Service(软件即服务)4.IaaS与PaaS的区别5.三种模式之间的关系“云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用、数据或者服务。云计算是分层的,分别是Infrastructure(基础设施)-as-a-Service,Plat

2020-12-16 09:50:08 4995

原创 VSCode快捷键(Mac)

单行注释:command + /多行注释:shift + alt + a取消注释:再按一次对应快捷键查找文件:command + Shift + F格式化代码,不需要全选中代码,直接格式化即可:Alt + Shift + F上方插入一行,鼠标光标在当前行的任意位置都可以直接换行到上一行:command + Shift + Enter下方插入一行,鼠标光标在当前行的任意位置都可以直接换行到下一行:command + Enter点击设置选择 keyboard shortcuts,右边会弹出所有快.

2020-12-10 14:18:37 618

原创 VSCode静态调试

html页面调试测试有两种模式:使用本地静态页面调试选择自己配置的测试选项,打开需要调试的页面,按F5启动调试,如图:使用服务器形式进行调试安装live server插件打开要调试的页面,鼠标在页面任意地方右键单击,选择“Open with live server"...

2020-12-10 14:06:53 847

原创 angular指令

文章目录大家应该都知道,在html中存在一些附加在元素节点上的标记,例如属性,事件等等.它们能够改变元素的行为,甚至操作DOM,改变DOM元素,以及它的各级子节点.那么,在angular中也有这样的存在,那就是指令.在 Angular 中有三种类型的指令:组件:组件的特殊存在,拥有模版结构型指令:通过添加和移除DOM元素改变DOM布局的指令,常用的有:*ngif、*ngFor、ngSwitch属性型指令:改变元素、组件或其他指令的外观和行为的指令,常用的有:ngClass、ngStyle

2020-12-08 17:45:10 95

原创 angular路由

文章目录添加路由定义添加路由出口添加默认路由添加路由链接添加详情视图(html传参)js页面跳转(传参)从路由参数中提取id回到原路添加路由定义典型的路由(route)有两个属性:path:一个用于匹配浏览器地址栏中URL的字符串component:当导航到此路由时,路由应该创建哪个组件如果说你希望当URL为http://localhost:4200/homePage时,首先要导入HomePageComponent;以便在Route中引用它。如下:import { NgModule } f

2020-12-08 16:06:26 108

原创 angular组件与模版

文章目录1. 显示数据1.1 使用插值表达式显示组件属性1.2 使用ngFor显示数组属性1.3 通过ngIf进行条件显示2. 模版语法2.1 模版中的html2.2 插值表达式2.3 模版表达式2.4 模版语句2.5 属性绑定2.6事件绑定2.7 使用EventEmitter 实现自定义事件2.8 双向绑定2.9 模版引用变量( #var )2.10输入和输出属性2.11 模版表达式操作符2.11.1 管道操作符 ( | )2.11.2 安全导航操作符 ( ?. ) 和空属性路径2.11.3 非空断言操作

2020-12-08 14:31:02 249

原创 angular双向数据绑定

文章目录引入FormsModuleimport { FormsModule } from '@angular/forms';imports: [ BrowserModule, HttpClientModule, // 如果要引入双向绑定,则需要引入FormModule FormsModule, AppRoutingModule ],表单的数据绑定text<input type="text" [(ngModel)]="usernam

2020-12-08 11:24:41 183

原创 angular请求数据

文章目录一、Angular get 请求数据二、Angular post 提交数据三、angular jsonp 请求数据一、Angular get 请求数据在app.module.ts中引入HttpClientModule并注入Import{HttpClientModule } from ‘@angular/commob/http’;Imports:[ BrowserModule, HttpClientModule]在用到的地方引入HttpClient并在构造函数声明I

2020-12-08 11:05:48 281

原创

类传统方法中,JavaScript 通过构造函数实现类的概念,通过原型链实现继承。而在 ES6 中,我们终于迎来了 class。TypeScript 除了实现了所有 ES6 中的类的功能以外,还添加了一些新的用法。这一节主要介绍类的用法,下一节再介绍如何定义类的类型。类的概念§虽然 JavaScript 中有类的概念,但是可能大多数 JavaScript 程序员并不是非常熟悉类,这里对类相关的概念做一个简单的介绍。类(Class):定义了一件事物的抽象特点,包含它的属性和方法对象(Objec

2020-12-03 16:59:24 257

原创 函数的类型

函数的类型函数是 JavaScript 中的一等公民函数声明§在 JavaScript 中,有两种常见的定义函数的方式——函数声明(Function Declaration)和函数表达式(Function Expression):// 函数声明(Function Declaration)function sum(x, y) { return x + y;}// 函数表达式(Function Expression)let mySum = function (x, y) {

2020-12-03 16:58:26 408

原创 数组的类型

数组的类型在 TypeScript 中,数组类型有多种定义方式,比较灵活。「类型 + 方括号」表示法§最简单的方法是使用「类型 + 方括号」来表示数组:let fibonacci: number[] = [1, 1, 2, 3, 5];数组的项中不允许出现其他的类型:let fibonacci: number[] = [1, '1', 2, 3, 5];// Type 'string' is not assignable to type 'number'.数组的一些方法的参数也会根据数

2020-12-03 16:57:51 1202

原创 对象的类型——接口

对象的类型——接口在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型。什么是接口§在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。简单的例子§interface Person { name: string;

2020-12-03 16:57:03 533

原创 联合类型

联合类型联合类型(Union Types)表示取值可以为多种类型中的一种。简单的例子§let myFavoriteNumber: string | number;myFavoriteNumber = 'seven';myFavoriteNumber = 7;let myFavoriteNumber: string | number;myFavoriteNumber = true;// index.ts(2,1): error TS2322: Type 'boolean' is not as

2020-12-03 16:55:46 413

原创 类型推论

类型推论如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。什么是类型推论§以下代码虽然没有指定类型,但是会在编译的时候报错:let myFavoriteNumber = 'seven';myFavoriteNumber = 7;// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.事实上,它等价于:let myF

2020-12-03 16:55:05 386

原创 任意值(Any)

任意值任意值(Any)用来表示允许赋值为任意类型。什么是任意值类型§如果是一个普通类型,在赋值过程中改变类型是不被允许的:let myFavoriteNumber: string = 'seven';myFavoriteNumber = 7;// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.但如果是 any 类型,则允许被赋值为任意类型。let myFavoriteNumber

2020-12-03 16:54:37 764

原创 原始数据类型

原始数据类型JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol。本节主要介绍前五种原始数据类型在 TypeScript 中的应用。布尔值§布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型:let isDone: boolean = false;// 编译通过

2020-12-03 16:52:24 1235

原创 设计模式——抽象工厂模式

抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。

2020-11-19 14:56:06 48

原创 设计模式——工厂模式

工厂模式这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。应用实例: 1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 2、Hiber

2020-11-19 14:44:49 63

原创 MySQL数据库优化

数据库优化方法1.选取最适用的字段属性2.使用连接(JOIN)来代替子查询(Sub-Queries)3.使用联合(UNION)来代替手动创建的临时表4.事务5.锁定表6.使用外键7.使用索引8.优化查询语句1.选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空

2020-11-19 11:06:50 51

原创 数据库中的悲观锁和乐观锁

悲观锁当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发。这种借助数据库锁机制在修改数据之前先锁定,再修改的方式被称之为悲观并发控制(又名“悲观锁”,Pessimistic Concurrency Control,缩写“PCC”)。之所以叫做悲观锁,是因为这是一种对数据的修改抱有悲观态度的并发控制方式。我们一般认为数据被并发修改的概率比较大,所以需要在修改之前先加锁。悲观并发控制实际上是**“先取锁再访问”的保守策略,为数据处理的安

2020-11-19 11:06:40 113

原创 浏览器输入网址后发生了什么?

首先需要直到TCP/IP的网络模型,这里是四层模型第一步:在浏览器中输入www.baidu.com后,应用层会使用DNS解析域名,如果本地存有对应的IP,则使用;如果没有,则会向上级DNS服务器请求帮助,直至获得IP。第二步:应用层将请求的信息装载入http请求报文,信息包含了请求的方法(get/post)、目标URL、遵循的协议(http/https/ftp…)等,然后应用层将发起http请求第三步:传输层接收到应用层传递下来的数据,并分割成以报文段为单位的数据包进行管理,并为它们编号,方便服务

2020-11-19 11:06:29 740

原创 设计模式:单例模式

定义目的是保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存。单例模式的应用场景很多,比如我们电脑的操作系统的回收站就是一个很好的单例模式应用,电脑上的文件、视频、音乐等被删除后都会进入到回收站中;还有计算机中的打印机也是采用单例模式设计的,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;Web页面的计数器也是用单例模式实现的,可以不用把每次刷新都记录到数据库中。类加载顺序类加载(classLoader)机制一般遵从下面的加载顺序如果类还没

2020-11-19 11:06:04 64

原创 数据库事务ACID

文章目录1、事务2、ACID2.1 原子性 Atomicity2.2 一致性 Consistency2.3 隔离线 Isolation2.3.1 事务之间的互相影响2.4 持久性 Durability1、事务定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。2、ACIDACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolati

2020-11-18 20:39:56 79

原创 二分法查找算法

public static int binarySearch(int[] arr,int value){ //起始位置 int start = 0; //结束位置 int end = arr.length - 1; while(true){ //计算中间位置下标 int mid = (start+end)/2; //中间值 int midValue = arr[mid]; if(value==midValue){ //待查找的值等于中间值则返会中间下标 retur

2020-11-18 16:07:17 86

原创 ConcurrentHashMap

文章目录解决实现HashMap线程不安全多线程环境下,使用HashMap进行put操作可能会引起死循环,导致CPU利用率接近100%,所以在并发的情况下不能使用HashMap。HashTable线程安全但效率低下HashTable容器使用synchronized来保证线程安全,但线程竞争激烈但情况下HashTable的同步方法时,可能会进入阻塞或轮询的状态。如线程1使用put进行添加元素,线程2不但不能使用put方法添加元素,并且也不能使用get方法来获取元素,所以竞争越激烈效率越低。解决分

2020-11-18 14:30:49 110

原创 MySql索引相关

文章目录1.索引介绍1.1聚集索引1.2非聚集索引1.2.1如何 解决非聚集索引的二次查询问题2.索引的存储机制3.建立索引的原则4.索引什么时候失效5.B-Tree、B+-Tree、Hash5.1B-Tree5.2 B+树5.3 Hash索引6.存储引擎6.1 InnoDB7.如何定位并优化慢查询SQL7.1根据慢日志定位7.2 使用explain等工具分析SQL7.3 修改SQL或者尽量让SQL走索引1.索引介绍索引是关系型数据库中给数据库表中一列或者多列的值排序后的存储结构,SQL的主流索引结构有

2020-11-17 10:06:41 82

原创 MyBatis与Spring整合

文章目录SqlSessionTemplate的使用(mybatis与spring整合的第一种方式)spring中使用基于接口访问方式2.2.8声明式事务处理-在mybatis与spring整合的时候体现MyBatis与Spring整合整合的原理,就是mybatis中的数据源交给spring管理,于此同时原先mybatis中的SqlSessionFactory也交给spring管理,一旦交给spring管理之后,spring中可以使用一个叫做SqlSessionTemplate的工具(类似之前我们使用的J

2020-11-08 22:28:53 118

原创 Spring相关知识点

文章目录IOCIOC容器基于xml的配置依赖对象装配方式多个xml配置文件并存基于注解方式的配置注解的使用依赖关系的装配AOP一些概念特色就是IoC,AOP ,IoC(控制反转Inversion of Control),AOP(面向切面编程,Aspect Oriented Programming)。IOC在开发应用的时候,会有很多类(我们定义的),随后会通过这些类构造对象,那么进程中就会有很多的对象(对象的数量>=类的数量)。对象多了,自然就会出现相互协作的现象。那么就会出现2个问题,一个就是

2020-11-08 22:19:23 98

原创 mybatis面试题

文章目录1.MyBatis的缓存2.分页插件的原理3.Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理4.#{}和${}的区别是什么?5.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?6.MyBatis与Hibernate有哪些不同?7.MyBatis的好处是什么?8.模糊查询like语句该怎么写9.当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定pojo?10.Mybatis中如何执行批处理?11.Mybatis都有哪些Executo

2020-11-08 17:31:03 87

原创 MyBatis相关信息

文章目录1.开发顺序1.1准备工作1.2两种配置文件1.3主要的API1.4api的使用2.进一步操作(其他查询方法和增删改)2.1查询(selectOne,selectMap)2.2添加2.3修改2.4删除3.mybatis中日志(监测sql语句)4.多表查询5.其他标记5.1sql标签5.2 selectKey标签6.动态sql6.1常用的动态sql标记6.1.1演示,,,等标记6.1.2演示,标记6.1.3 标记7.分页操作7.1自己实现7.2使用插件8.缓存8.1延迟加载8.2一级缓存、二级缓存9.

2020-11-08 16:32:42 142

原创 Java多线程面试题整理

文章目录1.什么是线程2.线程和进程的区别3.如何在Java中实现进程4.Thread 类中的start() 和 run() 方法有什么区别?5.Java中Runnable和Callable有什么不同?6.Java中如何停止一个线程7.一个线程运行时发生异常会怎么样8.如何在两个线程间共享数据9.如何避免死锁10.怎么检测一个线程是否拥有锁?1.什么是线程线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。2.线程和进程的区别线程是进程的子集,一个进程可以有很多线程

2020-11-08 14:39:49 74

原创 线程相关知识点

文章目录程序、进程、线程主线程Java中创建线程的2中方式线程的状态和生命周期Thread类的方法Java中线程的优先级用户线程和守护线程线程安全问题同步锁机制对象互斥锁实现同步锁机制的两种形式死锁程序、进程、线程程序(program):使用编程语言编写的有序的代码集合,静态。进程(process):运行的程序叫进程,动态。线程(thread):线程是进程中一个独立的控制单元,也可以说,线程是进程中一段代码的执行流。线程控制进程的执行。主线程以前所学程序从main方法开始执行,即一个主线程在

2020-11-08 14:17:01 60

原创 IO

文章目录File类IO流分类如何使用IO流File类File类对文件或目录进行了封装,提供对文件或目录的操作方法,可以方便编程时使用。IO流分类IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的类都在IO包中IO流相对于JVM,根据传输方向划分输入流输出流IO流根据流的传输数据类型字节流(按字节传输)字符流(按字符传输)IO流体系结构,均基于四个顶层的抽象类对于字节流:InputStream:表示所有字节输入流的父

2020-11-08 13:39:53 95

原创 Java泛型

泛型的一些要求及规则不能使用基本类型不管该限定是类还是接口,统一使用关键字extends可以使用&符号给出多个限定如果限定既有接口也有类,那么类必须只有一个,并且放在首位泛型在集合中使用的好处:当集合对象指定泛型类型后类型安全(一旦集合对象确定泛型,只能存放入该类型的对象)使用集合元素时,无需强制转换•JDK1.5后,引入泛型;泛型就是对类型的参数化。主要用于解决类型安全问题。泛型上限和下限泛型上限: ? extends T:表示可以接受T类型或者T的子类.

2020-11-08 13:22:27 594

空空如也

空空如也

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

TA关注的人

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