小编Som*_*jit的帖子

为什么在私有类中有公共方法?

我正在阅读代码的一部分,就像这样

// compare points according to their polar radius
public static final Comparator<Point2D> R_ORDER = new ROrder();
.
.
.
private static class ROrder implements Comparator<Point2D> {
    public int compare(Point2D p, Point2D q) {
        double delta = (p.x*p.x + p.y*p.y) - (q.x*q.x + q.y*q.y);
        if (delta < 0) return -1;
        if (delta > 0) return +1;
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我们在私有静态类中有这样的公共方法.如果我做ROrder会有什么害处

  1. 非静态
  2. 上市

java

16
推荐指数
3
解决办法
1万
查看次数

8
推荐指数
1
解决办法
3703
查看次数

ParallelStream 上的 CompletableFuture 被批处理并且运行速度比顺序流慢?

方法一

通常,非常快,并且效果很好。

public static int loops = 500;
private static ExecutorService customPool = Executors.newFixedThreadPool(loops);
.
.
Instant start = Instant.now();
LongSummaryStatistics stats = LongStream.range(0, loops).boxed()
        .map(number -> CompletableFuture.supplyAsync(() -> DummyProcess.slowNetworkCall(number), customPool))
        .collect(Collectors.toList()).stream() // collect first, else will be sequential
        .map(CompletableFuture::join)
        .mapToLong(Long::longValue)
        .summaryStatistics();

log.info("cf completed in :: {}, summaryStats :: {} ", Duration.between(start, Instant.now()).toMillis(), stats);
// ... cf completed in :: 1054, summaryStats :: LongSummaryStatistics{count=500, sum=504008, min=1000, average=1008.016000, max=1017} 
Run Code Online (Sandbox Code Playgroud)

我明白如果我不先收集流,那么由于懒惰的性质,流会一个一个地弹出CompletableFutures,并同步运行。所以,作为一个实验:

方法二

删除中间收集步骤,但也要使流平行!

Instant start = Instant.now();
LongSummaryStatistics stats …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing java-stream completable-future

8
推荐指数
1
解决办法
110
查看次数

Angular 元素与 Angular 库?

我的团队处理多个角度项目。为了代码重用,我们将许多表示组件提取到库中,然后在我们的各种项目中使用它们。

那么,鉴于我们所有的项目都是基于 angular 的,而且我们已经使用了库,我们还能从 angular 元素中获得什么?

我开始研究元素的原因是:

我们的大部分旧项目都使用 Bootstrap 3。我们希望将 Bootstrap 4 与我们制作的新东西一起使用。所以我想知道一个元素是否可以用 Bootstrap 4 设计,并在用 B-3 设计的地方使用它而不会破坏?

那可能吗 ?

web-component angular angular-library angular-elements

7
推荐指数
1
解决办法
3092
查看次数

当我们只有一个经纪人时,与拥有多个经纪人时相比,多个 KAFKA_ADVERTISED_LISTENERS 意味着什么?

我正在学习 Kafka 并尝试将它与 docker 一起使用。我对 docker-compose 文件感到困惑,所以我想在这里问我的问题。

在大多数示例中,我看到这样的配置:

broker:
   image: confluentinc/cp-enterprise-kafka:5.3.1
   ...
   ports:
       - "29192:29092" 
       - "9192:9092"
   environment:
        ...
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
Run Code Online (Sandbox Code Playgroud)

我想了解一些与此相关的事情:

  1. 使用 5 位数(例如:29092)端口4 位数(例如:9092)端口是否有特定的约定?
  2. 配置的代理数量与中提到的侦听器数量之间是否存在特定关系KAFKA_ADVERTISED_LISTENERS在某些地方,例如 confluence 自己的示例,我只看到一个代理,但有多个KAFKA_ADVERTISED_LISTENERS。这意味着什么?
  3. 另外,在上面提到的同一个融合示例中,有一个侦听器:PLAINTEXT://broker:29092in KAFKA_ADVERTISED_LISTENERS,但我们没有在端口 29092 处配置任何代理或 Zookeeper,那么它在做什么呢?

apache-kafka docker

7
推荐指数
1
解决办法
7279
查看次数

dict(**kwargs)会不会给出Keys类型字符串的字典?

:这是不是重复的的链接的答案,即着重于与性能问题,会发生什么幕后当字典()函数调用.我的问题是关于关键字参数总是导致类型的键string.绝对不是重复.


方法-1:

suit_values = {'spades':3, 'hearts':2, 'diamonds':1, 'clubs':0}
Run Code Online (Sandbox Code Playgroud)

方法-2:

suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)
Run Code Online (Sandbox Code Playgroud)

方法-1对我有意义.这就像告诉python给我一个字典,其中键是字符串,值是数字.但是在方法2中,python如何知道键是字符串而不是别的东西?

这是一种趋势吗?如果是这样,那些显示出这种行为的其他一些例子(除了字典)?

编辑-1:

我对答案的理解是:

  1. 方法-2是dict(**kwargs)创建字典的方式.
  2. spades=3,spades是一个有效的Python标识符,所以它被作为类型的密钥string.

那么,dict(**kwargs) 总是会产生一个字典,其中键是类型的string

编辑-2:^^是.

python dictionary keyword-argument

6
推荐指数
1
解决办法
1107
查看次数

如何在 Windows WSL Ubuntu 上安装 Homebrew,并修复“zsh: brew command not found”错误

安装是一系列的 5 个简单步骤:

首先,从主页中的命令安装自制软件本身:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Run Code Online (Sandbox Code Playgroud)

之后,按照本页中的说明,并更改~/.bash_profile~/.profile因为我使用 Ubuntu 作为我的 wsl 发行版,我必须给出以下命令:

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
Run Code Online (Sandbox Code Playgroud)

但是现在,当我尝试运行 brew 时,command not found出现错误。

windows homebrew windows-subsystem-for-linux ubuntu-20.04

6
推荐指数
1
解决办法
2162
查看次数

有没有办法将 CSR 和 SSR 结合到同一个 Angular 应用程序中?

我的团队正在寻求构建类似Medium克隆的东西。用户创建的帖子预计不会有太大变化,因此SSR/SSG似乎是一个不错的选择,特别是如果有一些增量构建功能可用。然而,帖子上的“赞成票”之类的事情可能会经常发生变化,因此我们不确定如何适应这种情况。

此外,应用程序的一部分超出了登录范围,例如仪表板或用于创建新帖子的编辑器等,不需要 SEO,因此我们正在考虑是否可以通过 CSR 来完成,而其他部分仍然是SSG或SSR。

这样的组合可以用Angular Universal来完成吗?到目前为止,我们一直在制作 CSR Angular SPA,所以如果问题有点愚蠢,我们深表歉意:(

server-side-rendering angular

5
推荐指数
1
解决办法
4990
查看次数

ForkJoinPool 大小动态增加?

相关:ParallelStream 上的 CompletableFuture 被批处理并且运行速度比顺序流慢?

我正在研究通过 parallelStream 和 CompletableFutures 并行化网络调用的不同方法。因此,我遇到过这种情况,Java 的 parallelStream 使用的 ForkJoinPool.commonPool() 的大小动态增长,从 ~ #Cores 到最大值 64。

爪哇细节: $ java -version

openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)
Run Code Online (Sandbox Code Playgroud)

显示这种行为的代码如下(完整的可执行代码在这里

openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)
Run Code Online (Sandbox Code Playgroud)

示例输出:

16:07:17.443 [pool-2-thread-7] INFO  generalworks.parallelism.DummyProcess -  44 going to sleep. poolsize: 11
16:07:17.443 [pool-2-thread-9] INFO  generalworks.parallelism.DummyProcess …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing multithreading forkjoinpool java-stream

3
推荐指数
1
解决办法
112
查看次数

在这种代码中“Select 0 from”是做什么的?

有人能帮我理解什么是“从中选择 0”

delete from table1
    where cond1 and cond2 and cond3
        and not exists
        ( select 0  from table2 where cond1 and cond2 )
Run Code Online (Sandbox Code Playgroud)

我尝试查看一些正在讨论此事的 SO 线程,但在简短阅读、谈论优化等方面有点太复杂了。这里发生的事情有什么简单的解释吗?

sql

2
推荐指数
2
解决办法
2万
查看次数