自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(209)
  • 问答 (3)
  • 收藏
  • 关注

原创 maven打包测试jar包冲突

maven打包,本地测试和服务器测试不一致

2022-11-10 20:20:46 257 1

原创 layer.open加上时间

layer.open({ title: '停用截至日期', content: '<input type="date" id="deadline" />', yes: function(index, layero){ var deadline = $('#deadline').val(); } })这样日期就可以获取到了,格式貌似是yyyy-MM-dd。...

2020-06-17 18:51:13 1153

原创 Maven配置

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mi...

2020-03-26 10:45:40 1249

原创 代理模式

//抽象角色public interface Star { void sing(); void sign(); void bookticket(); void money(); void talk();}//真是角色public class RealStar implements Star{ @Override publi...

2020-03-20 19:23:25 204

原创 枚举

public enum Spiciness { NOT,MILD,MEDIUM,HOT,FLAMING}这里创建了一个Spiciness的枚举类型,它有5个具名值。枚举类型的实例是常量,用大写字母表示。public class SimpleEnumUse { public static void main(String[] args) { Spi...

2020-03-20 17:04:57 420

原创 装饰模式

装饰模式动态地给一个对象添加一些额外的职责(功能)。它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象。这里省去了ConcreteComponent,Person作为Component,Decorator 作为Decorator装饰类。 TShirts和BigTrouser类作为具体的装饰对象,给Person添加不同的功能。public class Person {...

2020-03-17 14:27:44 123

原创 Java虚拟机:类加载过程

1.加载

2020-03-14 19:38:06 172

原创 MySQL数据类型优化

1.更小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。2.简单就好。简单数据类型的操作通常需要更少的CPU周期。例如:整型比字符操作代价更低,因为字符集和校对规则使字符比较比整型比较更复杂。这里有两个例子:一个是应该使用MySQL内建的类型而不是字符串来存储日期和时...

2020-03-14 14:03:53 162

原创 MySQL:存储引擎InnoDB简单介绍

在文件系统中,MySQL将每个数据库保存为数据目录下的一个子目录。创建表时,MySQL会在数据库子目录下创建一个和表同名的.frm文件保存表的定义。可以使用SHOW TABLE STATUS命令显示表的相关信息。InnoDB是MySQL默认的事务型引擎,也是最重要,使用最广泛的存储引擎。InnoDB的数据存储在表空间中,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成...

2020-03-13 18:20:01 224

原创 策略模式

策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。本质:分离算法,选择实现。1.Strategy:定义所有支持的算法(打折算法)的公共接口public interface Strategy { double getPrice(double price);}2.封装具体的算法,实现Str...

2020-03-13 17:30:12 127

原创 Java虚拟机:类加载机制(2)

下面用三个例子来说明何为被动引用。1.public class SuperClass { static{ System.out.println("SuperClass init!"); } public static int value=123;}public class SubClass extends SuperClass { ...

2020-03-13 15:40:11 66

原创 Java虚拟机:类加载机制(1)

在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的。Java里天生可以动态扩展的语言特性就是依赖运行期间动态加载和动态连接这个特点实现的。...

2020-03-12 16:43:35 134

原创 MySQL:多版本并发控制MVCC

MySQL的大多数事务型存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。MVCC的实现,是通过保存数据在某个时间点的快照来实现的。也就是说,不管需要执行多长时间,每个事务看到的数据都是一致的。根据事务开始的时间不同,每个事务对同一张表,同一时刻看到的...

2020-03-12 15:38:50 92

原创 MySQL:事务

事务就是一组原子性的SQL查询,或者说一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败。银行应用是解释事务必要性的一个经典例子。假设一个银行的数据库有两张表:支票表checking和储蓄表savings。现在要从某用户的支票账户转200美元到她的储蓄账户,那么需要三个步骤:1.检查支票账户余额高于200美元;2.从支票账户余额减去200美元;3.在储蓄账户余...

2020-03-12 15:04:48 172

原创 简单工厂模式

实现创建者和调用者的分离。此处我们设计个程序,输入两个数和运算符号,输出结果。//运算类public class Operation { double number01=0; double number02=0; public double getNumber01() { return number01; } public...

2020-03-12 13:59:26 83

原创 设计模式

2020-03-12 13:14:40 138

原创 MySQL:并发控制(锁)

无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制的问题。在处理并发读或者写的时候,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁通常被称为共享锁和排他锁,也叫读锁和写锁。读锁是共享的,或者说是相互不阻塞的。多个客户在同一时刻可以同时读取同一个资源而不互相干扰。写锁是排他的,也就是说一个写锁会阻塞其他的写锁和读锁,这是出于安全策略的考虑,只有这样才能...

2020-03-11 14:51:45 244

原创 MySQL:逻辑架构

最上层的服务并不是MySQL独有的,大多数基于网络的客户端/服务端的工具或者服务都有类似的架构。比如连接处理、授权认证等等。第二层架构,大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信...

2020-03-11 14:01:23 162

原创 Java虚拟机:垃圾收集与内存分配(3)

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决两个问题:给对象分配内存以及回收分配给对象的内存。回收内存这一点前面已经介绍过了,现在探讨一下给对象分配内存。对象的内存分配,往大方向讲,就是在堆上分配,对象主要分配在新生代的Eden区上,少数情况下也可能会直接分配在老年代上。但分配规则并不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数...

2020-03-11 13:39:03 68

原创 Java虚拟机:垃圾收集与内存分配(2)

垃圾收集算法1.标记 - 清除算法此算法是最基础的收集算法,分为标记和清除两个阶段:首先标记所有需要回收的对象,在标记完成后统一回收所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进而得到的。它的主要不足有两个,一个是效率问题,标记和清除两个过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能导...

2020-03-11 11:00:15 130

原创 Java虚拟机:垃圾收集与内存分配(1)

Java内存运行时区域的各个部分中,程序计数器、虚拟机栈、本地方法栈这三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。Java堆的方法区就不一样,我们只...

2020-03-10 20:54:41 76

原创 String.intern()

String.intern()是一个Native方法,它的作用是:如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象;否则,将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。...

2020-03-10 16:51:18 62

原创 MySQL数据类型

2020-03-10 12:10:41 65

原创 Java虚拟机:运行时数据区

Java虚拟机在执行Java程序的时候会把它所管理的内存划分为若干个不同的数据区域。1.程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执...

2020-03-09 17:05:59 75

原创 数据库操作:安全管理

MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。你需要给用户提供他们所需的访问权,且仅提供他们所需的访问权。这就是所谓的访问控制,管理访问控制需要创建和管理用户账号。为了执行数据库操作,需要登录MySQL,MySQL创建一个名为root的用户账号,它对整个MySQL服务器具有完全控制。MySQL用户账号和信息存储在名为mysql的MySQL数据...

2020-03-09 14:39:28 466

原创 数据库操作:事务处理

并非所有引擎都支持事务处理,MyISAM不支持,InnoDB支持。事务处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么都执行,要么都不执行。事务处理是一种机制,用来管理必须成批执行的MySQL操作,以保证数据库不包含不完整的操作结果。利用事务处理,可以保证一组操作不会中途停止,它们或者作为整体执行,或者完全不执行。相关术语1.事务(transaction):指一组SQ...

2020-03-09 13:40:05 907

原创 数据库操作:存储过程

使用的大多数SQL语句都是针对一个或多个表的单条语句,并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。可以创建存储过程。存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合(一组为了完成特定功能的SQL语句集)。存储过程简单、安全、高性能。MySQL执行存储过程的语句为CALL。CALL接受存储过程的名字以及需要传递给它的任意参数。CAL...

2020-03-08 18:01:33 297

原创 数据库操作:视图

视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。SELECT cust_name,cust_contactFROM customers,orders,orderitemsWHERE customers.cust_id=orders.cust_id AND orderitems.order_num=orders.order_num AND pro...

2020-03-08 14:46:28 350

原创 数据库操作:数据过滤AND、OR、IN、NOT

SELECT prod_id,prod_price,prod_nameFROM productsWHERE vend_id=1003 AND prod_price<=10;此SQL语句检索由供应商1003制造且价格小于等于10的产品。AND 用来指示检索满足所有给定条件的行。SELECT prod_name,prod_priceFROM productsWHE...

2020-03-07 15:19:25 821

原创 数据库操作:排序检索数据ORDER BY

检索处的数据并不是以纯粹的随即顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。为了明确地排序,可以使用ORDER BY子句。SELECT prod_nameFROM productsORDER BY prod_name;prod_name列将以字母顺序进行排序。通常ORDER BY子句中使用的列将是为显示所选择的列。但是实际上并不一定要这样,用非检索的列排序...

2020-03-06 15:21:21 368

原创 数据库操作:检索数据SELECT

SELECT用途是从一个或多个表中检索信息。检索单个列SELECT prod_nameFROM products;上述语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。SQL语句不区分大小写,SELECT和select是相同的。检索多个列SELECT prod_id,pro...

2020-03-06 15:12:11 301

原创 数据库操作:组合查询UNION

可以用UNION操作符来组合数条SQL查询。利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。所需要做的只是给出每条SELECT语句,在各条语句之间放上关键字UNION。SELECT vend_id,prod_id,prod_priceFROM productsWHERE prod_price<=5UNIONSELECT vend_id,prod_id,...

2020-03-06 14:38:05 429

原创 数据库操作:创建高级联结

https://blog.csdn.net/xylyaya/article/details/104674541迄今为止,我们使用的只是称为内部联结或等值联结的简单联结。还有三种其他联结:自联结、自然联结、外部联结。自联结假如发现某物品(ID为DTNTR)存在问题,因此想知道生产该物品的供应商生产的其他物品是否也存在这些问题。此查询要求首先找到生产ID为DTNRT的物品的供应商...

2020-03-06 14:15:52 88

原创 数据库操作:创建计算字段

存储在数据库表中的数据一般不是应用程序所需要的格式。下面举几个例子。如果想要在一个字段中既显示公司名,又显示公司的地址,但这两个信息一般包含在不同的表列中。列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。需要根据表数据进行总数、平均数计算或其他计算。上述每个例子中,存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据。这就是计...

2020-03-05 16:29:43 711

原创 数据库操作:联结表join

假如有一个包含产品目录的数据库表,其中每种类别的物品占一行。对于每种物品要存储的信息包含产品描述和价格,以及生产该产品的供应商信息。现在,假如有由同一供应商生产的多种物品,那么在何处存储供应商信息(如供应商名、地址、联系方法等)呢?因为同一供应商生产的每个产品的供应商信息都是相同的,对每个产品重复此信息既浪费时间又浪费存储空间。如果供应商信息改变,只需改动一次即可。如果有重复数据,...

2020-03-05 15:29:30 224

原创 数据库操作:分组数据GROUP BY、HAVING

分组是在SELECT BY子句中建立的。SELECT vend_id,COUNT(*) AS num_prodsFROM productsGROUP BY vend_id;vend_id num_prods1001 31002 21003 7上面语句指定了两个列,vend_id包含产品供应商的id,num_prods为计算字段(产品数量)。GRO...

2020-03-04 14:18:38 271

原创 数据库操作:汇总数据(聚集函数)

我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。聚集函数运行在行组上,计算和返回单个值的函数。SQL聚集函数1.AVG():返回某列的平均值;2.COUNT():返回某列的行数;3.MAX():返回某列的最大值;4.MIN():返回某列的最小值;5.SUM():返回某列之和。SELECT AVG(prod_price) AS avg_...

2020-03-03 20:05:22 1916

原创 数据库操作:数据处理函数

与其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数没有SQL的可移植性强。能运行在多个系统上的代码称为可移植的。多数SQL语句是可移植的,在SQL实现之间有差异,这些差异通常不那么难处理。而函数的可移植性却不强。文本处理函数常用的文本处理函数:1.Left():返回串左边的字符;2.Length():返回串的长度;3.Locate():找出串的一个子串;4....

2020-03-03 14:31:35 212

原创 数据库操作:通配符

通配符:用来匹配值的一部分的特殊字符。为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。搜索模式:由字面值、通配符或两者组合构成的搜索条件。百分号(%)通配符在搜索串中,%表示任何字符出现任意次数。例如:为了找出所有以词jet起头的产品,可以使用以下语句。SELECT prod_id,prod...

2020-03-03 10:28:34 6671

原创 数据库操作:创建表、操作表

一般有两种创建表的方法:1.使用具有交互式创建和管理表的工具;2.使用MySQL语句。使用Navicat工具创建表uu。使用MySQL语句创建表。利用CREATE TABLE创建表,必须给出下列消息:1.表的名字,在关键字CREATE TABLE之后给出;2.表列的名字和定义,用逗号分隔。CREATE TABLE customers(...

2020-03-02 12:25:48 806

空空如也

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

TA关注的人

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