java 第11节 深入理解字符串

2016-06-29

1 字符串处理
求子串。 helloworld
String str="helloworld";
//5<= n <9
//str=str.substring(5,10);
str=str.substring(0,5);

package com.java1995;
/**
 * 求子串
 * @author Administrator
 *
 */
public class TestString {
    public static void main(String[] args){

        String str="helloworld";
        // 5<= n < 9
        //str=str.substring(5,10);
        str=str.substring(0,5);

        System.out.println(str);
    }

}

测试字符串是否相等。equals
Object equals:比较内存地址
String equals:比较内容
API 1.6

1,寄存器
2,栈
3,堆 * new
4,静态存储区
5,常量存储区 * final static String常量池
6,其他存储位置

package com.java1995;
/**
 * 判断字符串是否相等
 * @author Administrator
 *
 */
public class TestString2 {

    public static void main(String[] args){
        String s1="hello";//声明一个String类型的变量
        String s2="hello";//声明另一个内容相同的String类型变量

        String s3="hello"+"world";
        //比较内容
        System.out.println(s1.equals(s2));
        //比较内存地址 true
        System.out.println(s1 == s2);
        //比较内容
        System.out.println(s1.equals(s3));
        //比较内存地址
        System.out.println(s1 == s3);

        // 运行结果 true true false false
    }

}

package com.java1995;
/**
 * String常量池、堆内存
 * @author Administrator
 *
 */
public class TestString3 {

    public static void main(String[] args){

        //维护在常量池里面
        String a="hello";
        String b="hello";

        //new出来的所有对象都是在堆内存
        //只要是new出来的,都是新对象
        String c= new String("hello");
        String d= new String("hello");

        System.out.println(a==b);//true
        System.out.println(a==c);//false
        System.out.println(c==d);//false
    }

}

字符串编辑
字符串的内容不会变,改变的是引用
String a="hello";
a=a+"world";
System.out.println(a);

package com.java1995;
/**
 * 字符串编辑
 * @author Administrator
 *
 */
public class TestString4 {
    public static void main(String[] args){
        String a="hello";
        a=a+"world";

        int count=a.indexOf("world");
        System.out.println(a);
        System.out.println(count);
    }

}

2 字符串其他常用操作

【参考资料】

[1] Java轻松入门经典教程【完整版】

时间: 2024-08-02 10:54:07

java 第11节 深入理解字符串的相关文章

JAVA G1收集器 第11节

JAVA G1收集器 第11节 上两章我们讲了新生代和年老代的收集器,那么这一章的话我们就要讲一个收集范围涵盖整个堆的收集器——G1收集器. 先讲讲G1收集器的特点,他也是个多线程的收集器,能够充分利用多个CPU进行工作,收集方式也与CMS收集器类似,因此不会有太久的停顿. 虽然回收的范围是整个堆,但还是有分代回收的回收方式.在年轻代依然采用复制算法:年老代也同样采用“标记-清除-整理”算法.但是,新生代与老年代在堆内存中的布局就和以往的收集器有着很大的区别:G1将整个堆分成了一个个大小相等的独

Java基础11:Java泛型详解

Java基础11:Java泛型详解 泛型概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参). 泛型的本质是为了参数化类型(在不创建新的类型的

Java基础12:深入理解Class类和Object类

Java基础12:深入理解Class类和Object类 Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI. 这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建. 说白了就是: Class类也是类的一种,只是名字和class关键字高度相似.Java是大小写敏感的语言.

深入理解字符串

# 深入理解字符串 + 面试题 字符串介绍 字符串是程序开发当中,使用最频繁的类型之一,有着与基础类型相同的地位,甚至在 JVM(Java 虚拟机)编译的时候会对字符串做特殊的处理,比如拼加操作可能会被 JVM 直接合成为一个最终的字符串,从而到达高效运行的目的. 1 String 特性 String 是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新对象,再把引用指向该对象: String 对象赋值之后就会在常量池中缓存,如果下次创建会判定常量池是否已经有缓存对象,如

JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符

// Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * 这里需要注意 a++ 和 ++a 的区别,后面说; */ /* public class Javase{ public static void main(String[] args){ int a = 10; int b = 20; int c = 30; System.out.println( a

华为笔试练习题----解析9进制,11进制的字符串为10进制的数字输出

                                                                              解析9进制,11进制的字符串为10进制的数字输出 描述: 解析9进制,11进制的字符串为10进制的数字输出,输入的字符串有效位(0v0012345678)长度不超过8位,前面的00不算做有效位.解析后以10进制的数字输出.如果解析到非法字符串则返回-1 9进制: 9进制的数的范围:0,1,2,3,4,5,6,7,8 9进制的开始为:0V或者0

Java学习笔记之深入理解引用

引言:Java中数据传递的方式,除了基本数据类型是按照值传递,其它类型全部是按照引用传递,这和C++有很大区别,但是很多网上文章都解释的不清楚,甚至是错误的,在查阅资料之后,下面整理出一个比较容易理解的版本. 我们知道引用根据引用的类型不同有许多名称,如字符串引用,数组引用等等. 一.栈内存和堆内存 我们数组来引出和解释这两个概念. 数组引用变量只是一个引用,这个引用可以指向任何有效的内存. 简单的理解就是,这个引用是用来存放数据地址的(数据地址指向数据在内存中的存储位置),在声明引用变量的时候

【转】关于Java的Daemon线程的理解

原文地址:http://www.cnblogs.com/ChrisWang/archive/2009/11/28/1612815.html 关于Java的Daemon线程的理解 网上对Java的Daemon线程的说法很多,看的人头晕. 所以自己就来总结一下: Java语言自己可以创建两种进程“用户线程”和“守护线程” 用户线程:就是我们平时创建的普通线程. 守护线程:主要是用来服务用户线程. 那么如何来区分这两种线程呢? 其实在JDK的文档中已经说明的很清楚了: * The Java Virtu

初识JAVA,对servlet的理解

一.WEB开发的简单理解 Web开发是一个指代网页或网站编写过程的广义术语.网页使用 HTML.CSS 和 JavaScript编写.这些页面可能是类似于文档的简单文本和图形.页面也可以是交互式的,或显示变化的信息.编写交互式服务器页面略微复杂一些,但 却可以实现更丰富的网站.如今的大多数页面都是交互式的,并提供了购物车.动态可视化甚至复杂的社交网络等现代在线服务. 通俗的说,web开发就是我们说的做网站.它分为网页部分,和逻辑部分也就是我们说的前台与后台.前台负责与用户的交互,显示数据.用到H