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. Vulkan Tutorial 07 Window surface

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 到目前为止,我们了解到Vulkan是一个与平台特性无关联的API集合.它不能直接与窗 ...

  2. iOS 原生模块 给 Javascript(ReactNative) 发送事件 (通知监听)

    官方中文文档是这样描述的:   就给我们这几句话 就打发我们了. 按照上面的写法,根本不知道  - (void)calendarEventReminderReceived:(NSNotificatio ...

  3. void main(), int main() 和int main(void)的区别

    1.区别是main()函数是否有返回值.2.void定义的函数没有返回值,int定义的函数返回整型值.3.void,字面意思是"无类型",常用在程序编写中对定义函数的参数类型.返回 ...

  4. Python环境安装及基本概念

    1.安装Python ①官网下载Python包安装 ②添加环境变量(新版Python包可直接添加环境变量) 手动添加环境变量:控制面板-系统-高级系统设置-环境变量-编辑Path添加python安装目 ...

  5. C#码农的大数据之路 - HDP SandBox配置及VS连接.md

    在进行HDInsight的开发测试之前,搭建一个测试环境是很重要的. 由于微软与Hortonworks合作开发了HDInsgiht,如果不方便建立Azure账号使用Azure HDInsight进行开 ...

  6. #417 Div2 C

    #417 Div2 C 题意 给出 n 个货物的基础价格和钱 S ,每个货物的最终价格要加上 购买商品总数 * 商品在原来序列中的序号. 问最多能买多少件,且花费最小. 分析 二分购买商品数量,每次判 ...

  7. python str的一些方法

    在python有各种各样的string操作函数.在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专门的string的module,要使用string的方法 ...

  8. Scrapy中使用Django的Model访问数据库

    Scrapy中使用Django的Model进行数据库访问 当已存在Django项目的时候,直接引入Django的Model来使用比较简单 # 使用以下语句添加Django项目的目录到path impo ...

  9. 基于C#的接口自动化测试(二)

    Json多重数据处理方法II:jobj直接向后调用即可 ]["GoodsName"]; 用:分隔的字符串转字典: public static Dictionary<strin ...

  10. AS3批量替换文件

    在做项目时,经过会遇到资源替换问题.比如配音公司,提供了一批八九百个配音MP3文件,用到后面却发现有些配音不能正常使用.可能是十几个,也可能是一两百个.只能是配音公司重新提供.因为之前的配音资源,已经 ...