热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析:字符串与对象的对比及应用

本文深入探讨了字符串与对象在编程中的对比及其应用场景。通过分析字符串作为不可变对象的特性,以及对象在内存中的存储方式,揭示了两者在性能和使用上的差异。文章还详细解析了Python中所有类均继承自`object`类的机制,并介绍了`getClass()`方法的底层实现,强调了`native`关键字的作用。此外,结合实际案例,讨论了在不同场景下选择字符串或对象的最佳实践。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1. 所有类都继承object类

public final native Class getClass();源码里面native修饰的表示应用层搞不定,就需要javaJVM的支持,底层os就开启了一个线程

1.1   finalize:,对象要被回收的时候,就再给对象一次机会,就用全局变量引用该对象(finalize未必有机会执行,就调用一次,实际开发不用)

1.2   clone:需要实现接口cloneable否则抛出cloneNotSupporttedException,只能使用浅克隆,克隆的时候属性要简单(==比较2个对象的内存地址)

            x.clone() != x       true

           x.clone().getClass() == x.getClass();(延伸知识点:能得到字节码对象(就是class对象),就能通 过class字节码去操纵属性和方法,该类的所有实例都共同拥有着这个Class对象,而且是唯一的)

1.3   当比较2个对象equals相等,如若相等则2个的hashCode也一定相等、反过来就不一定了

覆盖了equals时就必须覆盖hashCode

2.1 String是一个普通类,建立对象2钟方式,一是new对象,二是class.forname

2.2Java JVM 会做优化,把字符串放入常量池

2.3   StringBuffer支持并发操作,线程安全,适合多线程

        StringBulder(单线程的时候效率高,非安全)不支持并发操作,线程不安全,不适合多线程

 


转:https://my.oschina.net/u/3536141/blog/1162938



推荐阅读
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 本文总结了Java程序设计第一周的学习内容,涵盖语言基础、编译解释过程及基本数据类型等核心知识点。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
author-avatar
kingwign009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有