String,static,final】的更多相关文章

1. String 下面代码创建了几个对象? String s1 = new String("Hello"); String s2 = new String("Hello"); 要想答对这道题,需要考虑String的一个常量池的概念.在执行代码的时候,首先会判断字符串常量池中是否存在"Hello",如果存在,直接返回该对象的引用,那对于本题就是创建2个对象.如果不存在,则现在常量池中创建,加起来就三个对象了(一个对象两个引用). 1. 什么样的字…
String两种实例化方式 一种是通过双引号直接赋值的方式,另外一种是使用标准的new调用构造方法完成实例化.如下: String str = "abcd"; String str = new String("1234); 第一种方法: 使用直接赋值后,只要是以后声明的字符串内容相同,则不会再开辟新的内存空间.对于String的以上操作,在java中称为共享设计.这种设计思路是,在java中形成一个字符串对象池,在这个字符串对象中保存多个字符串对象,新实例化的对象如果已经在池…
Static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要该类加载,JVM虚拟机就能根据类名在运行时数据区的方法区内找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象.1.static修饰类的成员方法或者成员变量,我们通常称该方法是静态方法,该方法是静态变量:若用public修饰static成员方法或者成…
在interface里面的变量默认都是public static final 的.所以可以直接省略修饰符: String param="ssm"://变量需要初始化 为什么接口要规定成员变量必须是public static final的呢? 答: 首先接口是一种高度抽象的"模版",,而接口中的属性也就是’模版’的成员,就应当是所有实现"模版"的实现类的共有特性,所以它是public static的 ,是所有实现类共有的 .假如可以是非static…
在编译以下Java程序时,出现The serializable class  does not declare a static final serialVersionUID field of type long警告 package learn; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SimpleGui3C implements ActionListener{ JFrame f…
一.final数据 在 java编程语言中,有时候需要告知编译器一段数据是不变的编译期常量.对于这种情况,编译器可以将此常量值带入需要用到它的计算式子当中,这种在编译时 执行计算式的方法减轻了运行时的开销.通常,这类常量数据都是基本类型的数据,并赋予关键字final,同时在对此常量定义时需要进行赋值. 值得注意的是:对于基本类型,使用final关键字将使数值恒定不变:而对于对象引用,final则是使引用恒定不变.一旦引用被初始化为指向一个对象时,它也就无法再指向另外一个对象,然而该对象本身是可以…
JDK源码学习String篇中,有一处错误,String类用final[不能被改变的]修饰,而我却写成静态的,感谢CTO-淼淼的指正. 风一样的码农提出的String为何采用final的设计,阅读JDK源码的时候,有粗略的思考过,今天下班后又把<Thinking in Java>中关于final的内容重新看了一遍,对此写下一些关于自己的理解和想法. String类中final关键字的使用 final关键字,用来描述一块数据不能被改变,两种可能理由:设计.效率 final使用的三种情况:数据.方…
近期写项目遇到一个问题,来回折腾了几次,最终探究清楚了.不废话.上样例. 背景:由于项目小,没有使用配置文件,全部静态常量都放在Config.java里面了 public class Config { public static final String URL="http://www.xxxx.com/"; public static final int PAGE_NUM=10; } 看起来也不错啊,没什么大问题.都这么用的啊. 好吧,放到server上执行一下,正常啊. 接下来,问…
public class User implements Serializable { /** * serialVersionUID */ private static final long serialVersionUID = 1L; /** * 主键ID */ private Integer userId; /** * 用户名 */ private String userName; /** * 密码 */ private String passWord; /** * 姓名 */ privat…
反射修改字段 咱们从最简单的例子到难, 一步一步深入. 使用反射修改一个private修饰符的变量name 咱们回到主题, 先用反射来实现一个最基础的功能吧. 其中待获取的name如下: public class Pojo { private StringBuilder name = new StringBuilder("default"); public void printName() { System.out.println(name); } } 接下来咱们 使用反射来修改上面n…