Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        在8个月前关闭。
                    
                
        

我编写或阅读的所有代码,都看到整数常量声明为,

public static final int CONSTANT = 1;


但是,最近我看到了一些常量实例声明为:

public static final byte CONSTANT = 1;


在我们的新代码库中。两者都实现了恒定的语义,但是byte似乎非常不受欢迎

是否有任何论点赞成将int用作常量,还是我只是在考虑一些东西?

最佳答案

它仅应取决于需要在何处使用常量以及该位置的预期类型。

假设您正在实现某种类型的文件或二进制数据格式,并且需要适合字节的常量,那么使用byte是有意义的

public static final byte RECORD_START = 1;
public static final byte FIELD_TYPE_NUMBER = 2;

// ...

ByteBuffer b;
b.put(RECORD_START);
b.put(FIELD_TYPE_NUMBER);


但是,如果使用常量的数据类型为int,则也应使用int作为常量的类型。

int是32位,而byte是8位。
但是,如果您有太多的常量以至于需要考虑常量值的内存使用情况,那么使用常量可能是错误的选择(在这种情况下,您可能应该将数据存储在文件中)

07-24 19:26
查看更多