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微信墙制作
    SSM框架构建多模块之业务拆分实践
    系统设计和系统划分有定律可循
    说说application/x-www-form-urlencoded和application/json的区别
    记一次Eclipse关于JDK和JRE的问题
    SVN和Git的比较
    程序员枪击事件引发的背后思考
    高性能JavaScript之加载和执行
    业务拆分的思考
    谈谈运维人员谨慎操作系统环境和管理
  • 原文地址:https://www.cnblogs.com/sakura579/p/12511198.html
Copyright © 2011-2022 走看看