小编aio*_*obe的帖子

如何使用Java创建基于CSV文件的Excel文件?

我需要使用Java在CSV文件的基础上创建XLS文件.

请告诉我哪个API最适合创建excel文件.

谢谢

java csv excel

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

从二进制到十进制是否有任何限制(就像从十进制到二进制一样)?

众所周知,并非所有十进制数都可以用二进制表示(有限位数).

我想知道,所有(有限)二进制数是否可以使用(有限数量的)十进制数字表示?我怀疑是这样,因为二进制("0.5","0.125"等)中的所有"基元"都可以用有限数量的十进制数字表示.

所以,我的问题如下:"兼容的基础变化"的特征是什么?即," Base 2→Base 10 " 的数学属性是什么,但不适用于" Base 10→Base 2 "?

(正式提出:NM必须具有哪些属性,以确保所有有限Base-N数都具有相应的有限Base-M数?)

language-agnostic math floating-point

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

为什么Java中允许双字面的任意精度?

我刚从Peter Lawreys的帖子中了解到这是有效的表达方式,并且评估为true.

333333333333333.33d == 333333333333333.3d
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么允许双重文字不能用双精度表示,而不能表示的整数文字是不允许的.这个决定的理由是什么?


旁注,我实际上可以触发双范围文字的范围编译错误:-)

99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999d
Run Code Online (Sandbox Code Playgroud)

因此,只要我们处于(最小,最大)范围内,文字就会变得近似,但是当它超出范围时,似乎编译器拒绝接近它.

java syntax literals

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

Java清单文件中的行顺序

清单文件中的行顺序是否重要?

有人试图说服我,当清单文件发生变化时,事情就会破坏

Manifest-Version: 1.0 
Class-Path: xxx.jar 
Main-Class: com.something
Run Code Online (Sandbox Code Playgroud)

Manifest-Version: 1.0 
Main-Class: com.something
Class-Path: xxx.jar
Run Code Online (Sandbox Code Playgroud)

(Main-Class和Class-Path线相反.)

java manifest

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

比较任意两个Java对象的常用方法

我想比较两个Java对象而不重写equals方法.因为我需要在我拥有的n个类中重写equals方法,所以我需要一个通用的实用方法,我们可以比较两个Java对象.

像这样的东西:

A a1,a2;
B b1,b2;
C c1,c2;
-----
-----
boolean isEqual1 = new ObjectComparator().isEquals(a1 , a2);
boolean isEqual2 = new ObjectComparator().isEquals(b1 , b2);
boolean isEqual3 = new ObjectComparator().isEquals(c1 , c2);
Run Code Online (Sandbox Code Playgroud)

请帮我写一个用于比较任何Java对象的通用实用程序

希望通过使用Field类和getClass方法来实现它.请指导我.

java

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

如何增加最近打开的文件列表中显示的文件数?

Eclipse启动后,我只看到4个最近打开的文件.是否有可能看到例如10?

java eclipse settings

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

在java中使用ArrayList时的深层复制

我知道这是一件小事,但我想问这个问题.假设我有一个返回对象ArrayList的get方法.首先,我们必须返回它的副本吗?如果是这样,它是否必须是ArrayList的深层副本?当内部的对象是不可变的时,我们还需要做一个深层复制吗?如果我们使用这种类型的构造函数

ArrayList<T> arr = new ArrayList<>(collection);
Run Code Online (Sandbox Code Playgroud)

然后是复制的数组元素还是仍指向旧值?谢谢

java collections copy arraylist deep-copy

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

找到两个数组之间的非常见元素

在一次采访中,人们被要求在两个字符串数组之间找到非常见的元素.

Eg: String a[]={"a","b","c","d"}; 
String b[]={"b","c"}; 
O/p should be a,d
Run Code Online (Sandbox Code Playgroud)

我回答了Java Set中使用HashTable实现的问题.使用Set的代码更简单:

String[] a = {"a","b","c","d"};
String[] b = {"b", "c"};

Set<String> set = new HashSet<>(a.length);
for(String s : a){
    set.add(s);
}
for(String s : b){
    set.remove(s);
}
return set;
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,有没有其他更好的方法来实现这一目标

java collections set

6
推荐指数
4
解决办法
1313
查看次数

继承技术如何运作?

我即将在我的公司(我是一名实习生)中介绍Java中的继承.我想我已经明白了,我也知道如何使用它.但有一点不太确定.存储在存储器中的方法在哪里.对象如何知道方法的位置?

例如:

我们有这门课.

class Animal {
    private String desc1;
    protected String desc2;

    public void breath() {
    }

    public void eat() {
    }
}
Run Code Online (Sandbox Code Playgroud)

而这堂课:

  class Dog extends Animal() {
        public void bark() {
        }
    }
Run Code Online (Sandbox Code Playgroud)

我们现在创建一个Dog类的对象:

狗狗=新狗();

所以现在我的问题是: 类被加载到堆中.所以狗和动物都在堆里. (编辑:多数民众赞成错了,类没有加载到堆中,看下面的答案.). 所以,让我们说dog.bark().狗如何知道树皮方法在堆中的位置?知道狗类在哪里?接下来我们制作dog.eat(): 当狗知道狗在哪里时,狗知道动物在哪里或狗是否知道动物在哪里?知道我的意思是它有一个地址在堆上.当我覆盖一个方法时怎么样?存储在哪里?

thx求助.

java heap storage class object

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

ANTLR:从CommonTree到有用的对象图

我今天开始使用ANTLR,并且我已经创建了一个基本的解析器.

解析后,我最终得到了一棵树.对我来说,似乎这只是String在一组树形结构中放在一起的Tree-nodes.这对我来说不是很有用.我想要一个对象图.

澄清(这是一个例子,而不是我真正的应用程序):因为"5-1+6"我似乎最终得到:

new String("PLUS")
    new String("MINUS")
        new String("5")
        new String("1")
    new String("6")
Run Code Online (Sandbox Code Playgroud)

我会发现更有用的东西:

new Plus(
    new Minus(
        new IntegerLiteral(5),
        new IntegerLiteral(1)),
    new IntegerLiteral(6))
Run Code Online (Sandbox Code Playgroud)

从第一个表示到另一个表示最方便的方法是什么?在本文中,作者做了类似的事情:

public Expression createExpr(CommonTree ast) {

    // ...

    switch (ast.getType()) {
    case SimpleExpressionParser.INT:
        return new IntegerLiteral(ast.getText())
    case SimpleExpressionParser.PLUS:
        return new Plus(createExpr((CommonTree)ast.getChild(0)),    // recurse
                        createExpr((CommonTree)ast.getChild(1)));   // recurse
    case SimpleExpressionParser.MINUS:
        return new Minus(createExpr((CommonTree)ast.getChild(0)),   // recurse
                         createExpr((CommonTree)ast.getChild(1)));  // recurse
    }

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

这是首选方式吗?!我不能指示ANTLR以某种方式生成这个样板代码(它会是巨大的)吗?


可能相关的问题:

java antlr

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