自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KingWang@whu的博客

保持一颗好奇心https://github.com/KingWang93

  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Java】classpath的理解及其使用方式

笔者之前对于classpath都没有什么深入的研究,之前的项目打包jar包都是按照网上的教程自己照着葫芦画瓢。但是因为最近碰到一些关于这方面的知识,因此索性觉得要好好补充一下这方面的知识。下面的文章主要是翻译自oralce官网关于设置classpath的说明Setting the class path,并对其中一些地方进行了部分的补充说明,方便读者理解。概要classpath是Java运行时环境搜索

2017-09-12 01:20:11 65525 4

原创 【Vertx】利用vertx实现websocket数据推送

前言 vertx是一个基于JVM、轻量级、高性能的应用平台,非常适用于最新的移动端后台、互联网、企业应用架构。 Vert.x基于全异步Java服务器Netty,并扩展出了很多有用的特性。Vert.x的亮点有: 【同时支持多种编程语言】目前已经支持了Java/JavaScript/Ruby/Python/Groovy/Clojure/Ceylon等。对程序员来说,直接好处是可以使用各种

2017-07-30 17:51:06 13780 4

原创 【Protocol Buffer】Protobuf的序列化和反序列化

前言 目前主流的几种数据交互的格式主要有xml、json、protobuf等等。一般的web项目中,最流行的主要还是json。因为浏览器对于json数据支持非常好,有很多内建的函数支持。xml数据格式在webservice中应用最为广泛,但是相比于json,它的数据更加冗余,因为需要成对的闭合标签。json使用了键值对的方式,不仅压缩了一定的数据空间,同时也具有可读性。protobuf是后起之秀

2017-07-12 21:22:13 18582 2

原创 【Hadoop】基于Hadoop/Hbase/Hive的小型离线服务器日志分析应用

1、项目简介 本项目主要设计一个基于Hadoop的日志分析系统。其中的日志数据主要来自于某系统开发测试期间的服务器访问日志数据(Tomcat),通过对这些日志数据利用正则表达式等技术手段进行处理,提取出匹配到的目标数据信息,将其进行归类化处理,而对日志分析处理方式中,本文探究了直接利用Hadoop的日志分析功能和利用Hadoop+Hbase+Hive结合的技术实现对日志进行分析的功能,作为...

2017-03-14 01:10:20 5002 4

原创 什么是广告超播

目录1,什么是超播?2,超播发生的原理2.1 广告上下线2.2 从不同视角看超播2.2.1 按照计费类型2.2.2 按照站内和站外角度来看2.2.3 从成本来看3,什么场景下会发生超播3.1 从商家作弊的角度上看3.2 从平台的角度上看4,如何防止超播?4.1 提高实时性4.2 流量控制4.2.1 PID4.2.2 Budget pacing4.2.3 概率控制4.3 广告预下线4.3.1 方式一:设定阈值buffer4.3.2 方式二:广告消耗预估5,业界对于超播的常规做法5.1 广告主投放后台的角度5.

2021-10-04 00:05:36 15836

原创 【SparkSQL】partitionColumn, lowerBound, upperBound, numPartitions的理解

如何加快数据的读取过程 利用SparkSQL读取数据库数据的时候,如果数据量很大,那么在读取数据的时候就会花费大量的时间,因此,怎么让数据并行读取加快读取数据的速度呢?在SparkSQL中,读取数据的时候可以分块读取。例如下面这样,指定了partitionColumn,lowerBound,upperBound,numPartitions等读取数据的参数。关于这四个参数的意思,Spark

2018-01-14 09:47:33 8258

原创 【Postgresql】数据库postgresql 10的data目录迁移(不用重新安装)

安装后默认的目录: /var/lib/pgsql/{version}/data1,哪儿启动的数据库?数据库服务一般开机自动启动,那么就可以顺藤摸瓜找到相关的service。 对于postgresql10,它的服务名为postgresql-10.service,该文件的路径为: /usr/lib/systemd/system/postgresql-10.service

2018-01-13 22:40:37 23180 2

原创 【Data Structure/Algorithm】LCSS算法实现

最近在写一个关于路网处理的小论文,在写作中碰到一个问题就是,高德路网数据有很大一部分的道路没有路名。因此笔者想着利用OSM上的路网作为补充,看能不能进行数据的补充。整理思路如下:首先对高德路网和OSM的路网整体进行R树索引的建立对高德路网中的没有道路名称的道路,求解其MBR,然后进行R树查询查找到与其相交的OSM路网的道路。遍历上面求交后的结果,利用LCSS算法,求出匹配的道路。文中的R树建

2017-12-25 14:09:42 8236 1

原创 【OpenResty】lua脚本实现nginx自定义log

1,OpenResty(Nginx)Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特

2017-12-01 19:36:16 9605

原创 【Thrift/Vertx】关于Thrift和Vertx的服务整合

官网上都有关于Thrift的新手demo示例,本文主要讲解其中一项,就是怎么整合Thrift和Vertx。Vertx是一种事件驱动的异步框架,需要JDK8支持,开发过程中很多都需要用到lambda表达式。vertx的简要介绍可以参考笔者之前的一篇文章:【Vertx】利用vertx实现websocket数据推送1,首先定义thrift接口文件定义thrift文件的规则请参看thrift官网,http:

2017-11-26 22:05:05 3418

转载 【Java】ArrayList的源码分析

本文只是摘取网上的几篇博客1,源码分析https://www.cnblogs.com/ITtangtang/p/3948555.html http://blog.csdn.net/jzhf2012/article/details/8540410 http://blog.csdn.net/ns_code/article/details/355680112,源码分析中遇到的几个问题(1)代码中的en

2017-11-13 20:35:11 2302

原创 【Java】addShutdownHook函数的用法和注意事项

最近在看gRPC的一个Demo中,看到一个比较有意思的写法,程序中使用了addShutdownHook()函数。addShutdownHook()函数的用法如下:/** * Registers a new virtual-machine shutdown hook. * * <p> The Java virtual machine <i>shuts down</i> i

2017-11-11 00:24:53 14071 1

转载 【Java】Java基础知识之HashMap源码分析(Java8)

java基础知识回顾---HashMap实现原理

2017-11-06 11:32:40 2269

原创 【Data Structure/Algorithm】排序之归并排序

本文针对《Algorithms》Fourth Edition书中的归并排序做一个总结,当做学习笔记以作记录。1,归并排序的算法原理归并排序算法的步骤为:(1)将数组逐步拆分成两个子数组,直至每个数组的大小为1。(2)因为分割到最后,数组的大小为1,因此,这个时候,就相当于数组已经排序(3)对数组进行两两合并排序,首先是合并数组大小为1的子数组,合并完之后数组大小为2,然后继续合并排序,得到大小为

2017-10-12 16:42:22 2406 1

原创 【Data Structure/Algorithm】排序之冒泡排序

排序算法中最入门的一个排序算法就是冒泡排序,面试中经常会考到的一个基础题目。那么什么是冒泡排序呢?以及冒泡排序算法的基本原理是什么呢? 本文会一 一解答。1,冒泡排序及其原理 原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:第一趟,依次比较相邻的两个数,将小数放在前面,大数放在后面。重复第一趟步骤,每次从数组的第一个元素从头开始,直至全部排序完成。2,示例(本示例摘自ht

2017-09-25 13:34:13 2477

原创 【Oracle】数据库乱码问题的解决

1,查看服务端的字符集 select userenv(‘language’) from dual; 更详细一点可以用下面的sql方式查看 select * from nls_database_parameters;2,windows下查看客户端的字符集 查看注册表信息 win+r,输入regedit,打开注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KE

2017-09-17 19:38:35 3971 2

原创 【Oracle】NLS_LANG详解

关于NLS_LANG字符集设置,网上的说法不一,下面这篇文章我觉得讲的不错。 同时贴出 Oracle官网的关于NLS_LANG的讲解: https://docs.oracle.com/cd/B28359_01/server.111/b28298/ch3globenv.htm转自:http://www.cnblogs.com/rootq/articles/2049324.html一、什么是Orac

2017-09-17 17:58:56 4060

原创 【Java】反射之Class.forName()

Java中比较重要的一个特性就是反射,可能对于初级编程几乎没有什么接触,但是对于后期的高阶编程中是一个不可或缺的知识点。这里面涉及到的知识点就有jvm的class加载机制。这一机制在这篇文章: 深入分析Java ClassLoader原理中,有很好的讲解。1,什么是反射?按照oracle官网的介绍,反射的概念如下:Reflection enables Java code to discover i

2017-09-12 23:00:03 8009

原创 【Maven】Maven invalid LOC header (bad signature)的错误处理

在eclipse中使用maven进行项目的依赖引入的时候,偶尔可能会出现标题所示的错误。该错误导致的原因就是maven插件下载下来的jar有问题,导致jar读取不到。 如果笔者在eclipse中安装了反编译的插件(可以从eclipse的插件市场安装),那么就很容易根据错误定位是哪个包出了问题,因为如果没有出问题的话,正常的jar是可以编译出来的,里面的class文件都是可以获取的。但是非正常的ja

2017-09-12 10:07:49 4028

原创 【Java】关于路径.和..以及/的说明

一张图说明,大家也可以尝试在Windows的dos窗口下尝试使用cd命令改变路径,观察一下这几个的区别。 直接放图,通俗易懂!

2017-09-12 01:23:53 2369

转载 【Oracle】Clob字段读取,写入,更新

原文:http://bijian1013.iteye.com/blog/2282419

2017-09-09 22:56:56 8123

原创 【GeoTools】shp文件坐标转换

前言:GeoTools是一个开源的GIS开发工具,可以用来arcsde的开发,gis相关的文件转换读写,JTS等空间计算方法。GeoTools is an open source (LGPL) Java code library which provides standards compliant methods for the manipulation of geospatial data, fo

2017-09-09 22:17:56 8280 1

原创 【ArcSDE/Oracle】配置Oracle使SQL可以对ST_GEOMETRY类型操作

下面要使用sde中的相关的动态链接库,因此需要事先安装好arcsde和oracle。1,测试用例select sde.ST_AsText(SDE.ST_Geometry(‘POINT (10 10)’, 0)) from dual;2,配置listener.ora、tnsname.ora和extproc.ora如果出现以下错误: ORA-28595: Extproc 代理: DLL 路径无效 O

2017-08-24 17:24:12 3310

原创 【ArcSDE】ArcSDE服务的创建

ArcGIS 10.2全系列软件下载地址本博文主要是针对ArcSDE的SDK Java开发者,并且是服务连接方式开发的(程序中),至于程序中直连和服务连接开发的区别在笔者的另一篇博文中已经介绍了【ArcGIS】利用ArcGIS 的Java API实现SDE数据库的直连和服务连接,笔者尝试了直连方式利用sde 的sdk java版开发,但是失败了,因为arcgis只在9.3的时候公布过arcsde的s

2017-08-24 17:01:26 5749

原创 【反向代理】跨域解决方式之一——反向代理

笔者在前几天遇到一个跨域问题,请求一个地图瓦片服务,但是地图瓦片服务地址由另一个地图服务商提供的,按照传统的后端解决跨域的手段,主要有两种:(1)后端设置CORS(这个需要第三方CORS的jar包) (2)对后端设置跨域访问(即在get或者post等方法中设置 response.setHeader(“Access-Control-Allow-Origin”, “*”);)具体可以参考:解决跨域的方

2017-08-05 00:29:44 5198 2

原创 【GDAL/OGR】利用GDAL/OGR读取shp文件并转换为json文件(Java版)

前言: 对于GIS开发者来说,GDAL/OGR是最熟悉不过的开源GIS库了,GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。GDA

2017-08-04 23:13:24 3583 4

原创 【ArcGIS】利用ArcGIS 的Java API实现SDE数据库的直连和服务连接

ArcGIS提供的API说明: ArcGIS java API地址上面可以看出来,ArcGIS提供了两种方式的数据库连接,一种是直连,一种是服务连接。连接数据库代码:package test;import java.net.MalformedURLException;import java.sql.Blob;import java.sql.Connection;import java.sq

2017-07-31 17:12:47 2879 2

原创 【PL/SQL】PL/SQL使用的几点技巧

1,查看执行计划,explain window2,查看oracle函数用法ctrl+左键3,快捷替换快捷输入SQL语句,例如输入s,按下空格,自动替换成SELECT;再例如,输入sf,按下空格,自动替换成SELECT * FROM,非常方便,节省了大量的时间去编写重复的SQL语句。 设置方法:菜单Tools –> Preferences –> Editor –> AutoReplace. –>

2017-07-31 16:17:18 538

原创 【Github】Eclipse导入GitHub上的项目

1,找到你所要导入项目的GitHub地址 2,eclispe 导入 切换eclispe的git视图 如果你的eclispe里没有打开这个窗口,就需要在window–show view–Git Repositories里面打开它。然后再在该窗口下点击clone a git repositories之后就出现这个窗口将刚才复制的URL粘贴到URI中,next然后出现如下窗口,需要选择其中一个tag

2017-07-31 16:14:30 577

原创 【Oralce 12c】关于Oracle 12c几点需要注意的

1,jar包 对于java开发者而言,需要更换jar包,Oracle 12c的jar包更新,需要的是:odbc8.jar 2,时间格式 oracle 12c在利用jar包进行开发的时候,在获取时间字段字符串的时候,即resultset.getString(时间字段),获得的格式是yyyy/mm/dd hh:mm:ss.0,秒后面会有一个 .0。因此,我们需要进行处理,replace(“.0”,

2017-07-31 15:33:20 1647

原创 【MongoDb】MongoDb的hello world实例(Java版)

本次实验,前提是已经安装好mongodb环境。查看是否安装mongodb:其中需要用到相应的jar包 mongo-2.10.1.jarpackage dao;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.function.Consumer;import org

2017-07-31 14:43:04 352

原创 【MongoDb】一次关于Oracle和MongoDb的插入和查询性能测试

本次实验是在笔者上学期期末一次课程实习中的一部分,现在整理出来以供参考。本次数据用的是不同数量级别上的数据分别在Oracle和MongoDb中进行实验的。 其中两者的表结构一样,都是如下字段: 得出如下结论: 没有索引的情况下Oracle:1万条 耗时:2341ms10万条 耗时:22544ms100万条 耗时:257766ms1000万条: 耗时:548

2017-07-31 14:36:59 5566 4

原创 【ArcGIS/Java】利用ArcGIS的java API连接SDE库、sql操作

本文主要讲解一下怎么使用ArcGIS的Java API来连接SDE数据库,以及怎么实现空间数据的查询。 前提: ArcGIS的空间数据库SDE连接到Oracle的空间数据库中。 java API使用 arcgis9.2版:http://edndoc.esri.com/arcsde/9.2/api/japi/docs/overview-summary.html 10.0版:http://he

2017-07-31 14:11:34 3969

原创 【Oracle】sql的使用总结

1,分组排序取每组的第一个 示例:select * from (select row_number() over(partition by ROADID order by YDSJ desc) LEV,YDLD.* from YDLD where YDSJ between to_date('2017/07/01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_d

2017-07-31 13:49:13 442

原创 【Oracle】记一次数据库连接没有关闭导致数据库宕机的排查过程

笔者在之前的项目中,发现服务部署上去之后,过了很大概几天,数据库宕机了,当时以为可能只是一次偶然异常,并没有在意,于是重启数据库就行了。但是之后,发现过了一段时间数据库又宕机了。于是重视起来,决定排查以下异常信息,因为系统已经上线使用,因此只能在夜间排查问题,苦逼地夜间调代码,让我想起删除生产库跑路的段子,hhhhh。言归正传,查看服务端会输出以下的异常信息: ora-12518: 监听程序无法

2017-07-31 11:33:48 4000

转载 【转】【Oracle】oracle登录验证的三种方式(详解)

本来想自己写一篇关于oracle登录验证的博文的,但是发现有一篇比较详细的文章oracle登录验证三种方式详解讲解了这部分,因此,决定不重新造轮子了。以下是迁移过来的文章:1.使用OS操作系统集成身份验证 在数据库服务器本机只要以sqlplus as sysdba连接数据库,不论输入什么用户(哪怕这个用户如aaa在数据库中根本不存在)都可以连接上,并且连接用户是sys 好处就是,如果

2017-07-31 10:50:47 1431

原创 【JTS】JTS空间拓扑关系的测试

在JTS中有九种拓扑关系函数,touches、covers、within、crosses、intersects、disjoint、equals、overlaps、contains、coveredBy。 对于线,环,多边形这三种各有不同的特点,线不闭合,环是闭合的,多边形是一种面状。三者分别对应JTS中的LineString、LinearRing、Polygon。JTS的jar包和开发文档下载

2017-07-30 22:47:16 3122

原创 【JTS】利用JTS生成R树索引

前言因为,笔者最近在做一个大数据量地图在线展示的项目,因此需要利用一些手段来提升效率,例如地图缩放的时候,需要展示浏览器窗口下的实时点位,轨迹等信息。在大比例尺下(也就是放大级别较大的时候),因此只需要展示目前这个窗口大小内的数据。那么怎么知道目前窗口大小内的有哪些点位信息呢,这个时候,R树的索引就出现了,可以很好地解决这个问题。利用一个矩形框(浏览器窗口大小)来进行R树索引就可以找出矩形框内的点位

2017-07-30 22:30:51 5088 5

原创 【Maven】Maven系列(二)——利用assembly插件打包

在maven中有几种方法打包项目,在之前的一篇博客中【Java】打包Jar包并用脚本执行,已经介绍了怎么在没有maven插件的情况下,怎么打包项目,并执行的。 而本篇则是在上一篇文章【Maven】Maven系列(一)——环境安装配置和新建maven项目之后,总结一下怎么使用maven插件进行打包项目。 maven中有多种插件提供了打包功能,分别是maven-jar-plugin(用来打包成jar

2017-07-30 21:31:03 6922

原创 【Maven】Maven系列(一)——环境安装配置和新建maven项目

1 Maven是什么?Apache Maven 是一种用作软件项目管理和理解工具。它基于项目对象模型(POM)的概念, 可以管理一个项目的构建、报告以及从项目核心信息中生成文档。Maven是一种项目管理和理解工具。Maven向开发者提供了一个完整的构建生命周期框架。开发团队几乎不用花时间就可以使用自动化构建项目的基础框架,因为 Maven 使用了一套标准的目录结构和默认的构建生命周期。在存在多个开发

2017-07-13 11:24:11 1924

Google map API开发

google地图开发。谷歌地图 Google Maps API是Google自己推出编程API,可以让全世界对Google Maps有兴趣的程序设计师自行开发基于Google Maps的服务,建立自己的地图网站。

2013-10-01

MATLAB与VisualC_接口连接方法浅析

本文档在于帮助大家了解Matlab与VisualC的接口,实现两个不同编程环境间的链接,可以充分利用matlab矩阵运算的方便。适合这方面的开发员入手!

2013-10-01

空空如也

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

TA关注的人

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