DESKTOP-9EO7JOG_2020_12_1

一、变量的作用域和生命周期

1.作用域

作用域是变量的使用范围

​ 变量的作用域是指包含该变量的,离该变量最近的大括号

注:(1)for循环的循环变量只能在for循环体内部使用

​ (2)方法的形参只能在方法内部使用

否则超出作用域后提示异常

2.生命周期

变量的生命周期是指变量从分配内存到回收内存的过程。

二、字符与字符串

1.概念

字符是单引号引住的单个符号,例如 char ch='$';,字符在java中使用char类型表示。

字符串是字符的序列,在java中使用String类表示字符串。String类被定义在java.lang包中。

2.字符与字符串的区别

​ (1)字符类型:char 使用单引号

​ 字符串类型:String 使用双引号

​ (2)char类型为基本数据类型(原生)

​ String为引用数据类型

​ (3)char类型的变量中必须存储一个字符

​ String类型的变量中可以存放任意个数的字符

3.ASCII码

​ 美国信息交换标准代码。其中可以交换的字符一共128个,包括可见的字符(后96个)和不可见的字符(前32个)。

​ ASCII是字符型和整型之间的交换。

例:生成随机密码

三、字符串的两种使用方法(important!)

1.字面量:用双引号直接赋值的就是字面量。(推荐使用)

字面量在分配内存时,被分配在方法区,方法区中会独立出一块内存,专门用于存放字面量,java把单独存放字面量的内存称为字符串池。

String name1 = “aa”;

String name2 = ”aa”;

程序 运行时,第一行的值是aa,此时jvm就会问字符串池里面有字符串aa吗,如果没有,则让字符串池分配内存单元给字符串aa,当执行到第二行代码时,字符串的内容也是aa,此时jvm会问字符串池里面有字符串aa吗,如果有就直接使用已有的aa,而不是重新为aa分配内存。

例如

2.字符串对象:使用new的字符串

如果要判断两个字符串内容是否相等,应该使用equals方法。

如果要判断两个字符串对象是否指向到同一个内存单元,应该使用==。

关于==与equals(important!)

判断字符串是否相等,有两种方法,==与equals方法。

==是判断两个字符串变量的值是否相等

equals是判断两个字符串指向的内存单元中的内容是否相等。

关于equalsIgnoreCase方法

当判断字符串时要忽略字符串大小写用该方法。

四、String类的API

返回类型 方法名称 作用
boolean equals(String) 比较两个字符串是否相等
boolean equalsIgnoreCase(String) 忽略大小写比较两个字符串是否相等
int length() 获取字符串的长度
char charAt(int) 获取字符串中的一个字符
int indexOf(String) 判断传入字符串在原字符串中第一次出现的位置
int lastIndexOf(String) 判断传入字符串在原字符串中最后一次出现的位置
boolean startsWith(String) 判断原字符串是否以传入字符串开头
boolean endsWith(String) 判断原字符串是否以传入字符串结尾
int compareTo(String) 判断两个字符串的大小
String toLowerCase() 获取小写字符串
String toUpperCase() 获取大写字符串
String substring(int) 截取字符串,从传入参数位置开始截取到末尾
String substring(int,int) 截取字符串,从参数1位置开始截取到参数2位置
String trim() 去掉字符串首尾的空格
String[] split(String) 将原字符串按照传入参数分割为字符串数组
String replace(String,String) 将字符串中指定的内容替换成另外的内容

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1