java
文章平均质量分 93
向着风奔跑
在oppo互联网服务
展开
-
MongoDB聚合和索引
MongoDB聚合框架是一个计算框架作用在一个或几个集合对集合中的数据进行一系列运算将这些数据转化为期望的形式Aggregation Pipeline Stages — MongoDB Manual1、MongoDB聚合操作原始数据db.orders.insertMany([{ zip:"000001", phone:"13101010101", name:"LiuBei", status:"created", shippingFee:10, orderLi.原创 2022-03-22 19:25:56 · 1755 阅读 · 0 评论 -
MongoDB的CRUD
Create 创建Insert Methods — MongoDB Manualdb.集合.insertOne(<JSON对象>) // 添加单个文档db.集合.insertMany([{<JSON对象1>},{<JSON对象2>}]) // 批量添加文档db.集合.insert() // 添加单个文档insertOne, 和 insertMany命令不支持 explain命令insert支持 explain命令insertOne原创 2022-03-22 19:19:01 · 1495 阅读 · 0 评论 -
Junit5&Junit4
参考资料https://www.cnblogs.com/zgq123456/p/12907757.htmlhttps://www.cnblogs.com/zgq123456/p/12907751.htmlhttps://zhuanlan.zhihu.com/p/111706639JunitPrefhttps://www.cnblogs.com/zgq123456/p/12907772.htmlJunit5目前Java领域内最为流行的单元测试框架 ------ JUnitJunit的最新版本J原创 2022-01-18 11:02:31 · 816 阅读 · 0 评论 -
java的集合框架
原创 2020-03-28 17:55:11 · 124 阅读 · 0 评论 -
架构师-JVM(二)
JVM参数标准参数-version-help -server -cpC:\Users\Administrator>java -versionjava version "1.8.0_231"Java(TM) SE Runtime Environment (build 1.8.0_231-b11)Java HotSpot(TM) 64-Bit Server VM (build...原创 2019-12-28 10:01:15 · 204 阅读 · 0 评论 -
架构师-JVM(一)
参考资料:官网《深入理解Java虚拟机:JVM高级特性与最佳实践》葛一鸣老师的《实战Java虚拟机》类加载机制运行时数据区JVM内存模型垃圾回收JVM 调优工具JVM 性能优化探讨...原创 2019-12-26 21:53:27 · 333 阅读 · 0 评论 -
java并发-线程相关方法
线程通知与等待wait()/wait(long timeout)当一个线程调用一个共享变量的wait()方法时,该调用线程会被阻塞挂起,直到发生下面几件事情之一才返回:(1)其他线程调用了该共享对象的notify()或者notifyAll()方法;(2)其他线程调用了该线程的interrupt()方法,该线程抛出 InterruptedException异常返回。// 生产者线程syn...原创 2020-02-23 21:45:02 · 73 阅读 · 0 评论 -
java并发-线程生命周期
为是么需要线程并发的发展历史真空管和穿孔打卡最早的计算机只能解决简单的数学运算问题,比如正弦、余弦等。运行方式:程序员首先把程序写到纸上,然后穿孔成卡片,再把卡片盒带入到专门的输入室。输入室会有专门的操作员将卡片的程序输入到计算机上。计算机运行完当前的任务以后,把计算结果从打印机上进行输出,操作员再把打印出来的结果送入到输出室,程序员就可以从输出室取到结果。然后,操作员再继续从已经送入到...原创 2020-02-23 17:00:20 · 116 阅读 · 0 评论 -
Spring5新特性
Spring5新特性运行环境Spring 5.0正常运行时,需要以下环境:整个Spring框架的代码基于JDK 8开发。当读者选择升级Spring框架时,需要先确认已经安装了JDK 8及以上的JDK版本,否则Spring 5.0将不能正常运行。Spring 5.0通过使用泛型推断和lambda表达式等特性提高了代码的可阅读性。支持使用Java 8编程。支持JDK 9开发部署。整个S...原创 2020-02-16 19:43:40 · 739 阅读 · 0 评论 -
java-设计模式(一)
设计原则软件工程理论中的六大设计原则单一职责原则不存在多于一个的因素导致类的状态发生变更,即一个类只负责一项单一的职责。里氏替换原则基类出现的地方都可以用其子类进行替换,而不会引起任何不适应的问题。接口隔离原则客户端不应该依赖于其不需要的接口,类间的依赖关系应该建立在最小的接口之上。迪米特法则(最少知道原则)一个对象对其他对象有最少的了解。开闭原则软件设计对于扩展是开放的(...原创 2020-02-14 17:29:19 · 108 阅读 · 0 评论 -
架构师-Netty(五)
Buffer和相关辅助类ByteBuffer常用的缓冲区JDK NIO 类库 java.nio.BufferJDK提供的ByteBuffer可以满足NIO编程,但有其局限性:ByteBuffer 长度固定,不能自动扩缩容,编程对象POJO大于ByteBuffer的容量时,或发生索引越界异常ByteBuffer只有一个标识位置的指针position,读写的时候需要手工调用flip()和...原创 2020-02-05 17:28:09 · 453 阅读 · 0 评论 -
架构师-Netty(一)
IO概念阻塞(Block)和非阻塞(Non-Block)阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候。阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回。同步(Synchronization)和...原创 2020-02-01 12:40:40 · 321 阅读 · 0 评论 -
Java之SPI机制
Java之SPI机制SPI的全名为Service Provider Interface,我对于该机制的理解是为接口寻找服务实现类。现在公司的系统都是进行了模块的划分,系统抽象为多个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插...转载 2018-08-27 22:02:51 · 184 阅读 · 0 评论 -
PMD插件
添加PMD插件扫描潜在的bug本文作者:@Ryan Miao 本文链接:https://www.cnblogs.com/woshimrf/p/using-pmd.html 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!目录什么是PMD在gradle中使用在maven中使用idea插件Ruleset default内容...转载 2018-12-31 16:11:51 · 1455 阅读 · 0 评论 -
Maven的生命周期
Maven的构建生命周期理解以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html:一、构建生命周期基础:Maven基于构建生命周期的中心概念。这意味着构建和分发特定工件(项目)的过程被明确定义。对于构建项目的人员,这意味着只需要学习一小堆命令即可构建任...转载 2018-12-31 16:14:00 · 215 阅读 · 0 评论 -
Avro初探
文章目录介绍Avro 提供的属性:类似的框架Avro SchemaAvro 数据类型Java中使用创建实例序列化反序列化Avro(读音类似于[ævrə])是Hadoop的一个子项目,由Hadoop的创始人Doug Cutting(也是Lucene,Nutch等项目的创始人,膜拜)牵头开发,Apache AVRO介绍Apache Avro™ 是一个数据序列化系统Avro 提供的属性:...原创 2019-01-02 20:20:24 · 398 阅读 · 0 评论 -
性能优化-mysql-索引
文章目录索引索引是什么?为什么要用索引为什么是B+Tree?二叉查找树Binary Search Tree问题多路平衡查找数,B-Tree加强版多路平衡查找树B+treeB+Tree与B-Tree的区别B+Tree优点Mysql B+Tree 索引体现MyisamInnodb索引知识点列的离散型 count(distinct col):count(col)最左匹配原则联合索引案例覆盖索引建立索引规...原创 2019-08-09 21:02:15 · 292 阅读 · 0 评论 -
mysql-58同城30条军规
文章目录一、基础规范二、命名规范三、表设计规范四、字段设计规范五、索引设计规范六、SQL使用规范军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集 UTF-8MB4解读:万国码,...转载 2019-08-10 12:04:46 · 155 阅读 · 0 评论 -
mysql存储引擎和执行计划
学习笔记用,转在咕泡学院文章目录存储引擎存储引擎介绍CSV存储引擎Archive存储引擎Memory存储引擎Innodb对比MySQL体系结构及运行机制Mysql体系MySQL查询优化1 mysql客户端/服务端通信2 查询缓存**工作原理:****判断标准:**查询缓存配置mysql默认关闭缓存开启使用业务场景3 查询优化处理4 查询执行引擎5 返回客户端执行计划查询优化器找到最优执行计划查...原创 2019-08-10 13:29:01 · 301 阅读 · 0 评论 -
Mysql的事务和锁机制
文章目录事务什么是事务事务ACID特性事务并发带来的问题事务的4种隔离级别锁表锁、行锁MySQL InnoDB锁类型共享锁(Shared Locks) VS 排它锁(Exculsive Locks)innodb-行锁到底锁什么?意向共享锁(IS)&意向排它锁(IX)自增锁AUTO-INC Locks行锁的算法临键锁(Next-Key)间隙锁(Gap)记录锁(Record)利用锁解决并发问题...原创 2019-08-10 17:40:15 · 1063 阅读 · 1 评论 -
幂等和非幂等的关系与区别
2018年07月04日 22:59:28 阅读数:151 标签: 如何设计符合幂等性的高质量RESTful API一、HTTP请求方法根据HTTP标准,HTTP请求可以使用多种请求方式。GET POST HEAD OPTIONS PUT PATCH DELETE TRACE CONNECT。index method description 1 GET 请求...转载 2018-08-26 17:39:03 · 360 阅读 · 0 评论