自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MinggeQingchun的博客

记录就是一种积累,积累就是一种提高,提高就是一种成长!

  • 博客(1221)
  • 资源 (7)
  • 收藏
  • 关注

原创 MySQL - 索引详解以及优化;Explain执行计划

一般就是在你的where语句中出现了between、、in等的查询这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。在索引大大提高查询速度的同时,却会降低表的更新速度,在对表进行数据增删改的同时,MySQL不仅要更新数据,还需要保存一下索引文件。id相同和不同都存在时,id相同的可以理解为一组,从上往下顺序执行,所有组中,id值越大,优先级越高越先执行。索引实际上也是一张表,保存了主键和索引的字段,并且指向实体表的记录,所以索引也是需要占用空间的。

2023-10-31 21:49:54 437

转载 IDEA - 最全实用插件与使用

日晒主题本身是为vim定制的。后来移植到ide 非常酷!配色非常耐看​idea设置黑色经典样式Darcula:idea设置黑色经典样式Darcula。

2023-06-04 15:35:28 4055

原创 Linux - Linux命令大全

1、将一个文件夹下的所有内容复制到另一个文件夹下。5、移动一个文件夹下的所有内容到另一个文件夹下面。表示向下递归,不管有多少级目录,一并删除。2、将一个文件夹复制到另一个文件夹下。3、删除一个文件夹及其下面的所有文件。4、移动一个文件夹到另一个文件夹下面。表示直接强行删除,不作任何提示。

2023-02-02 22:59:10 1482

转载 SQL - SQL优化的几种方法

13、并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。10、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。

2022-10-26 21:23:01 1537 2

原创 JUC - 多线程之悲观锁、乐观锁,读写锁(共享锁、独享锁),公平非公平锁,可重入锁,自旋锁,死锁(十)

读写锁是一种技术: 通过类来实现为了提高性能, Java 提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,如果没有写锁的情况下,读是无阻塞的,在一定程度上提高了程序的执行效率。读写锁分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由 JVM自己控制的读锁(共享锁)允许多个线程获取读锁写锁(独享所)只允许一个线程获取写锁:也叫读锁,可以查看数据,但是不能修改和删除的一种数据锁,加锁后其他的用户可以并发读取,但不能修改、增加、删除数据,该锁可被多个线程持有,用于资源数据共享。

2022-10-25 20:55:11 1391

原创 JUC - 多线程之 单例模式(八)

单例模式(Singleton Pattern)是一种非常简单的设计模式之一,当我们使用的对象要在全局唯一时就需要用到该模式,以保证对象的唯一性。除此之外,还能避免反复的实例化对象,减少内存开销单例类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象单例主要有如下创建方式优点:写法简单;避免了线程同步问题缺点:在类装载的时候就完成实例化,没有达到Lazy Loading懒加载的效果。如果从始至终从未使用过这个实例,则会造成内存的浪费 优缺点同上 优点:在使用时才会生成对象

2022-10-24 12:00:34 360

原创 JUC - 多线程之阻塞队列BlockingQueue(四)

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端 (front) 进行删除操作,而在表的后端 (rear) 进行插入操作。和栈一样,队列是一种操作受限制的线性表,进行插入操作的端称为队尾,,进行删除操作的端称为对头.在队列中插入一个队列元素称为入队, 从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故。

2022-10-20 22:14:12 277

原创 Java--多线程之synchronized和lock;死锁(四)

在了解synchronized之前,我们先看一个线程不安全的示例如一个账户中有1万块钱,两个人同时取钱,会导致余额不对,或者取的钱比账户中金额还多输出如下t1和t2线程分别在同一个总金额为1万的账户取款 5千,然余额还是5千,这就导致了多线程并发下数据不安全的情况。

2022-10-12 13:19:45 955

原创 JVM -- 类加载器;双亲委派机制;线程上下文类加载器(八)

类加载器就是根据类的二进制名(binary name)读取java编译器编译好的字节码文件(.class文件),并且转化生成一个java.lang.Class类的一个实例。每个实例用来表示一个Java类,jvm就是用这些实例来生成java对象的。如new一个String对象;反射生成一个String对象,都会用到String.class 这个java.lang.Class类的对象。基本上所有的类加载器都是java.lang.ClassLoader 类的一个实例。

2022-10-11 20:41:00 1244 1

原创 JVM -- 垃圾回收;垃圾回收算法(三)

https://blog.csdn.net/MinggeQingchun/article/details/126947384https://blog.csdn.net/MinggeQingchun/article/details/127066302

2022-10-01 21:20:51 881

原创 JVM -- JVM内存结构:程序计数器、虚拟机栈、本地方法栈、堆、方法区(二)

JVM的内存结构大致分为五个部分,分别是。除此之外,还有由堆中引用的JVM外的直接内存。

2022-09-30 17:36:36 1259

原创 Java--Stream流详解

Stream是Java 8 API添加的一个新的抽象,称为流Stream,可以一种声明的方式处理数据stream().filter()一般适用于list集合过滤list中的数据,主要作用就是模拟sql查询,从集合中查询想要的数据,不用像之前一样遍历list再筛选orElse(null)表示如果一个都没找到返回null(orElse()中可以塞默认值。如果找不到就会返回orElse中设置的默认值)orElseGet(null)表示如果一个都没找到返回null(orElseGet()中可以塞默认值。

2022-08-30 07:28:40 73402 25

原创 Kubernetes - Kubernetes部署“容器化应用”(二)

kubectl create deployment deployment名称 --image=自定义项目镜像名称 --dry-run -o yaml > 需要生成的yaml文件。kubectl create deployment deployment名称 --image=自定义项目镜像名称 --dry-run -o json > 需要生成的json文件。kubectl create deployment deployment名称 --image=自定义项目镜像名称 --dry-run -o yaml。

2022-08-20 22:25:25 1096

原创 Kubernetes - Kubernetes详解;安装部署(一)

Kubernetes 这个单词源于希腊语,意为“舵手”或“飞行员”。Kubernetes,也称为K8S,其中8是代表中间“ubernete”的8个字符,是Google在2014年开源的一个容器编排引擎,作为CNCF(Cloud Native Computing Foundation;云原生计算基金会)最重要的组件之一Kubernetes用于自动化容器化应用程序的部署、规划、扩展和管理,它将组成应用程序的容器分组为逻辑单元,以便于管理和发现,用于管理云平台中多个主机上的容器化的应用。

2022-08-19 12:42:46 1647

原创 SpringCloud - Spring Cloud Alibaba 之 Seata分布式事务服务;AT事务模式(二十)

Seata事务组编号 seata.tx-service-group,用于TC集群名,一般格式为:${spring.application.name}-group。Seata事务组编号 seata.tx-service-group,用于TC集群名,一般格式为:${spring.application.name}-group。Seata虚拟组和分组的映射 seata.service.vgroup-mapping.${seata.tx-service-group}=default。................

2022-08-07 09:00:12 1070

原创 SpringCloud - 微服务(Microservices);Spring Cloud详解(一)

作为一名Java程序员,对系统架构的演变还是需要清楚的,首先就简述一下架构的演变历程单体架构比较初级,典型的三级架构,前端(Web/手机端) + 中间业务逻辑层 + 数据库层。这是一种典型的Java Spring MVC 框架的应用单体架构就是把所有的功能、模块都集中到一个项目中,部署在一台服务器上,从而对外提供服务(集中式架构、单体服务、单体应用)单体架构的应用比较容易部署、测试, 在项目的初期,单体应用可以很好地运行。然而,随着需求的不断增加, 越来越多的人加入开发团队,代码库也在飞速地膨胀。慢慢地,单

2022-06-14 12:59:43 1791

原创 Docker - Docker详解及使用

在说Docker之前,我们先说说传统服务器传统的独立服务器,它是一个独立的硬件设备,可以理解成是一台放在机房的高配置电脑;有独立的处理器、内存、硬盘、带宽等资源,可根据需求安装各种操作系统以及配置各种环境这种服务器缺点:1、花费成本较高(时间成本,资金成本)2、应用迁移比较麻烦,需要重新购买服务器,安装操作系统,配置运行环境,部署应用因此出现了虚拟化技术,主要分为硬件虚拟化(hardware-level-virtualization)操作系统虚拟化(os-level-virtua

2022-04-08 15:54:46 4372 2

原创 Java--Maven多模块管理

超大侧率maven父工程必须遵循两点要求:1、packaging标签的文本内容必须设置为pom2、将src目录删除掉一、空工程Empty Project设置1、创建一个空工程Empty Project(1)File----New----Project,选择Empty Project,点击Next(2)输入工程名,以及存放路径Project name:项目名称Project location:项目存放位置路径2、创建Maven父工程(1)File----

2022-04-05 21:50:19 5296

原创 Java--Maven,POM,maven安装,maven核心,命令

一、MavenMaven是Apache软件基金会组织维护的一款自动化构建工具,Maven这个单词的本意是:专家,内行。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理maven官网地址maven官网maven中央仓库maven中央仓库1、Maven作用(1)maven 可以整合多个项目模块之间的引用,还可以根据业务和功能拆分项目(2)maven可以自

2022-03-27 19:45:35 1939

原创 Java--数组和集合区别

博主之前是做移动端iOS开发的发现一直有一个疑问,比如Java中数组

2022-03-05 19:58:12 8152 2

原创 Java--Collection和Map集合

一、Collection二、Map

2022-02-19 21:59:48 2545 3

原创 MySQL-事务;存储引擎

一、事务(transaction)MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!(1)在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。(2)事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行(3)事务用来管理DML语句(insert,update,delete).

2022-01-19 22:18:54 1030

原创 MySQL-函数

一、数据处理函数(单行处理函数)单行处理函数的特点:一个输入对应一个输出1、lower() 转换小写;标准SQL中函数LCASE()select lower(ename) as ename from emp;2、upper() 转换大写;标准SQL中函数UCASE()select upper(ename) as empname from emp;3、substr() 取子串(substr( 被截取的字符串, 起始下标,截取的长度))MID(字段,1,end)- 从某个...

2022-01-16 21:44:59 4015

原创 SQL- join多表关联

SQL 连接(JOIN)【1】SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段【2】下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法【3】SQL JOIN 类型INNER JOIN:内连接,又叫等值连接,返回两个表中连接字段相等的行LEFT JOIN:左连接,即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN:右连接,即使左表中没有匹配,也从右表返回所有的行FULL J.

2022-01-07 21:09:48 18639 2

原创 Java--多态;抽象类;接口

一、抽象类1、final关键字 1.1、final修饰的类无法继承。 1.2、final修饰的方法无法覆盖。 1.3、final修饰的变量只能赋一次值。 1.4、final修饰的引用一旦指向某个对象,则不能再重新指向其它对象,但该引用 指向的对象内部的数据是可以修改的。 1.5、final修饰的实例变量必须手动初始化,不能采用系统默认值。 1.6、final修饰的实例变量一般和static联合使用,称为常量。 public ...

2021-11-01 16:26:00 1184

原创 iOS-isa指针;objc实例对象、类、元类、根类、根元类

11

2021-10-07 10:53:07 1427

原创 iOS-class方法和objc_getClass方法

根据上一篇博客iOS-class、object_getClass、objc_getClass、objc_getMetaClass区别的研究发现,qi's

2021-10-07 10:12:25 1768

原创 iOS-class、object_getClass、objc_getClass、objc_getMetaClass区别

对于这几个方法的区别,首先需要了解 OC 类的数据结构,(任何runtime的文章都会介绍的)对于 class 和 object_getClass 和 objc_getClass 三种方法,首先:全部返回 Class 类对象class 方法class 方法无论是类对象还是实例对象都可以调用,可以嵌套,返回永远是自身的类对象。如:Person *p = [[Person alloc]init];Class *pClass == [p class] == [ [p class]class] .

2021-10-07 09:17:30 983

原创 iOS-Runtime之class_addMethod给类动态添加方法

一、简介/** * Adds a new method to a class with a given name and implementation. * * @param cls The class to which to add a method. * @param name A selector that specifies the name of the method being added. * @param imp A function which is the imple

2021-10-05 22:18:13 1304

原创 iOS-Runtime消息发送、转发机制

在iOS开发中我们经常会遇到这样的crashunrecognized selector sent to instance 0x******

2021-10-04 22:23:07 892

原创 iOS-Runtime之SEL、IMP、Method

它们之间的关系可以这么解释:一个类(Class)持有一个分发表,在运行期分发消息,表中的每一个实体代表一个方法(Method),它的名字叫做选择子(SEL),对应着一种方法实现(IMP)。具体的分析如下:...

2021-10-04 21:14:40 913

原创 iOS-Runtime之unrecognized selector sent to instance/class 防护Crash

可在GitHub上下载示例源代码Demo,欢迎点赞给星,谢谢!一、报错在iOS开发中我们经常会遇到这样的crashunrecognized selector sent to instance 0x******二、报错原因报错原因就是我们调用了一个不存在的方法。用OC的消息机制来说就是:消息的接收者找不到对应的selector,这样就启动了消息转发机制,我们可以通过代码在消息转发的过程中告诉对象应该如何处理未知的消息,防止程序crash。默认实现是抛出下面的异常,这样也就crash了.

2021-10-04 08:04:45 860

原创 Java--Java版本和JDK版本

对于Java初学者,经常会听到同事,或看到网上Java版本和JDK版本不一的叫法,不明白这两者到底什么关系?其实博主当年初学Java时也有这样的困惑,今天我们就来好好探讨一下,如有不对之处,请加以指正,不喜勿喷,谢谢! Java版本叫法:Java6、Java8、Java11、Java13 (当前最新版本Java17) 等这一类 “Java X” 的Java版本名称同时又会听到,看到 JDK版本叫法:JDK1.6、JDK1.8等这种“J...

2021-10-01 17:23:17 55393 18

原创 Java--HashMap

一、HashMapHashMap 是一个散列表,它存储的内容是键值对(key-value)映射。散列表(哈希表)是一种空间换时间的存储结构,是在算法中提升效率的一种比较常用的方式。散列表,是指可以通过关键字key直接访问到内容value的一种数据结构。可以一个value对应多个key,但是一个key只能对应一个value,其中是通过key映射到一个位置上,来直接访问value。二、HashMap数据结构1、HashMap源码实现HashMap 继承于AbstractMap,实现了 M

2021-07-01 10:31:13 951 1

原创 Java -- 集合(Map接口和Collection接口)

1、常见集合Map接口和Collection接口是所有集合框架的父接口【1】Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。【2】Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不能包含重复的key

2021-07-01 09:20:48 805

原创 iOS - iOS8.0 至 iOS15.0 版本变化

本文主要讲述iOS8.0系统至iOS14系统的变化差异,博主踩坑历程,仅为iOS开发提供参考,不包括UI一、iOS8.01.定位功能使用改变// 判断定位操作是否被允许if([CLLocationManager locationServicesEnabled]) { locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [locationManager start......

2021-06-02 18:03:17 2824 3

原创 MacOS-MacAPP通过纯代码不依赖storyboard/xib加载UI主界面

在网上下载了很多MacOS端的APP开源项目和代码,发现基本都是通过storyBoard或xib加载UI;但是我想和iPhone一样在AppDelegate中创建主UIWindow,然后设置自定义的rootViewController,如下图:在网上找了很久,发现可参考的资料太少了,但是功夫不负有心人啊,博主最终解决了我们如何通过纯代码而不依赖storyboard/xib加载UI主界面呢?1、删除项目中的Main.storyboard或者xib文件要在项目Info.plist中删除M

2021-05-06 09:49:21 1744 6

原创 MacOS-MacAPP使用Main.storyboard启动视图程序踩坑

由于主做移动端APP的iOS开发,对于Mac端的APP开发较少,我也本以为,简单的以为会和iOS差不多雄赳赳,气昂昂没想到啊,真是没想到啊,帅不过3秒!!!尴尬!!!在程序视图启动入口处就挂了,踩了一些坑,创建macOS项目步骤我就不再介绍了,可参考博文本人使用OC创建的macOS项目,勾选了storyboard,创建好项目之后,界面如下:一、坑一:删除ViewController自定义Controller,运行APP还是空白window默认有ViewController.h和V

2021-05-02 12:30:05 1463 2

原创 iOS-symbolicatecrash符号化Crash文件

在我们的app上线了时候,还是会或多或少的存在一些闪退问题,这时候已经无法去调试获取崩溃信息。有些crash日志会传到后台(前提是接口给你提供,你自己也做了这个功能)但是有些crash日志是在用户的iPhone等设备上才能找到的。对于开发人员来说,有些crash日志不需要用户提供就可以找到日志文件,这时候就要看闪退的app的包是不是在你本机Mac上进行打包的:本机: 那就可以直接用Xcode的Or...

2018-06-19 15:30:31 1165 1

原创 iOS-iPad强制竖屏

新建项目时我们都会选择“Universal”(同时适用于iPhone和iPad),但是iPad有好几个方向需要适配,在iPad应用开发时如何让设备只支持横屏(landscape)或竖屏模式,设置方法如下:通过Xcode中的plist文件设置“Supported interface orientations (iPad)”,如果只支持横屏的话,只选择横屏左和横屏右,这种方法实质是在xxx_info....

2018-05-22 17:10:36 7506 1

UILabel的text设置不同颜色、字体

UILabel的text设置不同颜色、字体

2016-09-19

导航栏渐变透明

导航栏渐变透明

2016-09-19

cell自适应高度

cell自适应行高

2016-09-19

Xcode的Targets多版本构建

使用Xcode的Targets进行多版本构建

2016-08-18

Xcode的Targets进行多版本构建

使用Xcode的Targets进行多版本构建

2016-08-17

使用Xcode的Targets进行多版本构建

使用Xcode的Targets进行多版本构建,使用相同的代码,却使用不同的资源文件

2016-08-17

UIlabel根据文本、字体获得label宽度;自适应宽高

UIlabel根据文本、字体获得label宽度;自适应宽高

2004-07-05

空空如也

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

TA关注的人

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