首页 > 编程语言 >java第九课(object类,final关键字,String类)

java第九课(object类,final关键字,String类)

时间:2024-05-24 18:29:25浏览次数:16  
标签:java String object System 字符串 println public out

1.object类

在我们平时创建一个类的时候往往我们明明什么内容都没有写,但是他缺有很多的方法?其实我们所书写的所有类都默认继承了一个类,这个类就是Object类。

object类又叫万类之祖,因为在java中如果没有写继承的话,那么就默认这个类继承Object类,例如,以下定义完全相同。

class Person { }

class Person extends Object { }

使用Object可以接收所有对象。

public class cat {
    int legs=4;
    String fur="黄色";
    int eyes=2;
    public void run(){
        System.out.println("猫跑的飞快");
    }
    public void accompany(){
        System.out.println("猫能陪我好久");
    }

    public static void main(String[] args) {
       Object a =new cat();
    }
    
}

Object 类属于java.lang包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。

接下来将Object类常用的几个方法。

1.1tostring()

该方法用得比较多,一般子类都有覆盖,来获取对象的信息,在idea中可以使用快捷键alt和insert快速生成,直接调用生成的是元素的地址信息。

public class cat {
    int age=10;
    String s ="猫";

    @Override
    public String toString() {
        return "cat{" +
                "age=" + age +
                ", s='" + s + '\'' +
                '}';
    }

    public static void main(String[] args) {
        cat c =new cat();
        System.out.println(c.toString());
    }
}

1.2equals()

用来比较两个对象的内容是否相等。

1.3hashCode()

该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。对象的一个唯一值,用来快速定位内存地址

1.4finalize()

对象被JVM回收的一定会自动调用。当对象已满时自动调用。

2.final关键字

2.1修饰变量

final int num = 10;
num = 20;

这段代码是错误的当num被fianl修饰后,后面他的值就不能在被修改,否则就会报错。

2.2修饰方法

使用final修饰的方法表示该方法不能被子类重写。从写的话就会报错。

2.3修饰类

使用final修饰的类表示该类不能被继承。

总的来说,final关键字用来表示最终的、不可改变的内容,包括不可继承的类、不可重写的方法和不可修改的常量。

3.String类

3.1String类并不是基本数据类型

String 并不是基础的数据类型,而是一个引用类型。String 类属于引用数据类型,因为其实际上是一个对象,而不是原始数据。在 Java 中,字符串(String)是一种特殊的对象,可以通过使用双引号来创建字符串实例,而不需要使用 new 关键字。因此,在 Java 中,String 不是基础的数据类型,而是引用数据类型。基础的数据类型有double,long,float,Int,short,byte,char,boolean八种。

3.2String和StringBuilder的区别

String和Stringbuilder都是字符串处理的类,String 类是不可变的,意味着一旦创建了一个 String 对象,它的值就不能被修改。任何对 String 对象的操作都会创建一个新的 String 对象,而原始的 String 对象保持不变。

String b="1";

b="3";

第一次对b赋值1,此时b的地址为1,第二次为b赋值时,就会开辟新的空间,地址为1的空间的值还是1,第二次开辟的空间为2,给这个空间的值为2.

StringBuilder 类是可变的,可以通过调用方法来更改 StringBuilder 实例中的内容,而不会创建新的对象。这样可以提高效率,特别适用于需要频繁修改字符串的情况。

String类效率没有Stringbuilder高。

3.3String常用的几种方法

public static void main(String[] args) {
    String s= "wwww";
    System.out.println(s.hashCode());//对象的一个唯一值,用来快速定位内存地址
    System.out.println(s.equals("wwww"));//用来判断两个字符串是否相等
    String t=String.valueOf(1234);//将其他类型转换为String类型
    System.out.println(s);
    char[] arr={'a','b','c'};
    s=String.valueOf(arr,0,3);//将字符拼接成字符串
    System.out.println(s);
    System.out.println(s.toUpperCase());//字符串大写
    System.out.println(s.toLowerCase());//字符串小写
    System.out.println(s.toString());
    s+="       ";
    System.out.println(s.trim());//清除前后空格
    s="abcdefghijklmn";
    System.out.println(s.substring(3, 10));//字符串的截取
    System.out.println(s.lastIndexOf("e"));//字符串的查找
    s="abc.def.ghi";
    s.replace(".","*");
    System.out.println(s.replace(".","*"));//字符串的替换
    String[] a=s.split("b");//字符串的分割
    for (int i = 0; i < a.length; i++) {
        System.out.println(a[i]);
    }


}

这是这段代码的运行结果。

标签:java,String,object,System,字符串,println,public,out
From: https://blog.csdn.net/2302_78076476/article/details/139157152

相关文章

  • java 原生 log
    importjava.io.IOException;importjava.util.UUID;importjava.util.logging.*;publicclassLogDemo{publicstaticvoidmain(String[]args)throwsIOException{Loggerglobal=Logger.getGlobal();FileHandlerfileHandler=newFil......
  • DOM【事件、操作节点、DOM案例】--学习JavaEE的day49
    day49JS核心技术DOM继day48事件键盘事件监听器:onkeydown、onkeypress、onkeyup<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> </head> <body> <inputtype="text"......
  • Java面试进阶指南:高级知识点问答精粹(二)
    Java面试问题及答案1.什么是Java内存模型(JMM)?它在并发编程中扮演什么角色?答案:Java内存模型(JMM)是一个抽象的模型,它定义了Java程序中各种变量(线程共享变量)的访问规则,以及在并发环境下这些变量如何被不同线程所看到。JMM规定了主内存和工作内存的概念,以及它们之间的交互规......
  • Java面试进阶指南:高级知识点问答精粹(一)
    Java面试问题及答案1.什么是Java中的集合框架?它包含哪些主要接口?答案:Java集合框架是一个设计用来存储和操作大量数据的统一的架构。它提供了一套标准的接口和类,使得我们可以以一种统一的方式来处理数据集合。集合框架主要包含以下接口:Collection:最基本的集合接口,它是......
  • Java高级面试精粹:问题与解答集锦(二)
    Java面试问题及答案1.什么是Java内存模型(JMM)?它的作用是什么?答案:Java内存模型(JMM)定义了Java虚拟机(JVM)在计算机内存中的工作方式,包括程序计数器、Java堆、方法区、栈和本地方法栈等。JMM的主要作用是为编写线程安全的程序提供规范,确保在多线程环境下,不同线程对共享变量的......
  • 揭秘Java LinkedList:深度剖析、实战应用与设计灵感
    1.概述Java的LinkedList是java.util包下的一个类,它实现了List接口,并且提供了基于双向链表的数据结构。这意味着LinkedList中的元素可以按照它们的插入顺序进行有序的集合。由于其双向链表的特性,LinkedList在插入、删除元素时具有优秀的性能表现,而在访问元素时则相对较慢(尤......
  • Java高级面试精粹:问题与解答集锦(一)
    Java面试问题及答案1.什么是Java中的多态,它是如何实现的?答案:多态是Java中的一个核心概念,它允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。多态主要通过以下两种方式实现:重载(Overloading):当多个方法具有相同的名称,但参数列表不同时,......
  • 【JAVA系列】JAVA与C#中List分组、排序方法
    C#中List分组、排序、动态分组定义实体类publicclassStudent{publicstringName{get;set;}publicintAge{get;set;}publicstringGrade{get;set;}}按单个属性分组classProgram{staticvoidMain(){List<Stu......
  • Mask DINO: Towards A Unified Transformer-based Framework for Object Detection an
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!ProceedingsoftheIEEE/CVFConferenceonComputerVisionandPatternRecognition.2023. Abstract在本文中,我们提出了一个统一的对象检测和分割框架MaskDINO。MaskDINO通过添加一个支持所有图像分割任务(例如......
  • Java韩顺平满汉楼项目,带源码!!!
    文章目录满汉楼1、程序框架图2、前置工作:配置相应文件和创建mhl数据库3、需求说明4、界面设计(1)用户登录(2)二级菜单1、显示餐桌状态2、预定餐桌3、显示所有菜品4、点餐服务5、查看账单6、结账9、退出满汉楼5、具体代码(1)先设计界面(2)进行用户登录判断功能实现第一步:在mysql......