Tag Archives | java

Spring-cloud&Netflix 源码解析之Eureka:一个注解加载Eureka client

一般我们的都会被告知使用spring cloud app 如果需要服务服务注册发现功能,只需简单的一个 @EnableEurekaClient 的annotation,就可以搞定。服务启动时会自动注册到eureka服务,服务消费者只需要使用该名字加方法名就可以调用到服务。代码基本不用加任何东西,很神奇的样子!于是有点好奇一个本文重点关注在spring cloud中Eureka client是如何被注入,来供服务使用的。

本文主要了解下在spring cloud下用户开发一个自己的服务,用一个annotation怎么就能自动的完成服务的注册和发现。怎样偷偷的集成了一个eureka的client进去的。说实话对于这个annotation虽然看着对使用者是很简单,但是可能对一般使用惯了API的人,封装太多了倒有点不踏实。[......]

阅读全文

Tags: , , , , ,

Comments { 2 }

Sort源码实现比较Go&Java语言风格(3)

前面两部分分别描述了Gojava两种语言对sort的使用方式和源码实现。作为go初学者,最想做的是通过例子和源码来对新的语言有个理解。这部分就结合自己的理解整理下,可以看到,是非常主观。
4 语言语法比较
可以看到,两种语言的思路基本上是一样的,用户必须定义比较规则。在排序过程中都要考察集合长度,使用用户定义的比较规则,然后调整元素位置来达到排序的效果,对应go的interface要求的三个方法。但是还是有挺多不同。
首先从使用方式上看,go的规则(通过方法来体现)定义在集合上,并且定义了三个方法,分别获取集合的状况,元素比较的规则,元素位置操作的方法;而java的规则定义在元素上,用户只用一个元素比较的规则compareTo?就够了。看起来java要求用户定义少,因为其封装的多,这也是其一贯的风格。对用户要似乎更友好一点。比较而言go更直接,简单。留给程序员能干预的更多一点。但还[......]

阅读全文

Tags: , , ,

Comments { 1 }

Sort源码实现比较Go&Java语言风格(2)

上篇博文,工作中用到了go排序的功能,作为go新手,在参照着例子,并读了go的sort.go部分涉及的源码,了解了go中排序的细节和实现算法,这些在上篇博文中有介绍。作为一个java ZHONGDU*2的用户,不由自主的想到了java中对应实现的样子,在这里也非常简要的贴出来,描述下java中排序的用法,和java源码中对应部分的实现,比较好奇java是和go一样,也用的时候快速排序吗?

3 Java 排序源码解析

主要代码Looks like this:
3.1 使用例子

和go中不同,必须要在class的第一行implements Comparable这个接口,然后在实现这个接口中定义的compareTo方法,告诉接口到底元素是怎么比较大小的。于是这也追踪下Collections.sort()方法中是如何使用[......]

阅读全文

Tags: , ,

Comments { 1 }

Sort源码实现比较Go&Java语言风格(1)

1 前言

刚开始拥抱go,非常新鲜!才使用没多久,属于没有经验,有一点感受的那种。具体也说不了特别清楚,就是觉得:简单,直接,灵活,方便。作为一个 java 重度中毒(ZHANGDU*2)用户,过程中还是习惯对照着思考,至少在这个阶段。也好,发现对照着想,似乎更容易融会贯通。 对资深的go程序员来说,应该都是非常基础基本的问题,但也挡不住咱这个小白要发表下感想。
第一篇文章首先结合最近做一个小feature时用到go中元素排序的功能,顺便了解下两种语言中排序功能的使用方式,各自源码中对排序功能的实现。当然最主要的是在这个过程中,作为go初学者对语言的体会和理解。

2 Go排序源码解析

现在一般不太会自己写排序算法的实现了,就去搜go的package?, 如愿找到了package sort?,和猜想的接口差不多,有一个func Sort(data Interface) 。只要把待排序[......]

阅读全文

Tags: , , , ,

Comments { 1 }

戏(细)说Executor框架线程池任务执行全过程(下)

归档下发表于infoq.com 2015年6月的两篇文章。本来是一篇文章,经过Infoq编辑Alice Ding建议,拆分为<上>和<下>两部分。谢谢Alice对文章的细心校对,帮我发下了其中的很多问题。添加下infoq要求的声明:本文为InfoQ中文站特供稿件,首发地址为:http://www.infoq.com/cn/articles/executor-framework-thread-pool-task-execution-part-02 。如需转载,请与InfoQ中文站联系。

内容综述

基于Executor接口中将任务提交和任务执行解耦的设计,ExecutorService和其各种功能强大的实现类提供了非常简便方式来提交任务并获取任务执行结果,封装了任务执行的全部过程。本文尝试通过对j.u.c.下该部分源码的解析以ThreadPoolExecutor为例[......]

阅读全文

Tags: , , , , ,

Comments { 9 }