zoukankan      html  css  js  c++  java
  • Java面向对象编程 -9.5

    String对象(常量)池

    对象池的主要目的是实现数据的共享处理。以String对象池为例,里面的内容主要就是为了重用,而重用的实际上就属于共享设计。 但是在java之中对象(常量)池实际上分为两种:

    • 静态常量池:指的是程序(*.class)在加载的时候会自动将此程序之中保存的字符串、普通的常量、类和方法的信息等等,全部进行分配
    • 运行时常量池:当一个程序(*.class)加载之后,里面有一些变量(比如需要用户输入的变量),这个时候提供的常量池。

    观察一个程序(静态常量池)

    public class name5 {
    	public static void main(String args[]){
    		String strA = "www.mldn.cn";
    		String strB = "www."+"mldn"+".cn";
    		System.out.println(strA == strB);//true
    	}
    }
    

    本程序之中所给出的内容全部都是常量数据(字符串的常量都是匿名对象),所以最终在程序加载的时候会自动帮助开发者处理好相应的连接。

    观察另一种情况(动态常量池)

    public class name5 {
    	public static void main(String args[]){
    		String info = "mldn";
    		String strA = "www.mldn.cn";
    		String strB = "www."+info+".cn";
    		System.out.println(strA == strB);//false
    	}
    }
    

    这个时候之所以是false,是因为程序在加载的时候并不确定info是什么内容。因为在进行字符串连接的时候info采用的是一个变量,变量的内容是可以修改的,所以它不认为最终的strB的结果就是一个所需要的最终的结果。

    所以比较两个字符串 最简单的是使用equals()方法

  • 相关阅读:
    将不确定变为确定~接口应该是什么
    架构,改善程序复用性的设计~目录(附核心原代码)
    php实战第二十五天
    java一道简单的括号匹配问题
    屈原坐上神十带来了iOS 7
    《别独自用餐》 警句摘录
    php实战第二十四天
    偷了世界的程序员
    变故
    “快排”笔记
  • 原文地址:https://www.cnblogs.com/sakura579/p/12511198.html
Copyright © 2011-2022 走看看