Java基础11 jar打包导包 API 生成帮助文档 String类 equals()与==区别

将项目进行打包(jar)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、在项目中引入jar

step01 在项目中新建文件夹lib
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、在项目中删除依赖

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、API

4.1
1.概念:API:应用程序接口编程 主要就是提供一些类与接口方法的使用
2.作用: jdk提供一些常用方法以及类的使用 简化开发的流程
理解:就是一些方法的详细说明,需要使用什么方法时可以先百度,在用API搜索了解

4.2 api使用方法
在这里插入图片描述
在这里插入图片描述4.3注意事项
A.查看类需要关注类的描述
B.类是否有构造方法 是否可以实例化对象
C.查看类的普通的方法 方法是描述 以及方法参数以及方法返回值
D.查看类中的静态方法 static 静态方法直接可以通过类名来进行调用

4.4 生成帮助文档
1.帮助文档的常用注解
@version 版本
@author 作者
@since 描述
@param 方法的参数
@return 方法的返回值
2.生成帮助文档
在这里插入图片描述
在这里插入图片描述

五、Object

1.概念:类 Object 是类层次结构的根类。每个类都使用 Object 作为父类。所有对象(包括数组)都实现这个类的方法
所有类的直接父类间接父类就是Object类
所有类都可以使用Object类中方法

2.构造方法
public Object()
作用: A.用于来实例化对象 B.用于子类来进行调用

六、toString

在这里插入图片描述
1.toString 默认返回的就是对象的地址值
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
2.解释:
getClass().getName() == >表示的是完整包名+类名
@ == >没有特殊的含义 就是一个连接的符号
hashCode()== >根据对象的地址值生成的hashCode()值
Integer.toHexString()==>以十六进制的形式来进行表示
3.如果自定义类 调用toString() 方法返回对象的地址值 没有实际的意义 一般需要进行重写
4.重写的规则:返回对象的属性值 快捷键 alt +insert
5.注意点:一个类直接打印对象名 默认都会调用toString方法 如果没有重写toString() 则调用父类的toString()

七、equals()

在这里插入图片描述
1.equals() 用于比较两个对象是否相等
对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true
两个对象的地址值是一样则返回true 两个栈内存的引用指定同一一个堆内存
2.自定义 默认使用equals()方法的比较规则 没有实际的意义 所有需要进行重写
3.重写规则:对象的属性值一样 表示是同一个对象 快捷键 alt +insert
4. equals() 与 ==比较
相同点: equals() 与 == 都可以用于来做比较
不同点:
A.equals()只能比较引用数据类型 == 既可以比较引用数据类型 又可以比较基本数据类型
B.equals() 比较引用数据类型 没有重写之前 比较的是两个对象的地址值 重写之后比较对象的属性值
== 比较基本数据类型 比较的是数值 比较引用数据类型比较的也是地址值

一般字符串用equals,基本类型用==

@Override
public boolean equals(Object o) {
if (this == o) return true; //两个对象的地址值的一样
if (o == null || getClass() != o.getClass()) return false; //两个对象 有
空的对象 或者 不是同一个包下
Person person = (Person) o;
return pid == person.pid &&
Objects.equals(pname, person.pname);
}
@Override
public int hashCode() {
return Objects.hash(pid, pname);
}
@Override
public String toString() {
return "Person{" +
"pid=" + pid +
", pname='" + pname + '\'' +
'}';
}

重写public boolean equals传入的参数是Object类型的对象,使用了自动向上转型,在方法中需要在强制向下转型,才能调用子类方法
判断过程 先比较地址值,一样返回true,不一样在比较类名,类名不一样返回false,类名一样在最后比较属性值

package com.qf.demo03;
public class Test {
public static void main(String[] args) {
Person p1 = new Person(1001,"张三");
Person p2 = new Person(1002,"李四");
Person p3 = new Person(1001,"张三");
// Person p2 =p1;
//System.out.println(p1.equals(p2));
System.out.println(p1.equals(p3));
System.out.println(p2.equals(p3));
}
}

八、String

8.1.
1.概念: String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现
2.字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
因为 String 对象是不可变的,所以可以共享
3.String 不能改变是地址值 可以改变的缓冲区的内容
4.所有的字符串字面值 都是存在堆内存中字符串常量池中"abc" “def” new 字符串 都是存在堆内存中
5.字符串的是先转换为字符数组 再将字符数组 转换为字节 是以字节数据来进行存储 “abc” ==>97 98 99
8.2构造方法(3+1)
在这里插入图片描述

package com.qf.demo04;
public class Test {
public static void main(String[] args) {
//字符值
String s = "abc";
System.out.println(s);
//空的构造
String s1 = new String();
System.out.println(s1);
byte[] b ={97,98,99};
String s2 = new String(b);
System.out.println(s2);
//指定字节长度内容转换
String s3 = new String(b,0,b.length-1);
System.out.println(s3);
char [] ch ={'a','b','c'};
String s4 = new String(ch);
System.out.println(s4);
String s5 = new String(ch,0,ch.length-1);
System.out.println(s5);
}
}

char [] ch ={‘a’,‘b’,‘c’};
String s4 = new String(ch);
字符数组转为字符串也可用 String.valueOf(数组名)
8.3判断性方法
注意 都常用

在这里插入图片描述

package com.qf.demo04;
public class Test01 {
public static void main(String[] args) {
String s ="李颖焕";
System.out.println(s.contains("颖"));
System.out.println(s.contains("国"));
System.out.println(s.startsWith("李"));
System.out.println(s.startsWith("王"));
System.out.println(s.endsWith("焕"));
System.out.println(s.endsWith("华"));
System.out.println("abc".equals("abc"));
System.out.println("abc".equals("abd"));
System.out.println("ABCde".equalsIgnoreCase("abcde"));
String s1="";
System.out.println(s1.length());
//判断是否为空
System.out.println(s1.isEmpty());
}
}

8.5得到性方法
常用:charAt得到char类型 substring()包头不包尾得到String类型,intdexOf可以配合substring作为其参数使用
在这里插入图片描述
8.6 转化性方法
常用 toCharArray toLowerCase toUpperCase String.valueOf split
在这里插入图片描述

九 字符串比较

1.字符串是引用数据类型
== 字符串比较是地址值
equals() 字符串方法重写了 比较的是内容是否相同

2.字符串如果需要多次进行修改 不建议使用String类型来存储 对内存消耗比较大

package com.qf.demo04;
public class Test08 {
public static void main(String[] args) {
String s1="abc";
String s2="abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s1==s2); //true
System.out.println(s1==s3); //false
System.out.println(s3==s4); //false
System.out.println("================");
System.out.println(s1.equals(s2)); //true
System.out.println(s1.equals(s3)); //true
System.out.println(s3.equals(s4)); //true
}
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值