小编Ric*_*ich的帖子

将BigDecimal/BigInteger序列化为ProtocolBuffers的最佳方法是什么?

我开始将自定义序列化机制迁移到Protocol Buffers.将特别定期使用的一种数据类型是BigDecimal.

有没有人知道在Protocol Buffers中序列化这个的好方法?我们当前的序列化例程BigDecimal.toPlainString()用于序列化和new BigDecimal(String)反序列化 - 我假设有更好的方法.

我的猜测是将a定义BigDecimal为:

message BDecimal {
    required int32 scale = 1;
    required BInteger int_val = 2;
}
Run Code Online (Sandbox Code Playgroud)

但我不太清楚如何定义BigInteger- 也许使用它的toByteArray()方法?

java protocol-buffers

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

自定义Jenkins的外观,以便更容易区分实例

我负责四个不同的Jenkins安装 - 两个测试服务器和两个生产服务器.

我在Jenkins中有哪些选项可以让我更明显地连接到哪台机器?

我想做的是能够将屏幕顶部的Jenkins文本更改为'Jenkins Department 1 Test' - 这可能吗?还有其他选择,如改变颜色等?

jenkins

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

创建KClass的新实例

我有一个Kotlin类,其主要(也是唯一的)构造函数为空.

我引用了这个类:

val kClass: KClass<MyClass> = MyClass::class
Run Code Online (Sandbox Code Playgroud)

如何使用反射创建此类的实例?

在Java中我会这样做,myClass.newInstance()但在Kotlin中我似乎需要先找到构造函数:

kClass.constructors.first().call()
Run Code Online (Sandbox Code Playgroud)

我已经看到primaryConstructor一些错误报告中提到但它没有出现在我的IDE中.

reflection kotlin

19
推荐指数
3
解决办法
9089
查看次数

计数器的长原始或原子长?

我需要一个long具有以下要求/事实的类型的计数器:

  • 增加计数器应该尽可能少的时间.
  • 计数器只能由一个线程写入.
  • 从柜台读取将在另一个线程中完成.
  • 计数器将定期递增(每秒多达几千次),但每五秒钟只会读取一次.
  • 精确的准确性并不是必不可少的,只要粗略地了解计数器的大小就足够了.
  • 计数器永远不会被清除,减少.

根据这些要求,您将如何选择实施计数器?作为一个简单的long,作为一个volatile long或使用AtomicLong?为什么?

目前我有一个volatile long但是想知道另一种方法是否会更好.我也是通过做++counter而不是增加我的长期counter++.这真的更有效率(因为我已被引导相信其他地方),因为没有完成任务?

java performance java.util.concurrent

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

SVN多次将同一分支重新集成到主干

SVN书中陈述如下:

一旦执行了重新集成合并,就不应该继续使用它进行开发.这样做的原因是,如果您稍后尝试从trunk中重新同步现有分支,则合并跟踪会将您的重新集成视为尚未合并到分支中的主干更改,并将尝试合并分支到主干合并回分支机构!解决方案就是从trunk创建一个新的分支,以继续开发的下一个阶段.

在我的情况下,我希望在重新集成到主干后继续使用分支,并继续多次重新集成到主干.我这样做了,我遇到了两个主要问题:

  1. 当我尝试重新整合时,我不断遇到奇怪的树冲突.
  2. 我不断收到一条消息,上面写着"只有先修改280到325才能使用重新整合"

如果我希望能够多次从分支重新集成,我该如何解决这个问题?

svn version-control tortoisesvn

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

模拟Runtime.getRuntime()?

任何人都可以提出任何有关如何最好地使用EasyMock预期来电的建议Runtime.getRuntime().exec(xxx)吗?

我可以将调用移动到另一个实现接口的类中的方法,但不希望在理想的世界中.

interface RuntimeWrapper {
    ProcessWrapper execute(String command) throws IOException;
}

interface ProcessWrapper {
    int waitFor() throws InterruptedException;
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人有任何其他建议?

java junit unit-testing easymock runtime.exec

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

在IntelliJ Idea中断开与远程JVM的连接

我已将IntelliJ连接到远程JVM,现在希望在没有远程JVM停止的情况下断开与远程JVM的连接.在Eclipse中有两个按钮显式停止JVM或从JVM断开连接,但IntelliJ中调试窗口上的按钮不清楚.工具提示和在线帮助没有多大帮助.

  • 停止(红色方块) - "单击此按钮可通过标准关闭脚本在外部终止当前进程."
  • 关闭(红色X) - "单击此按钮可关闭"运行"工具窗口的选定选项卡,并终止当前进程.
  • 重新运行(灰色方块周围的绿色箭头) - "单击此按钮可停止当前应用程序并再次运行"

我很确定它是Stop按钮,但它们都没有说清楚远程JVM会发生什么.

我应该按哪个按钮来安全地结束调试会话而不会终止远程JVM?

jvm remote-debugging intellij-idea

15
推荐指数
1
解决办法
5163
查看次数

在Guice中注入一个对象数组

我希望在Guice中实现类似以下的功能:

public MyClass {

    private final InjectedObject[] injectedObjects;

    @Inject
    public MyClass(InjectedObject[] injectedObjects) {
        this.injectedObjects=injectedObjects;
    }
}
Run Code Online (Sandbox Code Playgroud)

即我希望能够创建一定数量的对象实例,并将它们作为数组注入另一个对象.我可能会这样做:

public MyClass {

    private final InjectedObject[] injectedObjects;

    @Inject
    public MyClass(InjectedObjectProvider injectedObjectProvider) {
        this.injectedObjects=injectedObjectProvider.getArrayOfInjectedObjects(5);
    }
}
Run Code Online (Sandbox Code Playgroud)

...但我想知道是否还有另一条更优雅的路线?

java guice

13
推荐指数
3
解决办法
7664
查看次数

使用依赖注入与Play框架的示例用例

我是依赖注入和Play框架的忠实粉丝,但我很难看到这两者如何被一起利用.

有Spring和Guice的模块,但Play的工作方式使我很难看到DI除了一些非常简单的情况之外如何有益.

一个很好的例子是Play期望JPA工作由与所讨论的实体相关联的静态方法完成:

@Entity
Person extends Model {
    public static void delete(long id) {
        em().find(id).remove();
    }

    //etc
}
Run Code Online (Sandbox Code Playgroud)

因此,不需要PersonManager像Spring J2EE应用程序那样将控制器注入控制器.相反,控制器只是调用Person.delete(x).

显然,当存在与外部系统的接口时,DI是有益的,因为具体的实现可以被模拟用于测试等,但是对于自包含的Play应用程序我没有看到太多的好处.

有没有人有任何好的例子?有没有人用它来将一个Manager-style类注入Controllers中,以便在同一个事务中完成许多操作,例如?

spring dependency-injection guice playframework

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

什么原因导致Java中的长旋转和同步时间?

在Java 8 Update 45中,将这些选项添加到java调用中:

-XX:+PrintGCApplicationStoppedTime
-XX:+PrintSafepointStatistics
-XX:PrintSafepointStatisticsCount=1
Run Code Online (Sandbox Code Playgroud)

向我显示这些统计数据:

vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
3679.229: no vm operation [ 72 1 2 ] [ 6016 0 6016 0 0 ]  1
2015-05-22T11:25:27.519+0200: Total time for which application threads were stopped: 6.0168551 seconds, Stopping threads took: 6.0164099 seconds
Run Code Online (Sandbox Code Playgroud)

这里的问题是时间长了Stopping threads.在这个例子中,它是6秒,这已经是我们的应用程序的一个问题,但我已经看到更大的时间,在一个实例(没有完整的日志记录,但)相当于几乎一分钟.

VM操作(此处no vm operation:)是变化的.我也看到了,例如RevokeBias,G1IncCollectionPauseGCG_Operation.而且,page_trap_count似乎无关紧要.我所看到的例子,其中是0,和其他人在那里为2一致,不过,是时候总是体现在价值观spinsync.

我寻找那些定时值的深入的解释spinsync …

java garbage-collection g1gc

11
推荐指数
1
解决办法
1789
查看次数