自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃货小跟班的博客

转载以及个人的一些拙劣的总结

  • 博客(80)
  • 资源 (4)
  • 收藏
  • 关注

原创 大型网站架构的演化

本篇博客摘抄自《大型网站系统与Java中间件实践》、《大型网站技术架构核心原理与案例分析》。1 什么是大型网站衡量一个网站是否为大型网站,访问量和数据量二者缺一不可。除了海量数据和高并发的访问量,本身业务和系统的复杂度也是考察的方面。大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变的很棘手。大型网站架构主要就是

2017-05-04 19:49:32 977

原创 【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软负载中心设计与实现

【如何实现一个简单的RPC框架】系列文章:【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架 【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软

2017-04-25 10:53:44 1815

原创 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架

【如何实现一个简单的RPC框架】系列文章:【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架 第一个优化以及第二个优化修改后的工程代码可下载资源 如何实现

2017-04-11 13:52:53 2207

原创 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式

【如何实现一个简单的RPC框架】系列文章:【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架这篇博客,在(一)(二)的基础上,对第一版本实现的服务框架进行改

2017-03-29 09:43:08 2873

原创 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用

【如何实现一个简单的RPC框架】系列文章:【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架 【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软

2017-03-28 16:08:19 6090

原创 【Maven】Maven的SNAPSHORT版本与依赖更新

1、问题描述今天在用Intellij Idea写代码的时候,遇到一个问题,大概形容一下: 分别有两个Java工程,TestA、TestB均使用maven构建,TestB依赖TestA,即在TestB的pom文件中,写出了对TestA的依赖,如下:<!--TestA--><dependency> <groupId>whu.lc</groupId> <artifactId>lc</artif

2017-03-28 09:27:03 2227

原创 【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计

【如何实现一个简单的RPC框架】系列文章:【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架 【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软

2017-03-26 11:34:06 10997

原创 【Java IO模式】Java BIO NIO AIO总结

()[TOC]一、同步与异步、阻塞与非阻塞1、同步与异步同步与异步的区别在于,数据从内核空间拷贝到用户空间是否由用户线程完成。 – 对于同步来说,分阻塞和非阻塞两种。阻塞的情况,一个线程维护一个链接,该线程完成数据的读写与处理的全部过程,并且数据的读写是阻塞的。 对于非阻塞来说,虽然读写的过程不会阻塞当前线程,立即返回,但是用户线程(Selector选择器)仍然要不断主动去判断数据是否“就绪”(感

2017-03-25 13:54:04 3618

原创 【Spring:FactoryBean接口】实现FactoryBean接口,Spring在初始化bean时有何不同

问题描述:最近想要再次熟悉一下阿里中间件HSF的用法,在消费HSF时需要在Spring的配置文件中进行如下配置:<bean id="myClassB" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean"> <property name="interfaceName"> <value>com.lican.Mycla

2017-03-23 09:17:15 1549

原创 【Java JVM】Java 虚拟机类加载机制简单总结

下面内容大部分为阅读《深入Java虚拟机》一书第七章后的摘要总结1、类加载过程Java程序在编译后,生成.class格式的字节码文件,而class文件最终都需要加载到虚拟机中之后才能运行和使用。在Java中,虚拟机的类加载机制主要包括三个步骤:加载,连接(验证、准备、解析),初始化;类的全部加载过程完成之后,class文件中描述的类的信息会在虚拟机运行时的方法区存储,存储的结构由不同虚拟机决定;同时

2017-03-20 18:03:11 468

原创 【Java String】Java 中的String类相关知识再认识

1、创建字符串的方式(1)直接赋值String str = “abc”; 此时,若字符串常量池中从没有出现过“abc”,则在字符串常量池中存入一个字符串“abc”,将该字符串的引用赋值给str变量;(2)new一个String类型对象String str =new String(“abc”); 此时,在Java中,凡是使用new的方式创建对象,则一定会在堆中创建一个对象,存储一个字符串“abc”

2017-03-09 14:55:43 404

原创 【Java 单例模式】Java 单例模式在多线程环境中可能存在的问题

在多线程环境下,使用延迟加载的方式实现单例模式,会出现错误。 例如,使用如下方式实现单例类:package study20170307;/** * Created by apple on 17/3/7. */public class SingleJavaTest { private static SingleJavaTest singleJavaTest = null; publ

2017-03-07 18:08:29 1551

原创 【Java 多线程】Java 线程间通信

本文简单总结线程间通信的方式:方法一:等待/通知机制wait + notify + notifyAll的方式方法二:通过管道进行线程间通信使用Java给我们提供的管道流(pipeStream),在不同线程间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读数据, 在Java 的JDK中提供了4个类来使线程间可以进行通信: 1)PipedInputStream 和 PipedOut

2017-03-07 18:06:46 435

原创 【Java 多线程】Java 如何停止线程

总结如下几种方式使线程停止执行: (1)共享bool类型变量方式; (2)调用线程interrupt方式,同时通过isInterrupted方式判断线程是否被停止,若停止则终止循环操作(线程类中循环外没有其他操作); (3)调用线程interrupt方式 + 抛出异常方式(循环外有其他操作情况); (4)调用线程interrupt方式 + return方式(循环外有其他操作情况); (5)

2017-03-04 20:48:04 1385

转载 【Arcgis Engine开发】AE开发把影像或者矢量加载到图层

AE开发把影像或者加载到图层1.创建一个类工厂2.使用类工厂创建一个要使用的工作区3.使用工作区打开并得到图层的dataset4.把dataset装入到新建的图层实例5.把图层加载到MapControl控件引用 ArcGIS Engine中的8种数据访问 2009-09-26 13:37:40| 分类: GIS |字号 订阅数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达

2017-02-16 16:48:15 3557 1

原创 【ArcGIS Add-in编程】导入jpg等栅格数据、导入shapefile等矢量数据

可参考博客文章《AE中各种数据类型打开代码》 一、导入shapefile等矢量数据IMxDocument pMxd = null ;IMap pMap = null ;pMxd = ArcMap.Document as IMxDocument ;pMap = pMxd.FocusMap;string pFolder = System.IO. Path.GetDirectoryName(pP

2017-02-16 16:45:09 3641

原创 【ArcGIS Add-in编程】如何创建ArcMap的下拉菜单插件

step1. VS2010中创建一个空的解决方案step2.创建一个项目 直接点击finish。step3 为该项目创建项目,选择Menu,作为根菜单,而后修改xml中的items项,添加需要放在下拉菜单中的项目,例如一个按钮; step4 现在可以创建项目,作为菜单中的项目。为该项目添加新的项目,选择button 此时 xml文件中,多了该button的项目,将该项目添加到items

2017-02-15 17:04:05 3631 2

原创 【Java OGR开发】如何创建空的矢量shapfile文件

目的:使用GDAL创建空的矢量图层文件,图层类型可知,空间参考不可知,无要素; 起初,使用以下代码创建图层,但当加入到ArcMap中时,报错: could not open the specified fileogr.RegisterAll();// 为了支持中文路径,请添加下面这句代码gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");

2017-02-15 16:57:11 1376

原创 【Java 路径】运行可执行jar包获取相关路径

一、获取可执行jar包所在目录(1)方法一:使用System.getProperty("java.class.path")获取classpath的路径,若没有其他依赖,在cmd下运行该可执行jar包,则该值即为该jar包的绝对路径。代码如下:/** * 方法一:获取当前可执行jar包所在目录 */String filePath = System.getProperty("java.class.

2017-01-07 11:55:40 18975 3

原创 【uml类图】《大话设计模式》摘抄

几种关系:继承关系、依赖关系、合成(组合)关系、聚合关系、关联关系、实现接口; 实现接口:实现接口用空心三角形+虚线组成 继承关系:用空心三角形+实现表示 关联关系:当一个类需要“知道”另一个类时,用关联关系表示。用实线箭头表示。关联关系例如:当一个类的实力对象是另一个类的属性变量。 聚合关系:空心棱形+实线箭头表示;聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象

2017-01-06 17:10:42 677

原创 【跨域Jsonp】是否可以用jsonp完成跨域? nodejs发布的服务可以

关于jsonp跨域的原理参考其他日志。 1、jsonp跨域只能为get,不能为post。靠url传递数据 2、soap协议的 好像不能使用jsonp,他返回的始终是xml,不能以js的方式返回,会出现错误:不能解析xml为js。 3、用nodejs写一个http服务,用jsopn是否可以跨域:可以!!服务端的代码为:var http = require('http'); var urlli

2017-01-06 17:00:16 805

原创 【跨域】Ajax调用 跨域问题

什么是跨域?同源策略:域名、协议、端口都要相同。 首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表: 因此当我在本机发布一个webservice服务,本机用javascript调用chrome下还是有跨域问题,因为端口不同。如何解决这个问题:前端:ajax,的jsonp方法,但这

2017-01-06 16:55:24 309

原创 【webservice】Java 发布webservice 步骤

Java+tomcat+axis第一步: 1、下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址:http://axis.apache.org/axis2/java/core/ 2、axis2-1.5.4-war.zip解压,将压缩包内的axis2.war部署到%TOMCAT-HOME%/webapps下,启动tomcat,访问http://local

2017-01-06 16:43:27 487

原创 【JavaWeb】超基础知识点

动态资源:需要转换成静态资源后再响应给客户端,例如:jsp、servlet,其他语言的动态资源有:asp、php 静态资源:无需转发即可直接响应给客户端,例如:html、css、javascript Tomcat: 1. 开源免费的web服务器 2. jsp/servlet容器,支持Servlet规范 3. Tomcat默认端口为8080,可以在server.xml文件中修改端口

2017-01-06 16:40:55 337

原创 【编码】字符集与编码意义与关系、java编程编码问题相关学习笔记

本文对字符集与编码的定义、java编程中遇到的编码问题排查方案等进行相关的小总结;一、字符集与编码方式(1)字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各个国家文字、标点符号、图形符号、数字等; (2)字符编码:将符号转换为计算机可以接受的数字系统的数,成为数字代码; (3)乱码:在解码的过程中使用了错误的解码规则,即编码与解码的方式不一致,导致

2017-01-06 16:03:18 756

原创 【Http认证方式】——Basic认证

今天在访问请求:http://192.168.2.113:8080/geoserver/rest/workspaces时,浏览器弹出窗口需要输入用户名和密码 ,并且,如果不输入或者输入错误,浏览器返回 可以在火狐浏览器的网络监控这里看到请求的详细信息, 服务器会返回一个401 Unauthozied给客户端,并且在Response 的 header “WWW-Authenticate” 中添加

2017-01-06 10:59:24 20944 3

原创 【Http认证】Http的四种认证方式

一、Http Basic Authentication 基本认证 将认证的信息填写到请求头,参考博客文章:二、Http Digest Authentication Digest认证以上这两种认证方式都是一种无状态的认证方式,就是不需要服务器端保存必要的session,所以也没有session失效期。客户端每次都需要将密码和用户名发送给服务器来完成认证,而且用户名和密码是保存在浏览器进程的内存中的,

2017-01-06 10:51:51 20358 1

原创 【socket编程】使用socket访问https客户端

使用socket访问https客户端

2017-01-06 10:42:21 1474

原创 【数据结构与算法】斐波那契额数列用for循环实现

采用递归的方法做了很多重复的工作, 而采用for循环的方法,从底层向上运算, f(1)+f(0)->f(2) f(2)+f(1)->f(3) f(3)+f(2)->f(4) 。。。 f(n-1)+f(n-2)->f(n)因此,在循环中只要定义三个变量,便能将最后的f(n)求出来

2017-01-06 10:28:42 3067

原创 【数据结构与算法】最大子序列和问题的求解

题目:给一个int类型的数组,就最大子序列的和 解法:一共有四种算法,算法的时间复杂度分别为: 【算法一】 结果是求一个子序列,即其实序列号和终止序列号,那我们就对所有可能的起止序列号的组合进行遍历,求和,找到最大的和以及最大和所对应的起止序列号。这个算 法包括三层循环,最内层循环求和。算法的代码如下: 【算法二】 对算法一进行改进,核心仍然是穷举

2017-01-06 10:20:24 1971

原创 【Maven学习】Maven打包生成包含所有依赖的jar包

maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。同时,maven提供以下方式生成包含所有依赖的jar文件,依赖以class的方式存在; 将此plugin添加到pom文件中 <plugin> <artifactId>maven-assembly-plugin</artifactId>

2017-01-06 10:13:26 69565 7

原创 【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

使用maven构建工具可以将工程打包生成普通的jar包、可运行的jar包,也可以将所有依赖一起打包生成jar;一、普通的jar包普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖;同时还包括pom文件,说明该包的依赖信息; 在工程pom文件下这样写,可生成普通的jar包:<packaging>jar<packaging>或者,不写,因为packaging默认打包类型为

2017-01-06 10:04:55 85733 5

原创 【数据结构与算法】栈ADT结构应用的例子

1、【平衡符号】:做一个空栈。读入字符直到文件结尾。如果字符是一个开放符号,则将其推入栈中。如果字符是一个封闭符号,则当栈空时报错。否则,将栈元素弹出,如果弹出的符号不是对应的开放符号,则报错。在文件结尾,如果栈非空则报错。2、【后缀表达式】 例如一个计算表示:4*1.6 + 5+6*1.6 写成后缀(逆波兰)记法为: 4 1.6 * 5 + 6 1.6 * + 计算这个问题最容易的方法是使用

2017-01-05 21:01:54 2146

原创 【Java网络编程】HttpClient、URLConnection的再次总结

HttpClient、URLConnection的再次总结

2017-01-05 20:33:33 413

原创 【数据结构与算法】【leetcode】sum2 sum3 sum4 Combination Sum

【题目】:输入:int[]nums int target 输出:符合要求的所有情况 给定一个int类型的数组,sum2、sum3、sum4分别输出2、3、4个元素的和为target的所有结果,不能重复,并且结果从小到大排序。【解法】: 三个题目均可以使用双指针的做法。首先对原始数组进行排序,排序的意义为:(1)保证最后结果的有序性;(2)从小到大的查找是否满足target,若小于他,则star

2017-01-05 20:07:26 1867

原创 【数据结构与算法】关于排列组合

1、给出数字n,列出所有的排列组合的可能 【题目】: 【解法】: 用递归的方式2、给出一个数组,列出所有可能的排列组合序列(不允许有重复) 【题目】: 【解法】: 3、给出数字n,k,返回所有排列组合序列中的第k个序列 【题目】: 【解法】: 【我自己的:出现了超时的错误】用了最简单的递归,超时了。实际上就是题目1的做法,只不过算到第k个就停止。 【参考另一种

2017-01-05 19:59:57 2026

原创 【数据结构与算法】Jump Game

【题目】: 【解法】:第一开始,想到的是采用递归的方式,后来出现了栈泄露的错误。后来看了Discuss发现可以使用循环的方式。 [解法1] 从头到尾循环 每次的for循环只循环当前点能到的所有的点,且每次的循环条件都会改变。相当于循环的范围不断扩大,直到末尾。具体代码如下: [解法2]从尾到头循环【题目】: 【解法】: 在上题 [从头到尾的循环] 方法的基础上,找到某一点能到

2017-01-05 19:41:18 297

原创 【String构建方式】 构建的两种不同的方式

几个比较重要的原理: 1、当使用任何方式来创建一个字符串对象s时,Java运行时会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串s,否则,不在池中添加。 2、在Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。 3、使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串

2017-01-05 19:27:35 366

原创 【Java异常】相关学习笔记

Java的异常分为两种,一种是Checked异常,一种是Runtime异常。 当代码出现异常时,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,Java运行时环境受到该异常对象时,会寻找能处理该异常对象的catch块(捕获),如果找到合适的catch块并把该异常对象交给该catch块处理;如果找不到捕获异常的catch块,则运行时环境终止,Java程序也将退出。 当程序需要自行抛

2017-01-05 19:25:07 301

原创 【Java JVM】关于【类Class】

每个类被加载之后,系统就会为该类生成一个对应的Class对象, 一、***************************获得Class对象**************************** 一般情况下采用第二种方式,因为:(1)、代码更安全,程序在编译阶段就可以检查需要访问的Class对象是否存在。(2)、程序性能更高,因为这种方式无需调用方法,所以性能更好 二、*********

2017-01-05 19:17:21 503

实现一个简单的软负载中心

具体参考博客《【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软负载中心设计与实现》http://blog.csdn.net/u013177446/article/details/70677800

2017-04-27

如何实现一个简单的RPC框架

可参考博客http://blog.csdn.net/u013177446/article/details/66473066 使用netty/反射/序列化反序列化等技术是一个一个简单的RPC框架

2017-04-11

实现一个简单的RPC框架

使用socket/反射/序列化等技术实现了一个基本的远程调用框架,可参考博客http://blog.csdn.net/u013177446/article/details/66473066

2017-03-28

Qt显示遥感影像

用Qt Gui 实现了遥感影像的显示 并且提供用户波段组合的功能

2014-03-17

空空如也

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

TA关注的人

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