zoukankan      html  css  js  c++  java
  • Java面向对象-- String 类

    1,实例化String对象 ,

    有两种方式,我们直接看代码:

    package com.java1234.chap03.sec08;
     
    public class Demo1 {
     
        public static void main(String[] args) {
            // 实例化String的方式一
            String name1="张三";
            System.out.println("name1="+name1);
             
            // 实例化String的方式二
            String name2=new String("李四");
            System.out.println("name2="+name2);
        }
    }

    运行输出:

    name1=张三

    name2=李四

    2,“==”VS“equals方法”

    “==” 比较的是引用(是否指向同一个内存块)  “equals”比较的是具体内容

    
    
    package com.java1234.chap03.sec08;
     
    public class Demo2 {
     
        public static void main(String[] args) {
            String name1="张三";  // 直接赋值方式
            String name2=new String("张三"); // new方式
            String name3=name2; // 传递引用
             
            // ==比较的是引用
            System.out.println("name1==name2:"+(name1==name2));
            System.out.println("name1==name3:"+(name1==name3));
            System.out.println("name2==name3:"+(name2==name3));
             
            // equals比较的是具体内容
            System.out.println("name1.equals(name2):"+(name1.equals(name2)));
            System.out.println("name1.equals(name3:"+(name1.equals(name3)));
            System.out.println("name2.equals(name3):"+(name2.equals(name3)));
        }
    }

    运行输出:

    name1==name2:false

    name1==name3:false

    name2==name3:true

    name1.equals(name2):true

    name1.equals(name3:true

    name2.equals(name3):true

     

    3,String两种实例化方式的区别

    直接赋值方式,创建的对象存放到字符串对象池里,假如存在的,就不会再创建;

    new对象方式,每次都创建一个新的对象;

    package com.java1234.chap03.sec08;
     
    public class Demo3 {
     
        public static void main(String[] args) {
            String name1="张三";
            String name2="张三";
            String name3=new String("张三");
            String name4=new String("张三");
             
            System.out.println("name1==name2:"+(name1==name2));
            System.out.println("name1==name3:"+(name1==name3));
            System.out.println("name3==name4:"+(name3==name4));
        }
         
    }

    运行输出:

    name1==name2:true

    name1==name3:false

    name3==name4:false

     

     

    4,字符串的内容不可变性

    字符串的特性:不能改变字符串的内容;

    要想改变,只能通过指向一个新的内存地址;

    package com.java1234.chap03.sec08;
     
    public class Demo4 {
     
        public static void main(String[] args) {
            String name="张";
            name+="三";
            System.out.println(name);
        }
    }

  • 相关阅读:
    使用ROS开源代码和激光雷达进行小车的定位导航——里程计信息的计算
    ROS常用快捷键、基本命令
    机器人关节空间轨迹规划--S型速度规划
    机器人单关节力矩控制(前馈+反馈)
    基于 Mathematica 的机器人仿真环境(机械臂篇)
    ROS2入门教程-windows安装ROS2
    复现一篇深度强化学习论文之前请先看了这篇文章!
    Q学习使用ROS和Gazebo的turtlebot的迷宫导航
    turtlebot2+ROS kinetic+笔记本安装配置(测试成功版)
    视觉机器人+人体姿态识别项目总结
  • 原文地址:https://www.cnblogs.com/xyg-zyx/p/9824373.html
Copyright © 2011-2022 走看看