文章目录
- API
- 字符串
- String
- 概述
- 创建对象
- java的内存模型
- java的常用方法(比较)
- 练习
API
概念: APl(Application ProgrammingInterface): 应用程序编程接口
简单理解: API就是别人已经写好的东西,我们不需要自己编写,直接使用即可。
Java API: 指的就是JDK 中提供的各种功能的java类
这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可
API帮助文档: 帮助开发人员更好的使用API和查询API的一个工具。
字符串
String
概述
java.lang.String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都为此类的对象。
注意点: 字符串的内容是不会发生改变的,它的对象在创建后不能被更改。
总结:
1.String是Java定义好的一个类。定义在java.lang 包中
所以使用的时候不需要导包。
2.Java 程序中的所有字符串文字(例如“三连投币”)都被实为此类的对象。
3.字符串不可变,它们的值在创建后不能被更改
创建对象
- 直接赋值
String name = “宫水三叶”; - new + 构造方法
package String;public class StringDemo1 {public static void main(String[] args) {//直接赋值的方法获得一个字符串String s1 = "Hello World";System.out.println(s1);//使用new 的方式来获取字符串的对象//空参String s2 = new String();System.out.println("@" + s2 + "!");//传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象String s3 = new String("Hello World");System.out.println(s3);//传递一个字符数组,再根据字符数组的内容创建一个字符串对象//需求:将ABC 改为BBC//ABC ---> {'A','B','C'} ---> {'B','B','C'}char [] chs = {'A','B','C','D','E','F','G','H'};String s4 = new String(chs);System.out.println(s4);//传递一个字节数组,根据字节数组的内容再创建一个字符串对象//应用场景:以后在网络中传输的其实是字节信息//我们一般要把字节信息进行转换,转换成字符串,用到这个构造byte [] bytes = { 97, 98, 99, 100};String s5 = new String(bytes);System.out.println(s5);}
}
java的内存模型
注意:StringTable(串池)在JDK7版本开始从方法区中挪到了堆内存
当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在,不存在:创建新的存在:复用
举例:
只要是new出来的新的变量都会在堆内存开辟一个新的位置出来
java的常用方法(比较)
==号比的到底是什么?
package String;public class StringDemo2 {public static void main(String[] args) {//创建一个字符串对象String s1 = new String("abc");String s2 = "Abc";//==号的比较//基本数据类型比较的是数据值//引用数据类型比较的是地址值System.out.println(s1==s2);//比较字符串对象中的内容是否相等boolean result = s1.equals(s2);System.out.println(result);//比较字符串中内容是否相等,忽略大小写//忽略大小写只能忽略英文的大小写boolean result2 = s1.equalsIgnoreCase("abc");System.out.println(result2);}
}
练习
代码呈现
package String;import java.util.Scanner;public class StringDemo4 {public static void main(String[] args) {//定义两个变量记录正确的用户名和密码String rightUsername = "youzi";String rightPassword = "123456";//键盘录入用户名和密码Scanner sc = new Scanner(System.in);for (int i = 0; i < 3; i++) {System.out.println("请输入用户名: ");String username = sc.next();System.out.println("请输入密码");String password = sc.next();//比较if (username.equals(rightUsername) && password.equals(rightPassword)) {System.out.println("用户登录成功");break;} else {if (i == 2) {System.out.println("您的账户已被锁定,解锁请联系工作人员");} else {System.out.println("用户登录失败,用户名或密码错误,还剩下" + (2 - i) + "次机会");}}}}
}
运行结果