显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

悠闲の架构师

 
 
 
 
 
 

北京市 海淀区 天蝎座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

我的开源项目

 
 
模块内容加载中...
 
 
 
 
 

可爱的小鼠

 
 
模块内容加载中...
 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 

摄影组图

 
 
数据加载中...
 
 
 
 
 
 

小铺子

 
 
模块内容加载中...
 
 
 
 
 
 
 

[置顶] [C/C++]C++管道数据流(Stream)的实现

2017-2-5 9:49:46 阅读289 评论0 52017/02 Feb5

仿照 Java8 Stream 实现的C++版本,使用时只需要包含一个头文件。

#include "stream.h" using namespace cpp::stream;

同时提供了 -> 和 >> 两种类型的操作符调用:

ST3 arr[20] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }; int count1 = make_stream(arr, __crt_countof(arr)) ->map([](const ST3& st)->ST2 { return st.st2; })->map([](const ST2& st)->ST1 { return st.st1; })->map([](const ST1& st)->ST0 { return st.st0; })->map([](const ST0& st)->int { return st.i; })->filter([](const int& i)->bool { return i > 6; })->filter([](const int& i)->bool { return

作者  | 2017-2-5 9:49:46 | 阅读(289) |评论(0) | 阅读全文>>

[Java/Web] 展示ForkJoinPool偷窃算法运行过程的程序

2017-12-27 14:28:05 阅读12 评论0 272017/12 Dec27

完整的程序源码可在 https://github.com/lvan100/ForkJoinPool-Example 下载。CountTask 的源码如下。

class CountTask extends RecursiveTask<Integer> {

int start;

int end;

CountTask(int start, int end) {

this.start = start;

this.end = end;

}

@Override

protected Integer compute() {

if (end - start < 20) {

int sum = 0;

for (int i = start; i <= end; i++) {

sum += i;

}

return sum;

}

int middle = start + (end - start) / 2;

CountTask c1 = new CountTask(start, middle);

CountTask c2 = new CountTask(middle + 1, end);

c1.fork();

c2.fork();

int r1 = c1.join();

int r2 = c2.join();

return r1 + r2;

}

}

展示上面 CountTask

作者  | 2017-12-27 14:28:05 | 阅读(12) |评论(0) | 阅读全文>>

[Java/Web] PriorityQueue 存储的数据为什么会乱序?

2017-12-26 18:58:06 阅读6 评论0 262017/12 Dec26

PriorityQueue的内部使用数组来存储数据,但是元素之间的顺序却是不确定的,因为它实际上使用的是二叉堆。这一点和直觉相违背,总觉得它内部的数据应该是全部有序的。我今天就栽了一个大跟头!实际上我们永远只需要关心堆顶的数据是不是正确排序的。

作者  | 2017-12-26 18:58:06 | 阅读(6) |评论(0) | 阅读全文>>

[Java/Web]为什么Resources里的ico文件变大了?

2017-12-22 13:12:43 阅读9 评论0 222017/12 Dec22

今天同事遇到了一个奇怪的问题,maven 项目资源里地 ico 文件体积莫名地增大了。我的第一感觉就是 maven-resources-plugin 在搞鬼,然后去官网查了查,果然是这样。在 maven-resources-plugin 的 example filter 中有这样一句话:

Warning: Do not filter files with binary content like images! This will most likely result in corrupt output.

就是说当项目中使用了 filter 时必须小心处理二进制文件,否则有可能输出错误的结果。

没有看源码,但是我猜 plugin 肯定把所有文件都当成了文本文件,这样就很有可能在二进制文件中包含需要 filtered 的字符串序列,然后被替换掉。原文给出了两种解决方案。第一种是将需要 filterd 和不需要 filtered 的资源放在不同的目录下,这个就不解释了。第二种是配置不需要 filtered 的文件的扩展名,如下:

<project>

...

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

作者  | 2017-12-22 13:12:43 | 阅读(9) |评论(0) | 阅读全文>>

[Java/Web]级联Lambda表达式

2017-12-20 18:30:06 阅读7 评论0 202017/12 Dec20

级联Lambda表达式本质是高阶Lambda表达式的简化形式。参考示例如下:

Function<Integer, Predicate<Integer>> isGreaterThan = (Integer pivot) -> {

Predicate<Integer> isGreaterThanPivot = (Integer candidate) -> {

return candidate > pivot;

};

return isGreaterThanPivot;

};

首先去除类型信息,

Function<Integer, Predicate<Integer>> isGreaterThan = (pivot) -> {

Predicate<Integer> isGreaterThanPivot = (candidate) -> {

return candidate > pivot;

};

return isGreaterThanPivot;

};

然后去除括号和多余的临时变量,

Function<Integer, Predicate<Integer>> isGreaterThan = pivot -> {

作者  | 2017-12-20 18:30:06 | 阅读(7) |评论(0) | 阅读全文>>

[C/C++]用户自定义字面量(User-defined literals)

2017-12-19 15:31:01 阅读12 评论0 192017/12 Dec19

N3690 13.5.8 章节详细介绍了该操作符。使用方式可以见下面的例子。

struct KM {

long double _v;

};

KM operator "" _km(long double ld) { // 1

KM km;

km._v = ld;

return km;

}

KM operator "" _km(const char* c, size_t n) { // 2

KM km;

char* end;

km._v = strtold(c, &end);

return km;

}

std::ostream& operator<<(std::ostream& lhs, KM& km){

return lhs << km._v << "KM";

}

int main() {

KM km = "15.623"_km; // 调用 2

std::cout << km << std::endl;

KM km2 = 15.623_km; // 调用 1

std::cout << km2<< std::endl;

return 0;

作者  | 2017-12-19 15:31:01 | 阅读(12) |评论(0) | 阅读全文>>

[Java/Web] Cannot forward to error page for request [/favicon.ico] ...

2017-12-14 11:20:06 阅读14 评论0 142017/12 Dec14

在使用 Spring Cloud Zuul 的过程中出现的错误,完整描述如下:

Cannot forward to error page for request [/favicon.ico] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false

这个问题出现的根本原因是 Spring Mvc 自己默认处理了所有的 favicon.ico 请求,详见如下:

@Configuration

@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true)

public static class FaviconConfiguration {

@Bean

public SimpleUrlHandlerMapping faviconHandlerMapping() {

作者  | 2017-12-14 11:20:06 | 阅读(14) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

注册 登录  
 加关注