Java 初学者必看 最全详细入门指南(二)

---------------------------------------------------------------------

1.AIGC未来发展前景

未完持续…

1.1 人工智能相关科研重要性

拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票!!!
拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票!!!
拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票!!!

重要的事情说三遍

2. Java 编程实战系统班

教你快速掌握Java基础语法以及Java高级语法和Java编程技巧,手把手编程实战,还会带你刷爆Java机考题和面试八股文,还会手把手教你使用Java进行热门项目实战开发,增添简历亮点,入职大厂不是梦!心动不如行动,赶快来吧~

3.AIGC应用班

教你快速熟练使用AIGC工具,提升效率节约时间,在熟悉各个AIGC模型原理的同时也熟练掌握如何使用AIGC工具,在AIGC应用班还会教你如何使用AIGC搞副业,月入过万不是梦!心动不如行动,赶快来吧~

📩咨询又不收费,咨询也没损失,不逼自己一把都不知道潜力有多大!
🌟🌟🌟🌟🌟🌟🌟🌟
【立即后台咨询】搞定AIGC应用难题!欢迎评论区互动提问

4.AI 绘画系统班(基础+进阶)

教你快速使用Stable-Diffusion,Midjourney等主流AI绘画工具,在办公创作等极大提升效率,同时还会教你如何使用AI绘画工作搞副业,月入过万不是梦!心动不如行动,赶快来吧~

5.人工智能顶会论文辅导(全球科研论文辅导顶尖团队)

关于如何报名人工智能顶会论文辅导请后台私信我

5.1 简介

计算机领域顶会论文,CCF,SCI,EI,专利竞赛软著等1v1论文辅导!
👇【立即咨询】一站式服务,短期快速投稿

💥个性化的指导和顶尖的科研团队支持,助您攀登科研高峰

对于计算机专业的硕博生来说,拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票!!!

🏃无论您是想申请研究生、博士生,还是渴望赴海外留学,或是立志进入大厂的核心岗位,一篇高质量的SCI/CCF论文是关键所在!我们的团队充满热情和专业知识,致力于为您提供卓越的科研指导和论文辅导服务。

⚠️处在导师放养的困境,无人指导
⚠️缺乏创意、缺乏写作技巧,或是面临论文课题无从下手
⚠️毕业要求高,毕业求职压力大
⚠️论文课题无从下手,熬夜失眠狂脱发

🎓QS50专业博士团队,为你的科研保驾护航!

📍QS前50科研学者/博士/博士后/大厂算法研究员
📍一站式全流程论文服务,点亮您的学术之路。
📍顶会主席、审稿人、期刊编辑协同助阵,增大中稿概率
📍全过程陪伴至录取,不中可售后退费!

⚠️特别提示:个人信息严格保密,保证论文唯一性,不dai写!❌❌❌
📩咨询又不收费,咨询也没损失,不逼自己一把都不知道潜力有多大!
🌟🌟🌟🌟🌟🌟🌟🌟
【立即后台咨询】搞定论文难题!欢迎评论区互动提问
---------------------------------------------------------------------

C++ 初学者必看 最全详细入门指南系列

C++ 初学者必看 最全详细入门指南(一)
C++ 初学者必看 最全详细入门指南(二)
C++ 初学者必看 最全详细入门指南(三)

Java 初学者必看 最全详细入门指南系列

Java 初学者必看 最全详细入门指南(一)
在这里插入图片描述

三. 语言特性

Java之所以被开发,是要达到以下五个目的:

  • 应当使用面向对象程序设计方法学
  • 应当允许同一程序在不同的计算机平台执行
  • 应当包括内置的对计算机网络的支持
  • 应当被设计成安全地执行远端代码
  • 应当易于使用,并借鉴以前那些面向对象语言(如C++)的长处。
    Java技术主要分成几个部分:Java语言、Java执行环境、类库。一般情况下说Java时并不区分指的是哪个部分。

Java在1.5版本时,做了重大改变,Sun微系统并1.5版本重命名为Java 5.0。

3.1 面向对象

Java的特点之一就是面向对象,是程序设计方法的一种。“面向对象程序设计语言”的核心之一就是开发者在设计软件的时候可以使用自定义的类型和关联操作。代码和数据的实际集合体叫做“对象”。一个对象可以想象成绑定了很多“行为(代码)”和“状态(数据)”的物体。对于数据结构的改变需要和代码进行通信然后操作,反之亦然。面向对象设计让大型软件工程的计划和设计变得更容易管理,能增强工程的健康度,减少失败工程的数量。

3.2 跨平台性

跨平台性是Java主要的特性之一,跨平台使得用Java语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为“一次编译,到处运行”。

执行Java应用程序必须安装Java 运行时环境(Java Runtime Environment,JRE),JRE包括Java虚拟机(Java Virtual Machine,JVM),以及Java平台核心类和基础Java 平台库。[18]通过JVM才能在电脑系统执行Java应用程序(Java Application),这与.Net Framework的情况一样,所以电脑上没有安装JVM,那么这些java程序将不能够执行。

实现跨平台性的方法是大多数编译器在进行Java语言程序的编码时候会生成一个用字节码写成的“半成品”,这个“半成品”会在Java虚拟机(解释层)的帮助下运行,虚拟机会把它转换成当前所处硬件平台的原始代码。之后,Java虚拟机会打开标准库,进行数据(图片、线程和网络)的访问工作。主要注意的是,尽管已经存在一个进行代码翻译的解释层,有些时候Java的字节码代码还是会被JIT编译器进行二次编译。

有些编译器,比如GCJ,可以自动生成原始代码而不需要解释层。但是这些编译器所生成的代码只能应用于特定平台。并且GCJ目前只支持部分的Java API。

甲骨文公司对于Java的许可是“全兼容的”,这也导致了微软和Sun微系统关于微软的程序不支持RMI和JNI接口、并且增加特性为己所用的法律争端。Sun微系统最终赢得了官司,获得了大约两千万美元的赔偿,法院强制要求微软执行Sun微系统关于Java的许可要求。作为回应,微软不再在Windows系统中捆绑Java,最新的Windows版本,Windows Vista和Internet Explorer 7.0版本也不再提供对于Java应用程序和控件的支持。但是Sun微系统和其他使用Java运行时系统的公司在Windows操作系统下对用户提供无偿的第三方插件和程序支持。

Java语言在最开始应用的时候是没有解释层的,所有需要编译的代码都直接转换成机器的原始代码。这样做虽然使程序获得了最佳的性能,但是导致程序异常臃肿。从JIT技术开始,Java的程序都经过一次转换之后才变成机器码。很多老牌的第三方虚拟机都使用一种叫做“动态编译”的技术,也就是说虚拟机实时监测和分析程序的运行行为,同时选择性地对程序所需要的部分进行编译和优化。所有这些技术都改善了代码的运行速度,但是又不会让程序的体积变得失常。

程序的轻便性事实上是软件编写很难达到的一个目标,Java虽然成功地实现了“一次编译,到处运行”,但是由于平台和平台之间的差异,所编写的程序在转换代码的时候难免会出现微小的、不可察觉的错误和意外。有些程序员对此非常头疼,他们嘲笑Java的程序不是“一次编译,到处运行”,而是“一次编译,到处调试”。以Java AWT为例,早期Java AWT内提供的按钮、文字区等均是以计算机系统所默认的样式而显示。这令Java程序在有些没有提供图案的计算机系统产生错误(在Microsoft Windows设有窗口管理器,在一些Linux distribution则没有)。后来Sun微系统针对Java AWT一些问题而推出Java Swing。

平台无关性让Java在服务器端软件领域非常成功。很多服务器端软件都使用Java或相关技术建立。

3.3 自动垃圾回收(Garbage Collection)

C++语言被用户诟病的原因之一是大多数C++编译器不支持垃圾收集机制。通常使用C++编程的时候,程序员于程序中初始化对象时,会在主机存储器堆栈上分配一块存储器与地址,当不需要此对象时,进行析构或者删除的时候再释放分配的存储器地址。如果对象是在堆栈上分配的,而程序员又忘记进行删除,那么就会造成存储器泄漏(Memory Leak)。长此以往,程序运行的时候可能会生成很多不清除的垃圾,浪费了不必要的存储器空间。而且如果同一存储器地址被删除两次的话,程序会变得不稳定,甚至崩溃。因此有经验的C++程序员都会在删除之后将指针重置为NULL,然后在删除之前先判断指针是否为NULL。

C++中也可以使用“智能指针”(Smart Pointer)或者使用C++托管扩展编译器的方法来实现自动化存储器释放,智能指针可以在标准类库中找到,而C++托管扩展被微软的Visual C++ 7.0及以上版本所支持。智能指针的优点是不需引入缓慢的垃圾收集机制,而且可以不考虑线程安全的问题,但是缺点是如果不善使用智能指针的话,性能有可能不如垃圾收集机制,而且不断地分配和释放存储器可能造成存储器碎片,需要手动对堆进行压缩。除此之外,由于智能指针是一个基于模板的功能,所以没有经验的程序员在需要使用多态特性进行自动清理时也可能束手无策。

Java语言则不同,上述的情况被自动垃圾收集功能自动处理。对象的建立和放置都是在存储器堆栈上面进行的。当一个对象没有任何引用的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放存储器以避免存储器泄漏。

注意程序员不需要修改finalize方法,自动垃圾收集也会发生作用。但是存储器泄漏并不是就此避免了,当程序员疏忽大意地忘记解除一个对象不应该有的引用时,存储器泄漏仍然不可避免。

不同厂商、不同版本的JVM中的存储器垃圾回收机制并不完全一样,通常越新版本的存储器回收机制越快,IBM、BEA、Sun微系统等等开发JVM的公司都曾宣称过自己制造出了世界上最快的JVM,JVM性能的世界纪录也在不断的被打破并提高。

IBM有一篇有关Java存储器回收机制比不激活垃圾收集机制的C++存储器处理快数倍的技术文章,而著名的Java技术书籍《Java编程思想》(Thinking in Java)也有一段论述Java存储器及性能达到甚至超过C++的章节。

3.4 基本语法

编写Java程序前应注意以下几点:

  • 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirstJavaClass。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写,例如myFirstJavaMethod。
  • 源文件名:源文件名必须和文件内名字唯一且公开(由public 关键词修饰)的类名相同。当保存文件的时候,你应该使用该类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的Java程序由public static void main(String[] args)方法开始执行

3.5 Java关键字

下面列出了Java关键字。这些关键字不能用于常量、变量、和任何标识符的名称。
在这里插入图片描述
在这里插入图片描述

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DFCED

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值