小编Wan*_*now的帖子

新TLAB中的分配与TLAB外的分配

JDK中的Java Mission Control工具提供有关新TLAB中的对象分配和TLAB外部分配的统计信息.(它在Memory/Allocations下).这些统计数据有什么意义,哪些对应用程序的性能有好处?如果在TLAB之外分配一些对象,我是否应该担心?如果是,我该怎么办呢?

java performance garbage-collection jvm jmc

43
推荐指数
1
解决办法
9923
查看次数

用于转换不可变列表的番石榴单行程序

我认为必须有一个单行的Guava解决方案,用于将不可变列表转换为另一个不可变列表,但我找不到它.假设我们有以下对象:

ImmutableList<String> input = ImmutableList.of("a", "b", "c");
Function<String, String> function = new Function<String, String>() {
    @Override
    public String apply(String input) {
        return input + input;
    }
};
Run Code Online (Sandbox Code Playgroud)

转换可以像这样实现:

Iterable<String> transformedIt = Iterables.transform(input, function);
ImmutableList<String> output = ImmutableList.<String>builder().addAll(transformedIt).build();
Run Code Online (Sandbox Code Playgroud)

或者像这样:

List<String> transformedList = Lists.transform(input, function);
ImmutableList<String> output2 = ImmutableList.copyOf(transformedList);
Run Code Online (Sandbox Code Playgroud)

但我认为必须有一个性能优化的单线程用于这种转换,没有中间对象,我只是找不到它.它在哪里?

java guava

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

地图在番石榴地图

我有一些带有Map<String, Map<String, String>>对象的代码,它有效(它被实例化为HashMaps的HashMap),但我想知道是否有更好的方法来表示Guava中的这个数据结构.

我也考虑过Multimap,但同时有ListMultimapSetMultimap番石榴,我没有发现任何"MapMultimap".

我也检查过Table,它看起来更像是它,但它的名字让我感到不舒服:我所拥有的绝对不是一张桌子而是一棵树.(第二个键之间没有重叠)

是否有更好的番石榴替代品或我应该坚持使用Map<String, Map<String, String>>

java collections guava data-structures

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

在Java中以区域设置敏感的方式验证十进制数

可能重复:
安全地解析数字并且区域敏感

如何以区域设置敏感的方式验证包含十进制数的字符串?NumberFormat.parse允许过多,Double.parseDouble仅适用于英语语言环境.这是我尝试过的:

public static void main(String[] args) throws ParseException {
    Locale.setDefault(Locale.GERMAN);

    NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault());
    Number parsed = numberFormat.parse("4,5.6dfhf");
    System.out.println("parsed = " + parsed); // prints 4.5 instead of throwing ParseException

    double v = Double.parseDouble("3,3"); // throws NumberFormatException, although correct
}
Run Code Online (Sandbox Code Playgroud)

java validation

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

读取文件并将其过滤为字符串

我是Scala的新手,我需要在删除某些行的同时将文本文件的内容读入字符串.可以使用子字符串匹配来标识要删除的行.我可以提出以下解决方案,几乎可以工作,唯一的问题是删除换行符:

val fileAsFilteredString = io.Source.fromFile("file.txt").getLines.filter(s => !(s contains "filter these")).mkString;
Run Code Online (Sandbox Code Playgroud)

我怎样才能保留换行符?

scala

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

为什么Spring单例范围的bean比经典的Singleton模式更好?

我确实理解Spring单例范围的bean(它们对每个Spring上下文都有一个实例)和Singleton模式(它们有一个类加载器的实例)之间的区别.

我注意到,对于许多人来说,Singleton模式被认为是邪恶的(因为它们就像全局引用),而没有人似乎有任何针对单例范围的bean(它们也是全局可用的).为什么是这样?

我有一个(桌面)应用程序,我需要全局访问某些对象,因为将引用传递给几十个类和方法会非常麻烦.但是我不想使用DI框架,因为应用程序的启动时间很重要.什么是最好的设计?

java singleton spring design-patterns dependency-injection

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

Scala:在列表映射时增加值

我有一个字符串列表,比如

val myList = List("apple", "orange", "pear")
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个字符串,如"1)apple 2)orange 3)pear".我可以写一个for循环,但我认为在Scala中应该有一个像这样的东西的单行程.我能想到的最佳单线是

val myString = myList.map(s => "1) " + s).mkString(" ")
Run Code Online (Sandbox Code Playgroud)

但这导致"1)苹果1)橙色1)梨".如何在映射列表时增加值?

scala

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