一、ASCII码
ASCII码 A 65 a 92 A - a=32 字符与十进制运算 底层二进制运算后转换为10进制
package com.clouds.demo07_Api;
public class ASCII {
public static void main(String[] args) {
//ASCII码 A 65 a 92 A - a=32
//字符与十进制运算 底层二进制运算后转换为10进制
char a = 'a';//97
char A = 'A';//65
char zero='0';
System.out.println(a + 1);
System.out.println(A - 10);
System.out.println(zero);
}
}
运行结果
98
55
0
二、Random类
随机数范围:不带参【0-1】 nextDouble() 带参【0---(n-1)】 nextInt(n)
//Random类
//随机数 nextDouble() 【0-1】 nextInt(n)【0---(n-1)】
//ctrl+左键查看实现方式
Random random =new Random();
double num1=random.nextDouble()*10+1;
//输出random地址
System.out.println(random);
System.out.println("随机数为"+num1);
double num2=random.nextInt(100);
System.out.println("随机数为"+num2);
运行结果
java.util.Random@677327b6
随机数为9.241376687432245
随机数为86.0
三、Scanner类
导包:import java.util.Scanner;
//输入Scanner类
Scanner scanner = new Scanner(System.in);
System.out.print("请输入:");
//ctrl+alt+v获取返回值类型
String str = scanner.next();
System.out.println("输入的是"+str);
运行结果:
请输入:123
输入的是123
四、String类中的equals方法
String类中的equals方法是重写Object的equals方法 boolean类型 比较字符串是否相等
equals前面的参数不能为空
扩展:==是比较两个对象的地址是否相同
实现自定义对象类的equals方法来比较对象是否相同需要重写equals方法
String str1="luojun";
String str2="luojun";
String str3="l";
//String类中的equals方法是重写Object的equals方法 boolean类型 比较字符串是否相等
//equals前面的参数不能为空
System.out.println(str1.equals(str2));
/*Object 父类中equals 比较两个对象的内存地址是否相同
public boolean equals(Object obj) {
return (this == obj);
}*/
//实现自定义对象类的equals方法来比较对象是否相同需要重写equals方法
Person p1 = new Person("joker luojun",11);
Person p2 = new Person("joker luojun",11);
//==是比较两个对象的地址是否相同
System.out.println(p1==p2);
System.out.println(p1.equals(p2));
}
Object 父类中equals 比较两个对象的内存地址是否相同,jdk8代码如下
public boolean equals(Object obj) {
return (this == obj);
}
String 对 Object 的equals重写,jdk8代码如下
public boolean equals(Object anObject) {
private final char value[];
//比较两个字符串的对象引用地址
if (this == anObject) {
return true;
}
//比较该类型是否为String类型的自身类、父类、Object类
if (anObject instanceof String) {
//将该类型强转为String类型
String anotherString = (String)anObject;
int n = value.length;
//先比较字符串的长度是否相同
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
//通过比较数组中存放的每一个字符的对比来比较是否相同
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
static class Person{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//实现自定义对象类的equals方法来比较对象是否相同需要重写equals方法
public boolean equals(Object obj) {
//比较两个对象的地址
if(this == obj){
return true;
}
//比较两个对象的类型
if(obj==null || this.getClass() != obj.getClass()){
return false;
}
//比较两个对象的属性值
Person p2 = (Person) obj;
return this.age==p2.age&& this.name.equals(p2.name);
}
/* public boolean equals(Object anObject) {
private final char value[];
//比较两个字符串的对象引用地址
if (this == anObject) {
return true;
}
//比较该类型是否为String类型的自身类、父类、Object类
if (anObject instanceof String) {
//将该类型强转为String类型
String anotherString = (String)anObject;
int n = value.length;
//先比较字符串的长度是否相同
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
//通过比较数组中存放的每一个字符的对比来比较是否相同
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}*/
}
运行结果:
true
false
true
五、完整代码及运行结果
package com.clouds.demo07_Api;
//API
//java.lang包不用导包
import java.util.Random;
import java.util.Scanner;
public class demo01_API {
public static void main(String[] args) {
//Random类
//随机数 nextDouble() 【0-1】 nextInt(n)【0---(n-1)】
//ctrl+左键查看实现方式
Random random =new Random();
double num1=random.nextDouble()*10+1;
//输出random地址
System.out.println(random);
System.out.println("随机数为"+num1);
double num2=random.nextInt(100);
System.out.println("随机数为"+num2);
//输入Scanner类
Scanner scanner = new Scanner(System.in);
System.out.print("请输入:");
//ctrl+alt+v获取返回值类型
String str = scanner.next();
System.out.println("输入的是"+str);
String str1="luojun";
String str2="luojun";
String str3="l";
//String类中的equals方法是重写Object的equals方法 boolean类型 比较字符串是否相等
//equals前面的参数不能为空
System.out.println(str1.equals(str2));
/*Object 父类中equals 比较两个对象的内存地址是否相同
public boolean equals(Object obj) {
return (this == obj);
}*/
//实现自定义对象类的equals方法来比较对象是否相同需要重写equals方法
Person p1 = new Person("joker luojun",11);
Person p2 = new Person("joker luojun",11);
//==是比较两个对象的地址是否相同
System.out.println(p1==p2);
System.out.println(p1.equals(p2));
}
static class Person{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//实现自定义对象类的equals方法来比较对象是否相同需要重写equals方法
public boolean equals(Object obj) {
//比较两个对象的地址
if(this == obj){
return true;
}
//比较两个对象的类型
if(obj==null || this.getClass() != obj.getClass()){
return false;
}
//比较两个对象的属性值
Person p2 = (Person) obj;
return this.age==p2.age&& this.name.equals(p2.name);
}
/* public boolean equals(Object anObject) {
private final char value[];
//比较两个字符串的对象引用地址
if (this == anObject) {
return true;
}
//比较该类型是否为String类型的自身类、父类、Object类
if (anObject instanceof String) {
//将该类型强转为String类型
String anotherString = (String)anObject;
int n = value.length;
//先比较字符串的长度是否相同
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
//通过比较数组中存放的每一个字符的对比来比较是否相同
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}*/
}
}
运行结果
java.util.Random@677327b6
随机数为9.241376687432245
随机数为86.0
请输入:123
输入的是123
true
false
true