当前位置: 首页 > news >正文

java基础:常见类和对象

1.常见类和对象:

java.lang.Object类,Java中的每个类都直接或间接地继承自Object类,如果没有明确指定一个类继承另一个类,那么它的默认父类就是Object类;

例如多态:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       Object obj = new Person();
    }
}
class Person{

}

2.toString方法,他是Object类中的一个方法,作用是返回对象的字符串表示形式,一般形式为类名@哈希码的十六进制表示;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       Object obj = new Person();
       String s = obj.toString();
        System.out.println(s);
    }
}
class Person{

}

注意:由于toString默认返回对象的地址,所以为了直观理解对象的内容,我们可以重写这个方法;

3.hashCode()方法:获取类的内存地址

默认情况下,hashCode方法返回的是对象的内存地址经过哈希运算后的整数值;

注意:当重写equals方法时,必须重写hashCode方法,以保证相等的对象具有相同的哈希码;

重写hashCode方法时,应该尽量让不相等的对象产生不同的哈希码,以提高性能;

4.equals方法:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       Object obj = new Person();
        System.out.println(obj.equals(new Person()));
    }
}
class Person{

}

判断两个对象是否相等,如果相等返回true,如果不相等返回false

它比较对象时,默认比较的就是内存地址;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       Object obj = new Person();
       Person otherperson = new Person();
        System.out.println(obj.hashCode());
        System.out.println(otherperson.hashCode());
        System.out.println(obj.equals(otherperson));
    }
}
class Person{

}

返回为false;

同时equals方法还对应了一个equalsIgnoreCase方法:

意思是在比较过程中忽略大小写;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String a = "a";
        String b = "A";
        System.out.println(a.equalsIgnoreCase(b));

    }
}

返回结果为true;

5.数组:

声明方法:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       String[] names = new String[3];
    }
}

类型+【】+ 变量名 = new 类型【数组大小】

添加数据:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       String[] names = new String[3];
       names[0] = "zhangsan";
       names[1] = "lisi";
       
    }
}

如果重复给相同的索引添加数据,那么等同于修改数据;

还有其他的添加数据方法:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       String[] names = {"zhangsan", "lisi"};
    }
}

6.数组的方法:length方法;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       String[] names = {"zhangsan", "lisi"};
        System.out.println(names.length);
    }
}

数组的数据结构实际上是这样的:

7.二维数组:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
       String[][] names = {{"zhangsan"}, {"lisi"}, {"wangwu"}};
       
    }
}

标准的定义形式:

public class java_3_29 {
    public static void main(String[] args) {
        String[][] names = new String[3][3];
        
    }
}

8.使用二维数组输出九层妖塔:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        int row = 9;  //定义行
        int col = 2 * row - 1;  //定义一列有多少个*;
        String[][] nineTower = new String[row][col];  //创建一个二维数组;
        for (int i = 0; i < row; i++){  //对一行循环;
            for(int j = 0; j < col; j++){   //对一列循环;
                if (j >= (row - 1) - i && j <= (row - 1) + i){  //从中间向两侧顺延同时满                                   
                    nineTower[i][j] = "*";                      //条件则赋值*
                }
                else {
                    nineTower[i][j] = " ";    //其他空间给空格
                }
            }
        }
        for (int i = 0; i < row; i++){
            for (int j = 0; j< col; j++){
                System.out.print(nineTower[i][j]);  //打印操作,每个数据不换行,然后打印完
            }                                       //一行之后换行;
            System.out.println();
        }
    }
}

9.字符串的拼接:可以用+号进行操作,但必须保证加号的一端是字符串,只要一个对象是字符串,那默认把另一个对象转换为字符串进行拼接;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "a" + "b";
        String s1 = "ab";
        System.out.println(s.hashCode());
        System.out.println(s1.hashCode());

    }
}

结果一样:因为内容一样,地址一样;

9.concat方法:是String的一个实例方法,它用于将指定的字符串连接到当前字符串的末尾,并返回一个新的字符串对象,原字符串对象不会被改变;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s1 = "ab";
        System.out.println(s1.concat("abc"));

    }
}

10.compareTo方法:

用于比较两个对象的值,Integer中是比较值大小,String中是比较在字典中的顺序(unicode值);

返回值为一个整数,相等则返回0,调用对象大于参数则返回正数,小于则返回负数;

11.字符串的截断操作:截断字符串的操作:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world";
        String s1 = s.substring(0, 3);
        System.out.println(s1);
    }
}

结果为hel,第一个参数为起始位置索引(包含),第二个参数为结束位置索引(不包含);

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world";
        String s1 = s.substring(0, 3);
        System.out.println(s1);
        System.out.println(s.substring(0, "hello".length()));
        System.out.println(s.substring(6, s.length()));
        System.out.println(s.substring(6));
    }
}

如果只传一个值,那么就截取起始位置之后的所有;

12.分解字符串:split方法:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world";
        String[] s1 = s.split(" ");
        System.out.println(s1[0]);
        }
    }

意思是按照空格为界分割字符串,并存在字符数组中;

13.空格清除:trim方法
package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "    hello world ";
        String s1 = s.trim();
        System.out.println(s1);
        }
    }
14.字符串的替换:replace方法:返回一个字符串;
package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world";
        String s1 = s.replace("world", "java");
        System.out.println(s1);
    }
}

15.大小写转换:toLowerCase();(转为小写);

toUpperCase(转为大写);

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "Hello World";
        System.out.println(s.toLowerCase());
        System.out.println(s.toUpperCase());
    }
}

16.charAt方法,根据索引值找到指定位置字符;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world";
        System.out.println(s.charAt(0));
    }
}

17.indexof方法:用于获取数据在字符串中第一次出现的位置;

对应的还有数据在最后一次出现的位置:lastIndexof

返回索引值;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world hello";
        System.out.println(s.indexOf("hello"));
        System.out.println(s.lastIndexOf("hello"));
    }
}

18.contains方法,检查是否包含指定的字符串,返回布尔类型;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world hello";
        System.out.println(s.contains("world"));

    }
}

19.判断字符串是否以指定的数据开头,返回布尔类型:startwith方法

对应的还有:endwith方法;

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        String s = "hello world hello";
        System.out.println(s.startsWith("hello"));

    }
}

20.判断是否为空:isEmpty方法:

21.包装类:

Byte Short Interger Long Float Double Character Boolean

转换模版:

自动装箱:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        int i = 10;
        Integer i1 = i;  //等价于:Integer i1 = Integer.valueOf(i);
        
    }
}

自动拆箱:

package java_jichu;

public class java_3_29 {
    public static void main(String[] args) {
        int i = 10;
        Integer i1 = Integer.valueOf(i);
        int i2 = i1;  //等价于: int i2 = i1. intvalue();

    }
}

http://www.dtcms.com/a/98824.html

相关文章:

  • 游戏被外挂攻破?金融数据遭篡改?AI反作弊系统实战方案(代码+详细步骤)
  • Linux|gitlab|二进制快速安装部署gitlab-ce教程
  • 19_20 js es6
  • std::countr_zero
  • 模型苏醒计划:Threejs 让静态模型「叛逆」起来
  • Java.util.logging (JUL) 终极指南:从基础配置到高级玩法
  • 外观模式_结构型_GOF23
  • 游戏引擎学习第192天
  • 第三卷:覆舟山决战(73-108回)正反人物群像
  • 习题1.43
  • 软件工程面试题(十一)
  • 【数据结构】队列
  • el-radio-group 中 el-radio-button value未能绑定上数值数据
  • 欢乐力扣:合并两个有序链表
  • Redis6数据结构之List类型
  • 25_闭包节流防抖
  • Gateway实战(三)、断言-时间、Cookie信息
  • 从零开始研发GPS接收机连载——16、接收天上卫星信号成功定位
  • Python之变量与数据类型总结
  • Linux C语言调用第三方库,第三方库如何编译安装
  • Android 12系统源码_输入系统(四)触摸异常问题排查
  • nginx 设置隐藏版本号
  • 【LangChain入门 9 Agent 】LangChain开发Agent智能体
  • 当模板方法模式遇上工厂模式:一道优雅的烹饪架构设计
  • 【Qt】ffmpeg编码—存储(H264)
  • 链路聚合技术
  • 基于Spring Boot的戒烟网站的设计与实现(LW+源码+讲解)
  • 每日OJ题_剑指offer数组篇(剑指offer04+剑指offer11+剑指offer21)
  • 深度学习 Deep Learning 第12章 深度学习的主流应用
  • python之kafka组件