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) | 将字符串中指定的内容替换成另外的内容 |
近期评论