小编Ale*_*sky的帖子

从流中收集连续的对

鉴于如下的流{ 0, 1, 2, 3, 4 },

我怎样才能最优雅地将其转换为给定的形式:

{ new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) }

(假设,当然,我已经定义了类对)?

编辑:这不是严格关于整数或原始流.对于任何类型的流,答案应该是通用的.

java java-8 java-stream

92
推荐指数
10
解决办法
5万
查看次数

如何从JUnit测试中运行JMH?

如何使用JUnit测试在现有项目中运行JMH基准测试?官方文档建议使用Maven shade插件创建一个单独的项目,并在main方法中启动JMH .这是必要的,为什么推荐?

java junit jmh

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

JVM 8退出代码-559038737(0xDEADBEEF)

升级到Java 8后,我的应用程序开始以非确定性方式失败.它不会抛出异常或打印错误消息.失败的唯一标志是退出代码-559038737.有没有遇到过这个?

java jvm jvm-hotspot jvm-crash java-8

23
推荐指数
1
解决办法
1688
查看次数

在服务器上运行单元测试(JAX-RS)

我正在编写一个JAX-RS(Jersey + Maven)应用程序来执行一些棘手的操作(例如调用WAR中嵌入的本机可执行文件).我需要在服务器上运行[部分]单元测试(JUnit4)(运行Tomcat 7.0.22的Amazon Elastic Beanstalk)来检查一切是否正常.

除了RYO(滚动你自己的)之外,还有一种标准的,灵活的方式吗?我发现的东西似乎更多地与开发人员机器上的集成测试(即Jersey测试框架)有关.甚至RYO让我感到困惑......我怎样才能从源包中调用测试包中的代码?

基本上,我想创建一个我可以调用的/ test资源,它将以漂亮的格式从服务器返回我的单元测试结果.如果我可以做/ test/{category}更好

java junit tomcat unit-testing jax-rs

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

可移植类库中的Thread.Sleep()

MSDN文档说Thread.Sleep()可以被用在便携式类库.编译器说不然.除旋转循环外,我的其他选择是什么?Thread.CurrentThread.Join()也不存在.

项目文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{C46B138E-CC30-4397-B326-8DD019E3874B}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>x0xtest.AVR</RootNamespace>
    <AssemblyName>x0xtest.AVR</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <TargetFrameworkProfile>Profile3</TargetFrameworkProfile>
    <FileAlignment>512</FileAlignment>
    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Attributes\AddressAttribute.cs" />
    <Compile …
Run Code Online (Sandbox Code Playgroud)

c# portable-class-library

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

当20%的堆仍然是免费的时,为什么我会得到OutOfMemory?

我已将最大堆设置为8 GB.当我的程序开始使用大约6.4 GB(在VisualVM中报告)时,垃圾收集器开始占用大部分CPU,并且在进行~100 MB分配时程序与OutOfMemory崩溃.我在Windows上使用Oracle Java 1.7.0_21.

我的问题是,是否有GC选项可以帮助解决这个问题.除了-Xmx8g,我没有传递任何东西.

我的猜测是堆已经碎片化了,但GC应该不紧凑吗?

java garbage-collection jvm-hotspot

17
推荐指数
1
解决办法
1346
查看次数

使用常见OpenOption组合的最快方法

是否有一种简洁,惯用的方式(可能使用Apache Commons)来指定OpenOption的常见组合 StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING

java nio nio2

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

Spring:将@Qualifer附加到Java配置的bean

在Spring中,您可以XML配置bean以具有限定符.如果通过Java注释配置bean,我似乎无法找到如何附加限定符.那是怎么回事?我只需使用普通的旧名称吗?

java spring spring-3

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

Java 9 Cleaner应该优先完成吗?

在Java中,覆盖该finalize方法会得到一个糟糕的说唱,虽然我不明白为什么.类似于FileInputStream使用它来确保close在Java 8和Java 10中调用.然而,Java 9引入java.lang.ref.Cleaner了使用PhantomReference机制而不是GC终结.起初,我认为这只是向第三方类添加finalization的一种方式.但是,其javadoc中给出的示例显示了一个可以使用终结器轻松重写的用例.

我应该finalize用Cleaner 重写我的所有方法吗?(当然,我没有很多.只是一些使用OS资源的类,特别是对于CUDA互操作.)

据我所知,Cleaner(通过PhantomReference)避免了一些危险finalizer.特别是,您无法访问已清理的对象,因此您无法复活它或其任何字段.

然而,这是我能看到的唯一优势.清洁工也是非平凡的.事实上,它和终结都使用了ReferenceQueue!(难道你不喜欢阅读JDK是多么容易吗?)它比完成更快吗?它是否避免等待两个GC?如果许多对象排队等待清理,它会避免堆耗尽吗?(所有这些的答案在我看来都不是.)

最后,实际上没有任何保证阻止您在清理操作中引用目标对象.小心阅读长API注意!如果你最终引用了这个对象,那么整个机制将会默默地中断,而不像终结总是试图跛行.最后,虽然终结线程由JVM管理,但创建和保存Cleaner线程是您自己的责任.

java finalize finalization finalizer java-9

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

Java:为什么不(int)+ =(double)导致"不兼容的类型"错误?

这是一个奇怪的事:

float a = 0;
a = a + Math.PI; // ERROR
Run Code Online (Sandbox Code Playgroud)

但是:

a += Math.PI; // OK!
Run Code Online (Sandbox Code Playgroud)

即便如此:

int b = 0;
b += Math.PI; // OK, too!
Run Code Online (Sandbox Code Playgroud)

为什么+=运算符允许有损隐式类型转换?

java type-conversion

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