java入门篇4 --- 引用类型

1.String字符串

我们常用的字符串属于引用类型,它可以包含0至n个字符,String使用双引号,字符串的拼接也可以使用+

public class HelloWorld {    public static void main(String[] args) {        String s = "我爱中国";        String s1 = "i " + "love " + "china";        String s2 = null;        // String s3;  // Error:(9, 28) java: 可能尚未初始化变量s3        System.out.println(s);  // 我爱中国        System.out.println(s2);  // null        System.out.println(s1);  // i love china    }}

字符串不可变,如果进行重新赋值,那么变量就会指向新的内存

对于字符串来讲,可以将将其赋予null,注意null跟“”不一样,后者是变量指向“”这个字符串,另外,如果字符串不进行赋值就调用,就会报错

字符串也有内部命令可以进行拼接字符串,格式化字符串,例如:

public class HelloWorld {
    public static void main(String[] args) {
        String s = "我爱".concat("中国");
        System.out.println(s);  // 我爱中国
        String x = String.format("%s爱中国%d年", "我", 100);
        System.out.println(x);  // 我爱中国100年
    }
}

对于字符串的操作,先讲数组再将

2.数组

定义一个数组使用:类型[],这个跟go是相反的,不要搞混了,数组有两个特点:

数组初始化未赋值状态下,里面所有的值都是空值

数组的大小一旦定义,就不可变,例如 int[] x = new int[5],这个数组的大小就是5。

public class HelloWorld {
    public static void main(String[] args) {
        int[] n = new int[5];
        String[] m = new String[5];
        System.out.println(n);  // [[email protected]
        System.out.println(n[0]);  // 0
        System.out.println(m);  // [Ljava.lang.String;@77459877
        System.out.println(m[0]);  // null
        n[1] = 5;
        m[4] = "a";
        System.out.println(n);  // [[email protected]
        System.out.println(n[1]); // 5
        System.out.println(m); // [Ljava.lang.String;@77459877
        System.out.println(m[4]);  // a
        int[] x = new int[]{1, 2, 3, 4, 5};  // 这种写法不用声明数组长度,由编译器自行推断出
        System.out.println(x);  // [[email protected]
        System.out.println(x[1]);  // 2
        x[1] = 100;
        System.out.println(x);  // [[email protected]
        System.out.println(x[1]);  // 100
    }
}

从上述可以看出,打印出来的数字是地址,对数组内容进行更改,数组地址不会发生辩护,因此可以判定,数组没有发生变化,数组中的元素指向了不同的内存

3.字符串操作

下面引用了部分字符串操作

public class HelloWorld {
    public static void main(String[] args) {
        char[] s = new char[]{‘我‘, ‘爱‘, ‘中‘, ‘国‘, ‘爱‘};
        String x = new String(s);
        System.out.println(x);  //我爱中国爱
        System.out.println(x.compareTo("我爱中国"));  //1  把这个字符串和另一个对象比较。
        System.out.println(x.compareTo("我爱中国爱"));  //0  把这个字符串和另一个对象比较。0代表完全一致
        System.out.println(x.split(""));  //[Ljava.lang.String;@38af3868  根据给定正则表达式的匹配拆分此字符串。
        System.out.println(x.split("")[0]);  //我 根据给定正则表达式的匹配拆分此字符串。
        System.out.println(x.replace(‘爱‘, ‘你‘));  //我你中国你  返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
        System.out.println(x.replaceFirst("爱", "love"));  //我love中国爱   使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。。
        System.out.println(x.length());  //5  返回长度
        System.out.println(x.charAt(1));  // 爱  返回指定索引处的 char 值。
        System.out.println(x.contains("我"));  // true  是否包含指定指定字符串
        System.out.println(x.endsWith("爱"));  // true  是否以某字符串结尾
        System.out.println(x.indexOf(1));  // -1   返回指定子字符串在此字符串中第一次出现处的索引。-1代表没找到
        System.out.println(x.indexOf("爱"));  // 1   返回指定子字符串在此字符串中第一次出现处的索引。
        System.out.println(x.indexOf("我", 2));  // -1  判断index的位置是否是指定字符串

        String n = " n  N  ";
        System.out.println(n);  // " n  N  "
        System.out.println(n.trim());  // "n  N"  去掉前后的空白
        System.out.println(n.toUpperCase());  // " N  N  "  所有字母大写
        System.out.println(n.toLowerCase());  // " n  n  "  所有字母小写
    }
}

数组操作会放在流程控制里面讲。

原文地址:https://www.cnblogs.com/yangshixiong/p/12157908.html

时间: 2024-11-09 09:20:28

java入门篇4 --- 引用类型的相关文章

java入门篇3 --- 基本数据类型的运算

一.整数 1.运算 java的整数运算遵从基本的四则运算,不再赘述 下面说一下整数的除法得到的结果永远是精确的,也就是除不尽就给你取整,我记得python2的int类型会保留小数,python3之后也只保留整数 另外取余也是使用%,除法如果除数是0,运行时会报错. 注意,整数有范围,如果超出最大的会溢出,感觉像是又重新走了一个循环.请根据需要使用整型的类型,如果数值大于int范围,可以使用long 另外java也支持n++, n+=1语法糖 public class HelloWorld { p

java入门篇11 --- 集合

无论什么语言,集合应当是我们最常用的一种类型啦,大体上分为有序列表.map.sey.队列 首先先来看一下有序列表, List内部跟数组一样也是按照先后顺序排放的,但对于增删,非常方便,list的实现大多是使用ArrayList实现的,先来看一下List的源码,这里面有一个<E>,这个就是泛型,java是面向对象语言,他在运行期间,才会将我们的类进行初始化,因此,就利用这一特性,我们输入指定的引用类型,注意必须是引用类型,基本类型不是类,JVM在编译是,会把它当作object,然后再运行期间就会

java入门篇10 --- 注解

从JVM的角度看,注解本身对代码逻辑没有任何影响,如何使用注解完全由工具决定. Java的注解可以分为三类: 第一类是由编译器使用的注解,例如: @Override:让编译器检查该方法是否正确地实现了覆写: @SuppressWarnings:告诉编译器忽略此处代码产生的警告. 这类注解不会被编译进入.class文件,它们在编译后就被编译器扔掉了. 第二类是由工具处理.class文件使用的注解,比如有些工具会在加载class的时候,对class做动态修改,实现一些特殊的功能.这类注解会被编译进入

java入门篇12 --- IO操作

在jiava中InputStream跟OutputStream分别代表输入流跟输出流,接下来来看一下IO的相关操作 首先来看一下如何操作文件 import java.io.File; import java.io.FilenameFilter; import java.nio.file.Path; import java.nio.file.Paths; public class HelloWorld { public static void main(String[] args) throws

Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can&#39;t find referenced pointcut XXX

一.问题描述及原因. 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX.一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配. org.springframework.beans.factory.BeanCreationException: Error creating bean with n

热烈庆祝【深入浅出Java虚拟机——入门篇】培训课程在51CTO上线了

我的视频[深入浅出Java虚拟机--入门篇]在51CTO学院上线了. 想了解的可以点击: http://edu.51cto.com/course/course_id-1952.html 课程框架如下: 1.jvm概述 2.java规范和JVM规范简述 3.生活中的数字在计算机中的表示 4.jvm内存划分 5.jvm内存模型 6.jvm调试跟踪参数 7.jvm内存控制上 8.jvm内存控制下 9.jvm中class的装载过程 10.jvm中classloader的设计模式 11.jvm中有关cla

Java工程师学习指南(入门篇)

Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线. 所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程.今天我们要讲的是,

《Java从入门到放弃》入门篇:springMVC数据校验

昨天我们扯完了数据传递,今天我们来聊聊数据校验的问题.来,跟着我一起读:计一噢叫,一按艳. 在springMVC中校验数据也非常简单,spring3.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. Spring的DataBinder在进行数据绑定时,会同时调用校验框架完成数据校验工作. 具体使用步骤如下: 1)导入数据校验的JAR包 2)在springmvc的配置文件中添加校验Bean 3)修改实体类,在属性上加上校验的注解 4)修改昨天的login4方法,加上校验的相关代码

《Java从入门到放弃》入门篇:hibernate中的多表对应关系

hibernate中的对应关系其实就是数据库中表的对应关系, 就跟某些电影中的某些场景是一样一样滴. 比如可以是一男一女,还可以是一男多女, 更可以是多男一女,最后最后最后还可以是多男多女!!! 有些不纯洁的看官肯定已经开始想歪了吧···,我还是上图吧!请看下图 我说滴是这样滴一群人打群架滴场景,嘿嘿嘿··· 好吧,进入正题!!! 数据库中表与表之间的数据映射关系有一对一,一对多,多对一,多对多.例如: 一个身份证只能对应一个护照,一个护照也只能对应一个身份证,这就是一对一的关系 一个男人可以有