【3】Head First Java 学习笔记

HeadFirst Java

本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。

第一章 Java入门
第二章 面向对象
第三章 变量


变量的类型

  • primitive 主数据
  • 引用

变量

primitive主数据类型

  • 要素:类型 + 名称
  • boolean:
  • char: 16bits
  • 数值类:
    • byte 8bits -127~128
    • short 16bits -2^15 - 2 ^15
    • int 32bits
    • long 64bits
  • 浮点数
    • float 32
    • double 64

**类型安全:**小变量 不能 赋值 大变量,如int n=0; byte = n;
声明与赋值:int x;x=10;int x = 10;

如何控制对象

引用变量:

  • 没有对象变量,只有引用到对象的变量,引用变量 是指向对象的 指针(对象的地址),JVM才会使用 引用获取对象
    - 引用变量的值:取得特定对象的位表示(字节组合码) ,不在乎这个值
  • 引用变量:是某类杯子放入了一个指向 该类对象的 指针

对象的声明、创建与赋值:
1.声明一个引用变量 Dog myDog; JVM分配空间给引用变量,固定为Dog类,是指向Dog类模板创建的对象的指针(控制Dog的遥控)
2.创建对象:new Dog(); JVM分配堆空间给新对象
3. 连接: Dog myDog = new Dog(); 连接,将指针 具体的Dog对象

思考:

  • 引用变量的大小?与JVM有关,不同平台不同,其表示方式未知;考虑内存应考虑建立的对象大小数量
  • 引用对象与C的指针不同,不能进行计算!int num[]; int* p = num; p++

Exp1:

Dog temp = new Dog(); temp = new Dog();这建立了俩个对象,一个引用变量;该引用变量指向第二个建立对象
若 final Dog temp = new Dog(); 不再指向其他对象

Exp2:

Book a = new Book();Book b = new Book();
Book c = a; a的值赋给c,即引用变量的值(取得某对象的位表示),c此时与a指向同一个对象
a = b ; 此时 a与b指向同一个了
上述过程,三个引用,两个对象,某2个遥控控制1个电视~

Exp3:

Book a = new Book();Book b = new Book();
Book a = b; 此时 原先a指向的对象没有遥控了,无法引用,对象1会被抛弃
b = null; 不指向任何对象,但还能用

数组

变量犹如杯子,数组就是存放杯子的杯架。
数组 是 对象,数组的元素 可能是主数据、引用变量(装的不是Dog对象,而是Dog类指针,遥控器)。

int[] nums; 声明一个int[] 变量(引用变量)
nums = new int[n]; nums指向一个数组对象 int array object (有n个杯子的杯架)
nums[0]=1; 对数组的元素赋值

Dog[] pets;
pets = new Dog[7]; pets指向 一个Dog数组对象,(有7个装指针的杯子的杯架)
Dog[0] = new Dog(); 指向具体对象,Dog[0]是一个引用变量,默认会指向null

Java注重类型,一旦数组声明,只能装入声明类型的元素,除了隐含展开情况(byte放入int[]的元素)
存取Dog数组中的Dog,通过数组的索引得到引用变量,使用.符号进行方法、实例变量的存取,不需要变量名(也没有命名)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OriginPro作图之箱线图

前言 箱线图(Box-plot) 又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。 本文将结合实例阐述其意义和绘图过程。 箱线图简介 箱线图(Boxplot) 也称箱须图( Box-whisker Plot),是利用数据中的五个统计量…

ffmpeg的安装以及使用

1.FFmpeg 的主要功能和特性: 格式转换:FFmpeg 可以将一个媒体文件从一种格式转换为另一种格式,支持几乎所有常见的音频和视频格式,包括 MP4、AVI、MKV、MOV、FLV、MP3、AAC 等。视频处理:FFmpeg 可以进行视频编码、解…

ArcGIS无法开始编辑TIN!开始编辑TIN显示灰色

ArcGIS无法开始编辑TIN!开始编辑TIN显示灰色? 解决方案! 1、确认自定义——扩展模块中空间分析、3D分析模块勾选。 2、确认以上后,还是不能编辑的话,我们可以调出 3D分析分析工具条,你就会发现。TIN编辑工…

Window + Ubuntu 双系统无Ubuntu Bios 启动项

文章目录 安装硬盘位置不重要!!!(但是我安装在了第二张HDD)问题是多盘分位置会导致磁盘主分区变成了简单卷 Bios Ubuntu 启动项修复参考Ubuntu安装U盘进入Try Ubuntu 使用Terminal修复完提示Disable Secure Boot进入Te…

【存储】cosbench对象存储测试工具

目录 简略说明 原理 用法 详细说明 简介 用法 一 安装 二 简单验证 三 编写配置文件 四 提交配置文件下IO 五 测试结果查看 结果概览 查看详情 每秒钟的io情况查看 工作负载配置 参数配置(controller和driver) 查看错误的方法和错误记录 查看错误的方法 …

【匹配】匈牙利匹配算法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 匈牙利匹配算法 1. 正文 1.1 基础概念 二分图 顶点分为两个集合,集合间顶点相连,集合内点不相连 匹配 一个匹配就是一个边的…

彻底解决SimpleDateFormat的线程不安全问题

重现SimpleDateFormat类的线程安全问题 在Java中,SimpleDateFormat是一个非常常用的类,它用于将日期转换成需要的格式或者将文本日期转换为Date对象。然而,在多线程环境下使用SimpleDateFormat可能会遇到一些意想不到的问题。下面通过一个例…

CentOS7配置NFS文件共享

环境准备 准备3个linux服务器: 192.168.137.120(nfs server端) 192.168.137.121 192.168.137.122 安装nfs-utils工具 # 在3个节点上都执行 yum install nfs-utils -y服务端配置 # 在120上执行 systemctl enable nfs-server systemctl sta…

Oracle Linux 8.8 一键安装 Oracle 11GR2 RAC(231017)

前言 Oracle 一键安装脚本,演示 Oracle Linux 8.8 一键安装 Oracle 11GR2 RAC(231017)过程(全程无需人工干预):(脚本包括 ORALCE PSU/OJVM 等补丁自动安装) ⭐️ 脚本下载地址&…

Scala OOP

前序 1、Scala 为纯粹OOP1.1、不支持基本类型:一切皆为对象 Byte,Int,... 1.2、不支持静态关键字:static1.3、支持类型推断,和类型预定,动静结合 类 /*关键字:class创建对象:new内含:成员变量…

linux下查看网络路由信息,找到请求过多的IP

netstat -nat|awk {print} |awk -F : {print$1} |sort|uniq -c |sort -n 命令netstat -nat|awk {print} |awk -F : {print$1} |sort|uniq -c |sort -n是用于分析网络连接状态的管道命令序列。下面逐个解释每个命令及其作用: netstat -nat: netstat 是一个用于显示…

代理IP干货:如何正确使用防范风险?

在今天的数字时代,代理IP地址已成为互联网世界中不可或缺的一部分。无论您是寻求绕过地理限制、保护个人隐私还是执行网络任务,代理IP地址都发挥着关键作用。我们将为您探讨代理IP地址的重要性以及如何防范潜在的风险和威胁。 一、代理IP地址的潜在风险 …

STM32H7独立看门狗 (IWDG)的应用方法介绍

目录 概述 1 认识独立看门狗 (IWDG) 1.1 定义独立看门狗 (IWDG) 1.2 IWDG 主要特性 2 IWDG 功能说明 2.1 IWDG 框图 2.2 IWDG 内部信号 2.3 窗口选项 2.3.1 Enable WIN IWDG 2.3.2 Disable WIN IWDG 2.4 硬件看门狗 2.5 低功耗冻结 2.6 停止和待机模式下的行为 …

网工学习云计算HCIE感受如何?

作为一名网工,我经常会在各种网络论坛里查询搜索一些网络技术资料,以及跟论坛里的网友交流讨论平时在工作、学习中遇到的问题、故障,因此也经常能在论坛的首页看到誉天的宣传信息。机缘巧合之下关注了誉天的B站号,自从关注了誉天的…

初级银行从业资格证知识点(二)

系统内联行清算包括: 全国联行往来、分行辖内往来、支行辖内往来 普通支票既可以支取现金也可以转账;划线支票只能转账不能取现。 进出口业务中采用的结算方式: 汇款、托收、信用证 银行常见的清算模式: 全额清算、净额批量清算、…

实现像 creat-astro 一样在终端中实现动态输出内容

新工具,可以动态输出一些文字,支持盒子输出、动物输出、emoji输出等,也可以完全自定义 可以参考地址:https://github.com/winchesHe/dynamic-log 演示:

【VUE】moment.js 时间日期格式化工具

在 JavaScript 中解析、校验、操作、显示日期和时间 官方中文文档:Moment.js 中文网 1.安装 npm install moment --save # npm yarn add moment # Yarn 2.全局引入 //main.js import moment from moment; // 导入文件 Vue.prototype.$moment mome…

(十七)JS篇——小题

1、说说undefind和null的区别,并举例说明如何让一个对象的属性变为null。 在javascript中undefnd 和null都表示空值。undefind指变量已经声明未赋值,或者变量定义的值就是undefind。例如,let a; console.log(a); // 输出:undefin…

谈谈对“数字化转型”的本质认知

我之前在多家咨询公司与软件公司做过多个大型企业数字化项目,也在甲方企业推动数字化转型,做出了数字化最佳实践案例。 下面我想从一个客观角度来真正意义上的描述数字化及数字化转型。 我相信这篇文章能给做数字化的你们带来极大的收获,我…

【代码管理】Git删除仓库中的大文件压缩仓库大小

Git 仓库中有时会不小心加入了一些大文件,例如模型文件,视频文件 模型文件有可能以 .weights 结尾,或者 .onnx 结尾等等 视频文件有可能以 .avi 结尾,或者 .mp4 结尾 大文件如果一直在仓库中,仓库体积会非常大&#xf…