String 特点:

  字符串对象一旦被初始化就不会被改变。

public class Ssstring {
public static void main(String[] args) {

//这个是2个2对象
// String s="abc";//这个s指向abc
// s="nba";//现在这个s指向nba
//字符串对象一旦初始化不能变
//s只是一个引用变量,可以指向任何东西,那个是他的事情
// System.out.println(s);

/*
*
* 字符串定义的第一种方式,并明确字符串常量池的特点
* 池子中没有就建立,有的话就直接用
* */

// String s="abc";//s="abc"给了一个字符串,他会先到字符串常量池,
// //找,看有没有abc,一看没有就建立一个abc,在把建的这个abc的地址给s
// String s1="abc";//s="abc"给了一个字符串,他会先到字符串常量池,
// //找,看有没有abc,一看有"abc",因为上面刚刚已经创建过abc了,
// //然后他就把已有的abc的地址赋给s1
//
// System.out.println(s==s1);//true?字符串建立时,在内存当中有一个字符串常量池,
// //根据上面的介绍,所以s==s1是指向同一个对象

/*
* 创建对象都是用new创建,一个类想要用new创建对象,要初始化。
* */
//这个2个的区别:
// String s="abc";//这个是在字符串常量池中创建了一个字符串abc并把地址赋值给了s引用型变量(这个其实是创建了一个对象)
// String s1=new String("abc");//这个是在堆内存当中new创建了一个String对象,这个String对象在构造的时候,
// //接受了一个字符串abc。=new String("abc")这个动作不是在字符串常量池中创建的。
// //(这个其实是在堆内存中创建了2个对象,第一个是new了一次new String,第二个是把对象参数abc传进去了,对象是要先存在,所以还要在创建一个字符串abc对象,所以就是有2个对象)
// System.out.println(s);//abc
// System.out.println(s1);//abc
// System.out.println(s==s1);//false?,"=="是用来比较地址的值(这个地址就是常量池里面的地址值)
// System.out.println(s.equals(s1));//true?,String类是Object类的子类,String是将Object类中的equals方法覆写
// //他建立了字符串依据自身特点来比较字符串对象,是否相同的依据,(其实就是equals比较的是内容,不比较地址)

}
}

面向对象15.1String类特点的更多相关文章

  1. 面向对象15.3String类-常见功能-获取-1

    API使用: 查API文档的时候,有很多方法,首先先看返回的类型 下面的方法函数有的是有覆写Object类的如1.1图,如果没有复写的话是写在1.2图片那里的,如果找到了相对于的方法,可以点击进去可以 ...

  2. 面向对象15.3String类-常见功能-判断

    /*3.判断 * 3.1两个字符串内容是否相同? * boolean equals(Object obj)(参数是Object,不是String,因为equals是覆盖Object里面的equals方 ...

  3. 面向对象15.3String类-常见功能-转换

    public static void main(String[] args) { //2.1// String s="张三,李四,王五";// String [] arr=s.sp ...

  4. 面向对象15.3String类-常见功能-获取-2

    public class String_APImethod {/* * 1.4获取字符串中的一部分字符串,也叫字符串 * String substring(int beginIndex, int en ...

  5. 面向对象15.2String类-构造函数

    public class String_Constructor { //快捷键小方法: Ctrl+d,删除整行,选中几行删除几行 public static void main(String[] ar ...

  6. Object-C面向对象之实现类

    Object-C面向对象之实现类 一般涉及到面向对象都会C#,Java都不可避免的涉及到类,C#中类的后缀名是.cs,Java中是.java,Object-C中一般用两个文件描述一个类,后缀名为.h为 ...

  7. day20面向对象三大特性 , 类嵌套

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.简述面向对象三大特性并用代码表示."""封装:class Account: ...

  8. C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

    面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对 ...

  9. 【转载】【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

    [游戏开发]在Lua中实现面向对象特性——模拟类.继承.多态   阅读目录 一.简介 二.前提知识 三.Lua中实现类.继承.多态 四.总结 回到顶部 一.简介 Lua是一门非常强大.非常灵活的脚本语 ...

随机推荐

  1. 支付宝支付-常用支付API详解(查询、退款、提现等)

    所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...

  2. 【WPF】如何获取命令行参数

    应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数. 而 WPF 应用程序比较特殊,因为在VS中 ...

  3. Java文件流应用:剪切文件

    剪切的实际操作是: 第一步,先复制文件到指定位置, 第二步,删除原文件,这样就实现了剪切 与复制文件相比,多了一步删除文件 注意:删除文件必须在流关闭后,才能删除,否则,删除不了. 实例代码 pack ...

  4. 浅谈Fastfds+nginx结合_单机

    一.环境 centos6.8 x64  IP:192.168.134.128 所需软件包: libfastcommon-1.0.7.zip,FastDFS_v5.05.tar.gz,nginx-1.7 ...

  5. css中那些容易被我们程序猿所忽略的选择器

    css中那些容易被我们程序猿所忽略的选择器 作为一个程序猿,我们可能会遇到这样的问题,假如:有5个li,要求给第三个li设置背景颜色怎么办?有人会说,用JS啊,循环遍历出第三个不就行了.但是,用JS解 ...

  6. 多线程异步编程示例和实践-Task

    上篇博文中,我们介绍了Thread和ThreadPool: 多线程异步编程示例和实践-Thread和ThreadPool 本文中我们继续,说一下TPL(Task Parallel Library, 简 ...

  7. WINDOWS程序设计对话框加载显示bmp图像及刷新

    参考文章:http://blog.csdn.net/wangjian8006/article/details/7464431 图片的加载与显示也是属于窗口绘制这一部分的.所以其代码要写在消息函数的WM ...

  8. HTML+CSS·经常使用的设计方法

    HTML+CSS·经常使用的设计方法: ======================================================= margin[外] = = padding[内] ...

  9. git初步用法

    三.       Gerrit的注册及使用 1.         简介 Gerrit为代码审核工具,git提交的代码,必须经过审核才能合入到正式的版本库中. 2.         注册步骤 (1)   ...

  10. 代码管理器 TFS2013

    多人开发代码管理器肯定是少不了的,出于项目需要在服务器上装了tfs2013用于代码管理,既然用vs进行开发自然选择微软自家的tfs.记录下安装和使用起来的过程. 安装 TFS2013(Team Fou ...