精华内容
下载资源
问答
  • 静态定义常量

    2016-11-06 21:59:30
    java 定义静态常量
  • Java静态常量和静态变量的区别

    万次阅读 2017-10-10 16:58:36
    StaticClass类中定义静态常量FIANL_VALUE和静态变量VALUE,静态代码块的打印语句表示类被加载:[java] view plain copypublic class StaticClass { static { System.out.println("StaticClass l...

    如下:测试java中静态常量和静态变量区别的样例,表明两者加载时的区别。

    StaticClass类中定义了静态常量FIANL_VALUE和静态变量VALUE,静态代码块的打印语句表示类被加载:

    [java]  view plain  copy
    1. public class StaticClass {  

    2.     static {  
    3.         System.out.println("StaticClass loading...");  
    4.     }  
    5.       
    6.     public static String VALUE = "static value loading";  
    7.       
    8.     public static final String FIANL_VALUE = "fianl value loading";  
    9. }  

    StaticClassLoadTest 类用于测试静态变量的加载:
    [java]  view plain  copy
    1. public class StaticClassLoadTest {  
    2.       
    3.     public static void main(String[] args) {  
    4.         System.out.println("StaticClassLoadTest...");  
    5.         printStaticVar();  
    6.     }  
    7.       
    8.     private static void printStaticVar() {  
    9.         System.out.println(StaticVar.FIANL_VALUE);  
    10.         System.out.println(StaticVar.VALUE);  
    11.     }  
    12.       
    13. }  

    输出:

    [plain]  view plain  copy
    1. StaticClassLoadTest...
    2. fianl value loading 
    3. StaticClass loading...  
    4. static value loading 

    输出显示在打印静态常量时,StaticVar类并没有被加载,在输出静态变量的前才打印类加载信息。这表明类的未加载的情况下也能引用其静态常量信息,原因是因为常量值存储在JVM内存中的常量区中,在类不加载时即可访问。

    注:经过编译优化,静态常量 FIANL_VALUE 已经存到NotInit类自身常量池中,不会加载StaticClass  


    但是不能说所有的静态常用访问都不需要类的加载,这里还要判断这个常量是否属于“编译期常量”,即在编译期即可确定常量值。如果常量值必须在运行时才能确定,如常量值是一个随机值,也会引起类的加载,如下:

    [java]  view plain  copy
    1. public static final int FINAL_VALUE_INT = new Random(66).nextInt();  

    展开全文
  • Java基础学习笔记:静态常量

    千次阅读 2019-08-02 10:58:33
    在类中用public static final 修饰的变量 说明: public是为了方便访问 static是为了让其成为类的成员,而不是对象的成员。...final 修饰变量多用于声明一个常量 在变量被第一次赋值了之后,这个...

    在类中用public static final 修饰的变量
    说明:

    1. public是为了方便访问

    2. static是为了让其成为类的成员,而不是对象的成员。被static修饰过得变量,可以直接用过类名.变量名的方式调用, 而不需要通过类的实例化对象引用。其次,static修饰的变量是放在引用的根下的,意味着几乎不会被回收

    3. final 修饰变量多用于声明一个常量 在变量被第一次赋值了之后,这个变量就相当于一个常量或者可以理解成这个变量的值固定了,值无法被修改

      综上,public static final可以让访问变得很方便,而且不会被修改。一般可以放配置信息,还有一些状态码的定义。

    静态常量 举个栗子
    public class Constant {

    public static final int DEAFULT_TAG = 0xcc33;
    
    public static final int DEFAULT_VERSION = 1;
    
    
    public static final Long PHOTO_PRICE = 1L;
    
    
    public static final String OSS_STYLE = "?x-oss-process=style/photo_printer";
    

    }
    上边的 Constant做为一个常量类,我在其余各种地方需要调用常量的时候

    直接使用 Constant.OSS_STYLE 就好了

    展开全文
  • lang.text.dateFormat,这个类中由于要使用其中几个静态常量 。结果发现自己不会调用,请问一下各位大神如何调用一个公开静态常量
  •       &...java中的静态域定义为static,每个类只对应一个这样的域,也就是...这也就是为什么java中非静态内部类不能有静态变量,却可以定义静态常量。 class Employee { /

           java中的静态域定义为static,每个类只对应一个这样的域,也就是说对于每个类的实例将共享这个静态域。java中的静态域在类加载的时候初始化。
           这也就是为什么java中非静态内部类不能有静态变量,却可以定义静态常量。

    class Employee
        {
        	//不允许
        	//private static int nextId = 1 ;
        	//允许
        	private static final int nextId = 1;
        }
    

           java类加载时,先执行加载外部类,再加载内部类,最后初始化内部类中的变量。java中要加载内部类必须在实例化外部类之后完成,而这个时候如果内部类中的变量是静态的就会在类加载时被提前初始化。
           也就是说,在外部类还没有实例化,内部类还没有被加载的时候,内部类的属性就已经起作用了,这样明显是有矛盾的,所以java不允许这样做。而java常量放在内存中常量池,它的机制与变量是不同的,编译时,加载常量是不需要加载类的,所以就没有上面那种矛盾。
           其实我觉得,既然内部类没有被实例化,那么也就无法使用内部类的静态属性,就算内部类的静态属性被初始化了也没有任何作用。所以java不允许非静态内部类有静态变量,只能说是合理的规定。

    展开全文
  • Java常量与静态常量能不能修改值

    千次阅读 2019-09-04 09:55:29
    import java.util.*; // 2019/9/4 public class ConstVarDemo { private final int v1 = 1; private static final int v2 = 2; private final List<Integer> list1 = new LinkedList<>(); p...

    直接上代码

    import java.util.*;
    
    // 2019/9/4
    public class ConstVarDemo {
    	private final int v1 = 1;
    	private static final int v2 = 2;
    
    	private final List<Integer> list1 = new LinkedList<>();
    	private static final List<Integer> list2 = new LinkedList<>();
    
    
    	// 基本类型常量修改
    	// 编译失败
    	public void test1() {
    		// System.out.println(v1);
    
    		// 以下操作错误: 无法为最终变量v1分配值
    		// v1 = 11;	// 修改常量的值
    
    		// System.out.println(v1);
    
    
    		// System.out.println(v2);
    
    		// 以下操作错误: 无法为最终变量v2分配值
    		// v2 = 22;	// 修改静态常量的值
    		// System.out.println(v2);	
    	}
    
    	// 对象引用常量状态进行修改
    	// 编译通过
    	public void test2() {
    		System.out.println(list1.toString());
    		list1.add(1);	// 常量引用
    		System.out.println(list1.toString());
    
    		System.out.println(list2.toString());
    		list2.add(2);	// 静态常量引用
    		System.out.println(list2.toString());
    	}
    	
    	// 改变对象类型常量的引用
    	// 编译失败
    	public void test3() {
    		// System.out.println(list1.toString());
    		// list1 = new ArrayList<>();	// 错误: 无法为最终变量list1分配值
    		// list1.add(1);
    		// System.out.println(list1.toString());
    
    		// System.out.println(list2.toString());
    		// list2 = new ArrayList<>();	// 错误: 无法为最终变量list2分配值
    		// list2.add(2);
    		// System.out.println(list2.toString());
    	}
    
    	public static void main(String[] args) {
    		new ConstVarDemo().test3();
    	}
    }
    

    总结

    • 不管静态常量还是普通常量只要是基本类型就不能在初始化后重新修改其值
    • 对象类型普通常量、静态常量可以在初始化后修改其对象状态,但不可以改变其引用
    展开全文
  • JAVA修改静态常量的方法

    千次阅读 2014-03-05 23:33:59
    RT,代码块,一目了然 ...//通过打开Field权限来实现静态常量的值 Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); //这里的f...
  • java 声明静态Map常量的一种简单方式

    万次阅读 2019-05-24 15:17:51
    常用的声明方式(使用静态代码块): public final static Map map = new HashMap(); static { map.put("key1", "value1"); map.put("key2", "value2"); } @SuppressWarnings("serial") private static...
  • 目前java开发中,常量定义时用枚举的多吗?</p>
  • https://blog.csdn.net/qq853632587/article/details/78194768 -Java静态常量和静态变量的区别 静态常量:static final 静态变量:static 这两者都存储在方法区中(个人理解:常量区和静态变量区) 在某些情况...
  • Java编程中如何定义全局常量

    万次阅读 2018-09-12 23:30:43
    Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100...
  • 如何在Java定义常量

    2019-12-04 11:50:30
    对于Java中的常量这一主题,似乎存在许多混淆。有些人使用整数或字符串来定义常量,而另一些人则使用枚举。. 我还遇到了在它们自己的接口中定义常量–其中使用常量的类必须实现接口。此策略通常称为接口常量设计...
  • Java静态常量可以被覆写吗?在一个类中定义一个静态常量,它的子类类中定义一个同名的静态常量,这样可以吗?
  • Java类获取配置文件中的静态常量通过注解方式获取常量值@Value注解进行配置文件信息的获取@ConfigurationProperties注解获取配置文件 通过注解方式获取常量值 当我们在编写代码过程中,部分常量信息可能需要多处公用...
  • Java静态变量、静态常量、静态方法

    万次阅读 2016-11-17 17:24:17
    Java静态变量、静态常量、静态方法  静态变量和静态方法都属于静态对象。在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态...
  • JAVA定义常量的常用方法

    千次阅读 2018-05-29 21:52:17
    常量定义 * */ public static class Field01Constant { /** * 第一个字符串变量 */ public static final String FIRST_STRING_CONSTANT = "ABC"; /** * 第二个int变量 */ public static ...
  • java中创建静态常量键值对Map

    千次阅读 2015-08-27 16:03:34
    1、先导入commons-collections-3.1.jar包 public static final Map CITY_MAP; static{ Map cityMap = new HashMap(); cityMap.put("xx", "xx"); CITY_MAP = UnmodifiableMap.decorate(cityMap);...
  • 接口中是可以定义“成员变量”的,也就时接口的常量。但是少补了public static final这三个关键字进行修饰 具体的格式: public static final 数据类型 常量名称=数据值; 例子例子: 代码: package demo1; ...
  • Java定义常量的几种方法

    千次阅读 2019-05-02 14:52:43
    Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100...
  • kotlin中的静态常量的设置

    千次阅读 2019-09-03 21:37:13
    我们在编写Java的代码的时候经常会用到静态常量和静态变量,那么我们在kotlin中该如何定义我们的静态常量和静态变量呢? Java的写法 public class SystemConstat{ /** * 静态常量 */ public...
  • Java 中使用 final 关键字来修饰常量。 虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量常量常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型...
  •  问题: 要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外.  枚举就是要让某个类型的变量的取值只能为若干个固定值中的一...
  • ![图片说明](https://img-ask.csdn.net/upload/201704/25/1493109055_517070.png) ![图片说明]... 如图每次Test的时候性别总是为null,我想把Q仔Q妹换成“雄”和“雌”。该怎么改呢?新手求指点
  • Java常量池(静态常量池与运行时常量池)

    万次阅读 多人点赞 2018-03-02 11:12:50
    Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。 1)所谓静态常量池,即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分...
  • Java静态变量、常量、方法

    千次阅读 2017-04-12 20:48:17
    由static修饰的变量、常量和方法被称做静态变量、常量和方法。 静态成员属于类所有,区别与个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。... //在类中定义静态常量 static int id;
  • JAVA静态常量

    千次阅读 2011-10-06 15:55:24
    在项目中,一般都有很多静态常量静态常量往往由于访问效率比较高。不过一般会把他们放在哪呢 一:放到Interface,因为 java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量 二:放...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 175,813
精华内容 70,325
关键字:

java定义静态常量

java 订阅