• JAVASE第十五天


    Junit单元测试:    


    java的jar包:
        代码的打的特定的压缩包


    Object类:
        Object类是java中所有类父类
        java.lang.Object
        
        public final native Class getClass();    // 获取类的字节码文件
        
        public native int hashCode();            // 获取对象的hashcode

        equals()                // 比较对象,默认使用== 比较内存地址

        
        

    native关键字
        被它修饰的方法,叫做本地方法
        都是没有实现体。
        JVM在底层使用C/C++实现。
        

    引用传递和对象拷贝:

        引用传递:将栈引用进行复制,堆中的对象始终是一个

        对象拷贝:堆对象会进行复制

        在java中,如果需要拷贝对象,一定要去该类实现Cloneable接口

    对象的深浅拷贝:

    浅拷贝:将对象的第一层完成拷贝,是的两个对象完成了基本的分离
        有可能还存在着藕断丝连

        优点:内存占有较少
        缺点:如果存在底对象,则子对象没有拷贝,还是指向同一个。

    深拷贝:
        将两个对象完成分离,彼此之间将无任何关系。
        递归拷贝

    java实现深拷贝有两种方法。
        1、所有相关对象都是实现浅拷贝
        2、通过序列化对象实现深拷贝
            对象 <==> 字节数据  
            对象 <==> 字符串数据(如JSON)  
            
        


        toString()            // 打印对象时调用
        notify()
        notifyAll()
        wait()                // 存在三个重载

        finalize()            // 该方法在GC触发前,会自动触发
                        // 在当前对象被GC前,会自动触发
                        // 适合于做一些垃圾回收前的各种工作

    面试题,这三种的区别和联系:
        final
        finally
        finalize()    在jdk9之后过时了


    String类:
        字符串类Java的底层实现的类,final修饰安全考虑
        字符串本质是一个常量。

        字符串缓冲池:字符串常量池

    面试题:java中字符串常量池在什么地方?

        jdk7之前,字符串常量池在方法区
        jdk7之后,字符串常量池被设计到了堆内存中

        
        String s = "Jack";        // 这种方式创建字符串
        String ss = new String("Jack");    // 


    字符串拼接问题:
        字符串拼接时,如何判断拼接后的结果是否相等(==)
            |-- 常量始终是常量
            |-- 编译时,如果结果确定,则会相等??

        
        因为字符串是常量,字符串在大量拼接,容易产生垃圾数据。

        字符串是一种常量,一旦产生一个字符,如果常量池中,不存在这个字符串
        ,则会将这个字符串保存常量池(永久性、系统退出)

        因此在开发过程中,一定注意,不要大量拼接字符串,以避免产生大量无用的字符串
        消耗内存


    StringBuffer和StringBuilder
        这两个对象都是jdk底层提供用来拼接大量字符串从对象,
        不会产生大量无用常量,替代字符串的大量拼接,提高效率。
        StringBuffer:
            所有操作方法上加上了同步锁,所以是线程安全的
        StringBuilder:
            没有加同步锁,因此非线程安全的!!!

  • 相关阅读:
    centos 项目运行环境搭建
    算法之神奇的斐波那契数列(Fibonacci sequence)
    孙哥Spring源码第19集
    pymysql写入时,遇到pandas dataframe中有混合的数据类型以及nan值
    Linux 环境搭建
    MIUI13 USB调试Android应用失败INSTALL_FAILED_USER_RESTRICTED
    CSS的伪类选择器:nth-child()
    买阿里云服务器,实操搭建nginx+php+mysql+thinkphp5全过程(2)
    vue3的新特性
    css选择器
  • 原文地址:https://blog.csdn.net/m0_57785152/article/details/126222994