java快速排序
概述快速排序算法借鉴的是二叉树前序遍历的思想,最终对数组进行排序。优点:对于数据量比较大的数组排序,由于采用的具有二叉树二分的思想,故排序速度比较快局限只适用于顺序存储结构的数据排序(数组,ArrayList等),不适用于链式的数据结构算法实现思路一.将目标数组转化为这样一个数组。数组中的某个位置左边的所有数据都比该位置的数据小,该位置右边的数据都比该位置数据大。实现思路:1.取出数组第0个数据图
SQL大赛——5X5方格棋盘难题
“盛拓传媒杯”SQL大赛第一期答题,本期题目:5X5方格棋盘难题在5X5的方格棋盘中(如图),每行、列、斜线(斜线不仅仅包括对角线)最多可以放两个球,如何摆放才能放置最多的球,这样的摆法总共有几种?输出所有的摆法。要求:用一句SQL实现。输出格式:从方格棋盘第一行至第5行,每行从第一列到第5列依次输出,0表示不放球,1表示放球。例如:1001000000000000000000000。一行输出一个
容器Docker学习系列八~rootfs命令学习
基础是一步一步的get到的。随着自己写基础知识,也发现了很多原先没有注意到的知识点。工作是我们把知识进行应用的地方,但是也不应该不能让工作把我们局限住。继续扩展学习。我们今天学习下Docker的rootfs相关的命令commit从容器中创建一个新的镜像。语法糖dockercommit [OPTIONS]CONTAINERID[新的容器名字与标签]OPTIONS选项说明:-a:提交镜像的作者名字;-
Spring Boot:使用Undertow代替Tomcat同时支持H
现在越来越多的公司开始支持HTTP/2,相比HTTP有更好的性能。Undertow是一个性能可以和tomcat媲美的容器,SpringBoot也内置了这个容器,本文介绍使用Undertow代替Tomcat,用来实现同时支持HTTP、HTTPS、HTTP/2。去掉Tomcat依赖,引入Undertowcompile("org.springframework.boot:spring-boot-star
MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解
有此可以看出此时,mysql使用的是行索引。但是还有一个需要我们注意MySQL中的锁概念Mysql中不同的存储引擎支持不同的锁机制。比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁。Mysql3中锁特性如下:表级锁:开销小,加锁块;不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。
Binary_Tree
#includeusingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;#defineStatusint#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10#defineOK1#defineERROR0#defineINFEASIBLE -1#defineOVERFLOW -2type
WPF基础之命令
理解命令 传统的设计在需要地方添加事件处理程序,并使用各个事件处理程序调用恰当的应用程序方法。如下图,许多应用程序任务可通过各种不同的路由触发,所以经常编写多个事件处理程序来调用相同的应用程序方法。本身这并不是什么问题。但当需要处理用户界面状态时,问题就变复杂了。如果要禁用PrintDocumnt()任务。需要禁用两个菜单命令和一个工具栏按钮,使它们不能被单击并且禁用Ctrl+P快捷键。编写代码
StreamingPro SQL Server 支持异步导出数据
前言StreamingPro可以很容易让你搭建一个SparkSQLServer服务,并且提供Http格式的接口进行交互。通常查询结果较小,但是如果用户的SQL可能会产生几G甚至几十G的结果,那么Driver就直接挂了。StreamingPro提供了同步和异步机制,将SQL的查询结果放在HDFS上。如果是同步的话,执行完后返回下载地址(HTTP接口,StreamingPro提供),如果是异步,则会使
REST解惑
本文是「架构风格:你真的懂REST吗?」的补充!REST全称是RepresentationalStateTransfer,目前普遍接受的中文翻译为「表述性状态转移」!即使翻译过来了,你依然有一堆疑问:什么是「表述性」的?什么是状态?什么是转移?转移的是什么?所以本文试图回答如下几个问题:为什么要叫REST这个名字?什么是状态、资源、表述?以及它们之间有什么关系?什么是转移(Transfer)、变迁
ASP.NET截取网页注释行之间的内容
这是网友在论坛问到的问题,网友要求:“我想要抓取每一个开始 结尾的中间那一部分的内容已更改如何处理?其他的不要”。原题如下:其实这个问题,就是我们常说的收集网页内容的知识。从网页截取哪些有用的东西。下面Insus.NET先来演示一下:在演示中,Insus.NET在网页添加一个铵钮,执行获取的内容显示,显示的内容在网页第一行。因为是使用Response.Write()方法。Insus.NE
shuffle 洗牌算法
1.Fisher–YatesShuffle(费雪耶兹随机置乱算法) 算法思想就是从原始数组中随机抽取一个新的数字到新数组中。算法英文描述如下:Writedownthenumbersfrom1throughN.Pickarandomnumberkbetweenoneandthenumberofunstrucknumbersremaining(inclusive).Countingfromthelow
搞定需求变化
坊间流传一句话——“杀一个程序员不用枪,改三次需求就可以了”。需求变化是程序员眼中最大的痛,没有之一。问君能有几多愁,恰似调完代码改需求。对程序员来讲,最理想的情况是,需求定下来后,直到软件交付都不发生一次变化。然而,需求的变化却是客观存在,无论你接受与否,稍微复杂点儿的项目,需求变化都是难以避免的事。所以,我们既要了解需求为什么说变就变,又要修炼面对需求的心态,还要知道怎样控制需求变化。>> 老
Java设计模式之观察者模式
简述观察者模式又称为发布订阅模式,是对象的行为模式。观察者模式定义了一种一对多的依赖关系,多个观察者共同订阅着一个被观察者。当被观察者发生变化时,观察者们会做出相应的变化。在日常生活中,也有着观察者模式的案例。如一个产品列表被多个电商所订阅,每当这个产品列表有更新时,就需要向各大电商平台去推送新产品。在Java中实现观察者模式,被观察者需要继承java.util.Observable类,而观察者需
RxJava源码初探
一、前言RxJava是用java实现的ReactiveX(ReactiveExtensions)框架开源库。ReactiveX则是大名鼎鼎的响应式编程。而响应式编程和观察者模式紧紧的相关联。在看RxJava的源码中,分析起来会有点麻烦,所以才有了这篇文章,和对这个有兴趣的同学一起窥探一二。二、观察者模式2.1基本原理观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模
Android retrofit源码解析②
使用首先定义一个接口1234public interface GitHubService { @GET("users/{user}/repos") Call listRepos(@Path("user") String user);}构造Retrofit,实例化接口12345Retrofit retrofit = new Retrofit.Builder() .baseUrl("ht
Spring Bean生命周期initMessageSource(八)
现在到了ApplicationContext的refresh()方法中初始化消息源与事件广播器,这两个方法比较像,并且逻辑较少,放在一起看看。initMessageSource判断beanFactory中是否有名字为messageSource的bean,如果有,从beanFactory中获取并且判断获取的是不是HierarchicalMessageSource类型的,如果是设置其父级消息源如果没有
Jquery取得iframe下内容的方法
代码如下: document.all('Iframe1').contentWindow.document.getElementById("deptName").width; $(window.parent.Iframe1.document.body).find('#deptName').width();跨域调用IFRAME时会遇到拒绝访问.在网上找了未测试解决办法 经查资料发现,默认情况下,浏览器
让你的 Kotlin 代码远离 !!
简评:优雅的运用Kotlin的nullsafety特性,而不要简单的直接用!!。对于Null的检查是Kotlin的特点之一。强制你在编码过程中考虑变量是否可为null,因此可以避免很多在Java中隐藏的NullPointerException。但是,当你用插件直接将Java代码转换为Kotlin时,你会发现有很多!!在里面。但其实!!意味着「有一个潜在未处理的KotlinNullPointerEx
Spark SQL / Catalyst 内部原理 与 RBO
原创文章,转载请务必将下面这段话置于文章开头处。本文转发自技术世界,原文链接 http://www.jasongj.com/spark/rbo/本文所述内容均基于2018年9月10日Spark最新Release2.3.1版本。后续将持续更新SparkSQL架构SparkSQL的整体架构如下图所示从上图可见,无论是直接使用SQL语句还是使用DataFrame,都会经过如下步骤转换成DAG对RDD的操
【Json】fastjson与jackson常用操作记录
本文只是记录fastjson、jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦。1、对象转Json串// fastjson String objStr = JSON.toJSONString(obj); // 默认去掉属性为Null值的// jacksonObj