0013 Java基础之一切都是对象

Java 和 C++ 都是混合/杂合型语言,但是 Java是一种更加“纯粹”的面向对象程序设计语言。C++ 就是 C 的一个超集,在使用上包括许多C 语言的某些特性,使得C++ 在某些方面显得过于复杂。

Java 只进行面向对象的程序设计,面向对象的思想是基本功,可以使你具备一种编程能力, Java 的单根继承结构使得Java 在学习和使用起来都比较简单和方便。下面我们来具体谈谈对象的性质:

一:用引用操纵对象

每种编程语言都有自己的操纵内存中元素的方式,有时候根据数据的类型你是直接操纵元素,还是选择间接(C 中用指针实现)来操纵对象实现。在Java 中一切得到了简化,一切都被视为对象,可采用单一固定的语法。而操纵标识符实际上是对象上的一个“引用”。拥有一个引用,并不一定需要有一个对象与之关联,如果想操纵一个词或句子,则可以创建一个 String 引用:

      String s;

但是这里创建的只是引用,并不是一个对象,此时向 s 发送一个消息,就会返回一个运行时错误,因此一种安全的做法就是创建一个引用的同时进行初始化。

      String s="hello world !";

二:由你创建所有的对象

我们一旦创建了一个引用,就希望它能够与一个新的对象相关联。通常用 new 操作符来达到这一目的,new 关键字的意思就是创建一个新对象:

      String s = new String("hello world !");

除了 String 类型,Java 提供了大量过剩的现成类型,new 出来的对象在内存中是怎么分配的呢?下面我们了解一下 Java 内存中的存储机制:

1:寄存器,这是最快的存储区,因为她位于处理器的内部,但是寄存器的数量有限,只能按需分配,我们不能直接控制。

2:栈空间,位于通用 RAM 中,通过堆栈指针可以从处理器那里获得直接的支持,通过指针的移动来分配和释放内存,这是一种快速分配存储的方法,仅次于寄存器。

3:堆空间,一种通用的内存池,用于存放所有的 Java 对象。

4:常量存储,常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。

5:非 RAM 存储,如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时就可以存在,最常见的就是流对象和持久化对象。

三:永远不需要销毁对象

变量都有生命周期这样一个概念,生命周期往往出了自己的作用域范围就消失了。Java 对象不具备和基本类型一样的生命周期,当用 new 创建一个 Java 对象时,它可以存活于作用域之外:

      String s = new String("a new string");

引用 s 在作用域终点就消失了,然而 s 指向的对象仍然继续占据着内存空间。在 Java 中,有个垃圾回收机制,永远不会产生内存泄露的问题,由 new 创建的对象只要你还需要使用就会一直保留下去,否则垃圾回收机制会自动帮你回收。垃圾回收机制就像是一个监视器用来监视所有 new 出来的对象,一旦不再需要,就让它们自行消失,释放内存空间。

四:类

如果一切都是对象,那么 Java 用什么来包装这些对象的外观与行为呢?这边引入的是一个类,关键字 class:

      Class aTypeName{/*…*/}

这样就引入了一种新的类型,我们可以用 new 来创建这种类型的对象:

      aTypeName a = new aTypeName();

我们一旦定义了一个类,就可以在类中设置两种元素:字段和方法。字段可以是任何类型的对象,可以通过其引用与其进行通信,也可以是基本数据类型的一种,如果字段是对某个对象的引用,那么必须初始化改引用,以便使其与一个实际的对象相关联:

class DateOnly{

int i;

double d;

boolean b;

}

而方法可以理解为“做某种事情的一种执行方式”,我们可以定义任意类型的方法(参数,返回值等等):

class DateOnly{

int i;

double d;

boolean b;

DateOnly(int i,double d,boolean b){

this.i = i;

this.d = d;

this.b = b;

}

}


Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
各种安全相关思维导图整理收集。渗透步骤,web安全,CTF,业务安全,人工智能,区块链安全,数据安全,安全开发,无线安全,社会工程学,二进制安全,移动安全,红蓝对抗,运维安全,风控安全,linux安全.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值