Java编程思想读书笔记(二)一切都是对象

2023-10-24 01:18

本文主要是介绍Java编程思想读书笔记(二)一切都是对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 对象存储

  • 一般情况
    • 寄存器
      • 最快的存储区,位于处理器内部。
    • 堆栈
      • 位于RAM中(随机访问存储器),人们常说的内存,
      • 创建程序时,java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。
      • 存对象引用
      • 存基本类型
      • 通用内存池,也位于RAM区,存放所有的java对象。
      • 不同于堆栈的好处:编译器不需要知道存储的数据在堆里存活多长时间。
    • 常量存储
      • 可以放在ROM中
    • 非RAM存储
      • 数据的持久化、序列化、反序列化
  • 特例:基本类型
    • new一个对象会被存在堆中,但是对于一个小的,简单的变量,存在堆中就不是很有效。因此,java采用C++相同的方法,不用new来创建变量,而是创建一个并非是引用的“自动”变量,这个变量直接存储“值”,并存在于堆栈中。

    • java每种基本类型所占存储空间不会随机器硬件架构的变化而变化,这种存储空间不变性是java更具有可移植性的原因之一。

      基本类型大小最小值最大值包装器类型
      boolean---Boolean
      char16-bitUnicode 0Unicode 216-1Character
      byte8 bits-128+127Byte
      short16 bits-215+215-1Short
      int32 bits-231+231-1Integer
      long64 bits-263+263-1Long
      float32 bitsIEEE574IEEE574Float
      double64 bitsIEEE574IEEE574Double
      void---Void
    • 基本类型的包装类使得可以在堆中创建一个非基本对象,用来表示对应的基本类型

    • 高精度数字

      • java提供了两个用于高精度计算的类:BigInteger与BigDecimal,他们属于“包装器类型”,没有对应的基本类型,但是操作与基本类型所能执行的操作相似。
      • BigInteger支持任意精度的整数,BigDecimal支持任意精度的定点数
    • 数组

2.不用销毁对象

  • 作用域
  • java会自动帮我们销毁,自动辨别那些不会被引用的对象,进而进行销毁,避免了内存泄漏的问题。

3.数据类型:类

  • 字段和方法
    • 类中可以设置这两种元素,字段有时被称为数据成员,方法被称为成员函数
  • 方法、参数与返回值
    • 方法决定了一个对象能够接收什么样的消息
    • 方法名和参数列表唯一标识一个方法
    • 若返回类型是void,return关键字只是用来退出方法,因此没有必要非得等到方法结束才离开,而是可以在任何地方返回。如果返回类型不是void,拿无论在何处返回,编译器都会强制返回一个正确类型的返回值。

4.一个java程序

  • 名字可见性
    • 域名反转 com.baidu
  • import
    • 所有java代码都必须写在类里
    • 使用与编译器附在一起的java标准类库里的构件,则不必写一长串反转域名,只需写为:import java.util.*;
  • static
    • static修饰的变量指向同一存储空间,而非static修饰的变量每一个对象都有一个存储空间
    • static修饰的方法差别不大

5.构建一个java程序

  • public static void main(String[] args){}
    虽然程序中并没有使用形参args,但java编译器要求必须这样做,因为args要用来存储命令行参数
  • 注释和嵌入式文档
    • javadoc
      • 用于提取注释的工具,输出一个html文件
  • 编码风格
    • 类名首字母大写 驼峰式命名
    • 其他所有内容——方法、字段、对象引用,和类名一样,只是首字母小写。

这篇关于Java编程思想读书笔记(二)一切都是对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/271717

相关文章

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr