小编Rae*_*ald的帖子

EJB的用途是什么

我目前正在学习Jave-EE,拥有丰富的C++经验并且学过Java SE.我不明白Enterprise Java Beans的目的; 有人可以为我澄清这一点.我对遗留用途不感兴趣:这是在EJB-3.1和Java-EE 6的上下文中.

似乎有些人使用它们来包含业务逻辑,用于实现传统3层架构的业务层.这将域逻辑与域对象分开,导致贫乏的域模型.但这违背了我所有的OOD本能; 我同意Martin Fowler认为这是一种反模式.我是否应该放松对贫血领域模型的反对意见?或者EJB有其他用途吗?

java ejb java-ee

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

如何使用std :: nested_exception和朋友?

我注意到<exception>在C++ 11 中有一些更有趣的声明.任何人都可以阐明它们的含义以及如何使用它们吗?

我想知道的是:

  1. ::std::nested_exception
  2. ::std::throw_with_nested
  3. ::std::rethrow_if_nested

此外,虽然它们看起来不言自明,但了解它们如何工作可能会很好:

  1. ::std::exception_ptr
  2. ::std::make_exception_ptr
  3. ::std::current_exception
  4. ::std::rethrow_exception

c++ exception-handling

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

为什么使用double的for循环无法终止

我正在查看旧的考试问题(目前是大学的第一年).我想知道是否有人能够更彻底地解释为什么以下for循环在它应该结束时不会结束.为什么会这样?我知道它因为四舍五入错误而跳过100.0,但为什么呢?

for(double i = 0.0; i != 100; i = i +0.1){
    System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

java for-loop floating-point-precision

27
推荐指数
4
解决办法
1499
查看次数

Maven分开单元测试和集成测试

UT =单元测试IT =集成测试.我的所有Integration测试类都使用@Category(IntegrationTest.class)注释

我的目标是:

mvn clean install =>运行UT而不是IT

mvn clean install -DskipTests = true =>不执行任何测试

mvn clean deploy =>运行UT而不是IT

mvn clean test =>运行UT而不是IT

mvn clean verify =>运行UT和IT

mvn clean integration-test =>运行IT并且不执行UT

mvn clean install deploy =>运行UT而不是IT

pom属性:

<junit.version>4.12</junit.version>
<surefire-plugin.version>2.18.1</surefire-plugin.version>
<failsafe-plugin.version>2.18.1</failsafe-plugin.version>
Run Code Online (Sandbox Code Playgroud)
  1. 编译:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <compilerArgument>-Xlint:all</compilerArgument>
            <showWarnings>true</showWarnings>
            <showDeprecation>true</showDeprecation>
        </configuration>
    </plugin>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 单元测试:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
            <excludedGroups>com.xpto.IntegrationTest</excludedGroups>
        </configuration>
    </plugin>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 整合测试:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${failsafe-plugin.version}</version>
        <configuration>
            <groups>com.xpto.IntegrationTest</groups>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>integration-test</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>**/*.class</include>
                    </includes>
                </configuration> …
    Run Code Online (Sandbox Code Playgroud)

integration-testing maven maven-surefire-plugin maven-failsafe-plugin

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

多线程快速排序或合并排序

如何为Java实现并发快速排序或合并排序算法?

我们在16-(虚拟) - 核心Mac上遇到了问题,其中只有一个核心(!)使用默认的Java排序算法工作,并且很好地看到非常好的机器完全未被充分利用.所以我们写了自己的(我写的),我们确实获得了很好的加速(我编写了一个多线程的快速排序,由于它的分区性质,它很好地并行化,但我也可以编写一个mergesort)...但是我的实现只能扩展最多4个线程,它是专有代码,我宁愿使用来自信誉良好的源代码而不是使用我重新发明的轮子.

我在Web上找到的唯一一个例子是如何不用 Java编写多线程快速排序,它使用的是繁忙循环(这非常糟糕):

while (helpRequested) { }
Run Code Online (Sandbox Code Playgroud)

http://broadcast.oreilly.com/2009/06/may-column-multithreaded-algor.html

因此,除了无缘无故地丢失一个线程之外,它确保通过在while循环中忙碌循环来杀死perf(这是令人难以置信的).

因此我的问题是:您是否知道Java中正确的多线程快速排序或mergesort实现将来自信誉良好的来源?

我强调的事实是,我知道复杂性保持为O(n log n),但我仍然非常喜欢看到所有这些核心开始工作而不是空闲.请注意,对于其他任务,在相同的16个虚拟核心Mac上,我通过并行化代码看到了高达x7的加速(我并不意味着并发专家).

所以即使很难复杂性保持O(n log n),我也非常欣赏x7或x8甚至x16加速.

java sorting mergesort multithreading quicksort

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

有没有办法转移到HTML 5并仍然承诺多浏览器兼容性?

我是一名设计师,其主要营销策略是多浏览器兼容性.我向我的客户保证,该网站即使在IE6中也能正常工作(!).

最近我一直在思考转向HTML 5的问题.我担心的原因是IE6仍然是市场份额的主要参与者,我不想失去它.

有没有办法转移到HTML 5并仍然承诺多浏览器兼容性?

谢谢.

html browser html5

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

如何获取正在上载的文件的InputStream的MIME类型?

简单的问题:如何在InputStream不保存文件的情况下获取用户上传到我的servlet的文件的MIME类型(或内容类型)?

java servlets inputstream mime-types

25
推荐指数
3
解决办法
5万
查看次数

可以将java数组用作HashMap键

如果HashMap的键是一个字符串数组:

HashMap<String[], String> pathMap;
Run Code Online (Sandbox Code Playgroud)

您可以使用新创建的字符串数组访问地图,还是必须是相同的String []对象?

pathMap = new HashMap<>(new String[] { "korey", "docs" }, "/home/korey/docs");
String path = pathMap.get(new String[] { "korey", "docs" });
Run Code Online (Sandbox Code Playgroud)

java arrays hashmap

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

为什么这段代码不会抛出ConcurrentModificationException?

为什么这段代码没有抛出ConcurrentModificationException?它修改了一段Collection时间迭代它,而不使用Iterator.remove()方法,这是唯一安全的删除方法.

List<String> strings = new ArrayList<>(Arrays.asList("A", "B", "C"));
for (String string : strings)
    if ("B".equals(string))
        strings.remove("B");
System.out.println(strings);
Run Code Online (Sandbox Code Playgroud)

如果我ArrayList用a 替换,我会得到相同的结果LinkedList.但是,如果我将列表更改为("A", "B", "C", "D)或只是("A", "B")按预期获得异常.到底是怎么回事?我正在使用,jdk1.8.0_25如果这是相关的.

编辑

我找到了以下链接

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4902078

相关部分是

天真的解决方案是在AbstractList中为hasNext添加编码检查,但这会使编纂检查的成本增加一倍.事实证明,仅在最后一次迭代时进行测试就足够了,这几乎不会增加成本.换句话说,hasNext的当前实现:

    public boolean hasNext() {
        return nextIndex() < size;
    }
Run Code Online (Sandbox Code Playgroud)

被此实现取代:

    public boolean hasNext() {
        if (cursor != size())
            return true;
        checkForComodification();
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

由于Sun内部监管机构拒绝了此项更改,因此不会进行此更改.正式裁决表明,这一变化"已证明可能对现有代码产生重大的兼容性影响." ("兼容性影响"是修复程序有可能用ConcurrentModificationException替换静默不当行为.)

java

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

如何在 Jenkins 中使用 Github 个人访问令牌

我可以通过多种方式提出这个问题,例如如何使用 Github 个人访问令牌配置 Jenkins 凭据如何使用 Github 个人访问令牌在 Jenkins 中克隆 Github 存储库

所以这就是问题所在


我知道的替代解决方案

但我的问题是如何使用 Jenkins 设置 Github 连接 Personal Access Token

authentication github jenkins jenkins-github-plugin

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