随笔分类 - java
摘要:Cloneable 和 clone() 1.Cloneable 接口 首先,Cloneable 是一个标记接口(marker interface),意味着它没有任何方法。它的唯一作用是告诉Java虚拟机(JVM)当前类支持“克隆”操作,即能够创建当前对象的一个副本。 为什么需要 Cloneable 
        阅读全文
                
摘要:Collectors.toMap在在处理null值时,会出现NullPointerException 示例 DishCategoryAllPO d1 = new DishCategoryAllPO(); d1.setDishId(11111); d1.setPrimaryLabel("11111")
        阅读全文
                
摘要:网络通信中,最底层的就是内核中的网络I/O模型了。随着技术的发展,操作系统内核的网络模型衍生出了五种I/O模型,《UNIX网络编程》一书将这五种I/O模型分为阻塞式I/O、非阻塞式I/O、I/O复用、信号驱动式I/O和异步I/O。 1. 阻塞式IO 阻塞式I/O,它在每一个连接创建时,都需要一个用户
        阅读全文
                
摘要:一、Nginx 首先,来看看Nginx的作用与缺陷。 Nginx服务发现 Nginx是一个反向代理组件,那么Nginx需要知道应用服务器的地址是什么,这样才能够将流量透传到应用服务器上,这就是服务发现的过程。 缺陷: 服务器的变动,就需要修改客户端配置后,重启所有的客户端进程,操作时间比较长; 服务
        阅读全文
                
摘要:1. 如何保证消息不丢失? 消息确认机制 2. 如何保证消息只被消费一次? 为了保证消息丢失,需要付出两方面的代价:一方面是性能的损耗,一方面可能造成消息重复消费。为了保证消息只被消费一次,我们需要保证消费多条消息时所得到的结果就是相同的,即幂等的。消息在生产和消费的过程中都可能会产生重复,所以你要
        阅读全文
                
摘要:官网SQL优化手段 sql优化没有固定的标准,本质上就是做减法,减少io、cpu等消耗,让sql执行的更快,最终达到我们的性能要求。以下是一些常规性的建议,希望能让大家少踩些坑。 案例:创建10万数据 DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sy
        阅读全文
                
摘要:主从同步的优点: 读写分离提高数据库并发处理能力 数据备份 高可用性。也就是当服务器出现故障或宕机的情况下,可以切换到从服务器上,保证服务的正常运行。 Binlog&Undolog 二进制日志(Binlog):存储的是一个又一个事件(Event),这些事件分别对应着数据库的更新操作,比如INSERT
        阅读全文
                
摘要:MVCC:多版本并发控制技术。保存数据的历史版本。这样我们就可以通过比较版本号决定数据是否显示出来。 InnoDB中的RC和RR隔离事务是基于多版本并发控制(MVCC)实现高性能事务。一旦数据被加上排他锁,其他事务将无法加入共享锁,且处于阻塞等待状态,如果一张表有大量的请求,这样的性能将是无法支持的
        阅读全文
                
摘要:优化表设计 表结构要尽量遵循第三范式的原则,让数据结构更加清晰规范,减少冗余字段,同时也减少了在更新,插入和删除数据时等异常情况的发生。 反范式原则。如果分析查询应用比较多,尤其是需要进行多表联查的时候,可以采用反范式进行优化。当冗余信息有价值或者能大幅度提高查询效率的时候,我们就可以采取反范式的优
        阅读全文
                
摘要:1. 索引的概述 索引可以帮助我们从海量的数据中快速定位想要查找的数据。不过索引也存在一些不足,比如占用存储空间、降低数据库写操作的性能等,如果有多个索引还会增加索引选择的时间。 索引主要有4种,分别是: 普通索引:是基础的索引,没有任何约束,主要用于提高查询效率。 唯一索引:在普通索引的基础上增加
        阅读全文
                
摘要:事务的特性: A,也就是原子性(Atomicity)。数据操作是不可分割 C,就是一致性(Consistency)。一致性指的就是数据库在进行事务操作后,数据库的完整性约束不能被破坏。 I,就是隔离性(Isolation)。它指的是每个事务都是彼此独立的,不会受到其他事务的执行影响。 D,指的是持久
        阅读全文
                
摘要:1. 非关联子查询 子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行 例如:假设我们想要知道哪个球员的身高最高,最高身高是多少 select play_name, height from player where height = (select 
        阅读全文
                
摘要:聚集函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。 1. 聚集函数 SQL中的聚集函数一共包括5个: COUNT(role_assist)会忽略值为NULL的数据行,而COUNT(*)只是统计数据行数,不管某个字段是否为NULL。 AVG、MAX、MIN等聚集函数会自动
        阅读全文
                
摘要:五、DQL——SQL函数 在SQL中我们也可以使用函数对检索出来的数据进行函数操作。 SQL函数会带来的问题: 使用的函数很可能在运行环境中无法工作。大部分DBMS会有自己特定的函数,这就意味着采用SQL函数的代码可移植性是很差的,因此在使用函数的时候需要特别注意。 注意大小写规范。 Linux的环
        阅读全文
                
摘要:1. 筛选案例实操 查询所有最大生命值大于6000的英雄: select name from heros where hp_max > 6000 要查询所有最大生命值在5399到6811之间的英雄: select name from heros where hp_max between 5399 a
        阅读全文
                
摘要:三、DQL——SELECT 1. 查询列 select name from heros select name, hp_max, mp_max, attack_max, defense_max from heros select * from heros 2. 起别名 select name as 
        阅读全文
                
摘要:在DML中,我们常用的功能是增删改,分别对应的命令是CREATE、DROP和ALTER。 1. 对数据库进行定义 CREATE DATABASE nba; // 创建一个名为nba的数据库 DROP DATABASE nba; // 删除一个名为nba的数据库 2. 对数据表进行定义 CREATE 
        阅读全文
                
摘要:一、概述 SQL有两个重要的标准,分别是SQL92和SQL99,它们分别代表了92年和99年颁布的SQL标准。 E-R(实体-关系)图 它是我们用来描述现实世界的概念模型,在这个模型中有3个要素:实体、属性、关系。 实体就是我们要管理的对象,属性是标识每个实体的属性,关系则是对象之间的关系。 SQL
        阅读全文
                
摘要:在Java中CompletableFuture用于异步编程, 是 Future API的扩展。异步编程是编写非阻塞的代码,运行的任务在一个单独的线程,与主线程隔离,并且会通知主线程它的进度,成功或者失败。 Future Future 被用于作为一个异步计算结果的引用。提供一个 isDone() 方法
        阅读全文
                
摘要:ln -s file file.s : 创建一个软链接,软链接就像windows 下基于文件路径创建的快捷方式,软链接行为和 windows 下的快捷方式差不多. -rw-r--r-- 1 sangxiaoqian staff 5 6 12 23:56 a.txt lrwxr-xr-x 1 sang
        阅读全文
                

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号