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 初学者必看 最全详细入门指南(二)
在这里插入图片描述

3.6 注释

注释的作用:标识程序是干什么的,以及它是如何构建的。注释帮助程序员进行相互沟通以及理解程序。注释不是程序设计语言,所以编译器编译程序时忽略它们

3.7 接口和类别

Java自带了创建接口的类别,可以这样使用:

public interface Deleteable {
    void delete();
    System.out.println(" ATTACH DATABASE 'DatabaseName' As 'Alias-Name'");
}

这段代码的意思是任何实现(implement)Deleteable接口的类别都必须实现delete()方法。每个类别对这个方法的实现可以自行定制。由此概念可以引出很多种使用方法,下面是一个类别的例子:

public class Fred implements Deleteable {
    // 必須實作Deleteable介面中的delete方法
    @Override 
    public void delete() { 
        // 實作的程式碼
    }
        
    // 這個類別也可以包含其他方法 
    public void doOtherStuff() {

    }
}

在另外一个类别中,可以使用这样的代码:

public void deleteAll(Deleteable [] list){
    forint i = 0; i < list.length; i++{
        list[i].delete();
    }
}

因为队列中所有的对象都可以使用delete()方法。Deleteable队列中包含Fred对象的引用,而这个类别和其他Deleteable类别在使用deleteAll()方法时候不需要进行任何改变。

之所以这样做就是为了在接口的执行和其代码之间进行区别。举例来说,一个名叫Collection的接口可以包含任何对象所需要的引入、转换和存储数据的方法,其他的类都可以使用这个接口。但是这个接口可以是一个可重定义大小的队列、一个链表或者是其他功能的集合。

这种特性其实是一种折中的办法。Java的设计者们不想让Java有多重继承的特性,因为C++的多重继承显示了这种特性的困难。Java的接口功能可以提供同样的功能,但是又不会很复杂。

3.8 应用程序开发接口

在Java语言中,应用程序接口(API)化身成类,并且分组成为包。每个包中包含有相关的接口和类。对于不同的平台,Java提供了不同版本的包。API的设定由Sun微系统和其他公司通过JCP(Java社群程序)决定。任何公司和个人都可以参与这个工程,对API进行设计。2004年,IBM和BEA公司准备联合对官方的Java开源软件工程进行支持,但是2005年初,Sun微系统拒绝了这个支持。

四. Java程序示例

下面这个程序显示“Hello world!”然后结束运行,注意java.lang包是自动加载的,所以不需要在程序之前加入import java.lang.*;

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello, world!");
    }
}

五. 关于Java的批评

Java试图通过新的方式解决软件编写的复杂性。很多人认为Java语言做到了它承诺的一切,然而,某些情况下,Java会将简单问题导向复杂化。尽管Java并不是一门完美的语言,但它的出现确实给大规模软件协同开发提供了新的思路。

5.1 整体性问题

并不是所有的工程和环境需要企业等级的复杂性,比如一个简单的个人网站或者独自编程的程序师所写的程序。这些程序师会发现Java的复杂管理对于自己要做的程序来说过于强大了。一些人觉得Java在面向对象上面做的没有Ruby和Smalltalk纯粹。但是最新出现的用Java实现的语言Groovy解决了这些问题。

作为一种已经建立的新技术,Java显然综合了很多语言的特性,比如C++、C语言、Python等等。一些对于Java的评论认为Java的不变性在动摇。

5.2 语言问题

有些程序师不喜欢原始类型(primitive type)和类别(class)的分离,尤其是那些曾经使用过Smalltalk和Ruby的程序员。Java的代码相对于其他的代码来说过于冗长,这与它的轻便化声明相违背。此外Java一般也会默认式的自动植入过多的标准库代码,导致整体运行会出现缓慢

Java是一种单继承的语言。这也导致了程序师在试图使用多重继承时候的不便,而很多语言都可以使用这个特性。但是Java可以使用接口类,把多重继承可能导致的风险减少到最小。Java不支持运算符重载,这是为了防止运算符重载使得代码的功能变得不清晰。但是用Java实现的语言Groovy可以进行运算符重载。过去Java对于文本的操作和其他语言,比如Perl和PHP相比差的较多,但Java在1.4版本时候引入了正则表达式。

至Java 1.7为止,Java语言不支持闭包(closure)和混入(mixin)特性。

Java 1.8加入lambda表达式(Lambda Expressions)。

5.3 类库问题

使用Swing平台编写的带有GUI(图形用户界面)的程序和其他原始程序非常不同。选用AWT工具包编写程序的程序师看到的都是原始接口,而且也无法获得先进的GUI编程支持,如果使用的话,就要提供每个平台上面所需的API,这将是一项庞大的工程。Swing则是完全用Java语言所写的程序,避免了接口元素重复的问题,只使用所有平台都支持的最基本的绘图机制。但是很多用户不知道如何在Java风格和Windows风格之间进行转换,结果造成了Java程序的接口在很多程序中非常特殊。苹果计算机已经提供了优化过的Java运行时程序,包含了Mac OS X的经典Aqua接口风格。

在IBM捐赠给Eclipse基金会的SWT界面框架中,用户会看到熟悉的本地风格界面。但这又引起了不同喜好的开发人员之间的争论。

5.4 性能问题

由于Java编译器和虚拟机的不同对Java代码的性能影响比语言本身的影响大的多,所以统一讨论Java的程序的性能经常是有误导性的。据IBM的资料,在同样的硬件上2001年时的IBM JDK版本的性能是1996年的JDK版本的十倍左右。而即使是在同一时期,不同公司的JDK和JRE的性能也不一样,比如Sun微系统、IBM、BEA等公司都有自己开发的JDK和JRE。

Java语言的一些特性不可避免的有额外的性能代价,例如数组范围检查、运行时类型检查等等。Java程序的性能还会因为不同的动态复杂性和垃圾处理机制使用的多少而各有不同。如果JVM的实现比较优化的话,那么这些功能甚至可以增加存储器分配的性能。这和总是使用STL或者托管C++的程序的情况类似。

尽管如此,仍然有许多人认为Java的性能低。这部分归因于Sun微系统最初的JVM实现使用未优化的解释机制来执行字节码。一些新版本的JVM使用Just-In-Time(JIT)编译器,在加载字节码的时候将其编译成针对运行环境的本地代码来实现一些本地编译器的优化特性。Just-In-Time机制和本地编译的性能比较仍旧是一个有争议的话题。JIT编译需要很多时间,对于运行时间不长或者代码很多的大型程序并不适宜。但是不算JIT编译阶段的话,程序的运行性能在很多JVM下可以和本地编译的程序一争短长,甚至在一些计算比较密集的数值计算领域也是这样。目前,Java已经使用更先进的HotSpot技术来代替JIT技术,Java的性能有了更进一步的提升。另外,在使用-server选项运行Java程序时,也可以对Java进行更深入的优化,比如在运行时将调用较多的方法内联(inline)到程序中来提高运行速度,这就是所谓的“动态优化”,而本地编译器是无法做到这一点的;这也是一些Java代码比对应用C/C++等语言编写的本地代码运行的更快的原因之一。微软的.NET平台也使用JIT编译器,所以也有类似问题。

Java的设计目的主要是安全性和可携性,所以对于一些特性,比如对硬件架构和存储器地址的直接访问都被去除了。如果需要间接调用这些底层功能的话,就需要使用JNI(Java本地接口)来调用本地代码,而间接访问意味着频繁调用这些特性时性能损失会很大,微软的.NET平台也有这样的问题。所以到目前为止,性能敏感的代码,例如驱动程序和3D电子游戏,还是大多使用本地编译,甚至直接以不直接支持面向对象的C语言或机器代码编写。但最近已经有了许多用纯Java编写的3D游戏,其效果与用C语言编写的不相上下,例如“合金战士”(英文名:Chrome)。这主要是因为新版的Java 3D技术已经能像C++一样调用硬件加速,也就是使用显卡来加速,无论是C++还是Java语言写的3D游戏都是使用显卡及GPU来处理,从而使得CPU可以专注于其他方面的工作。

六.用途

6.1 桌面GUI应用程序:

Java通过抽象窗口工具包(AWT),Swing和JavaFX等多种方式提供GUI开发。虽然AWT包含许多预先构建的组件,如菜单,按钮,列表以及众多第三方组件,但Swing(一个GUI小部件工具包)还提供某些高级组件,如树,表格,滚动窗格,选项卡式面板和列表。JavaFX是一组图形和媒体包,提供了Swing互操作性,3D图形功能和自包含的部署模型,可以快速编写Java小应用程序和应用程序的脚本。

6.2 移动应用程序:

Java Platform,Micro Edition(Java ME或J2ME)是一个跨平台框架,用于构建可在所有Java支持的设备(包括功能手机和智能手机)上运行的应用程序。此外,最受欢迎的移动操作系统之一的Android应用程序通常使用Android软件开发工具包(SDK)或其他环境在Java中编写脚本。

6.3 嵌入式系统:

从微型芯片到专用计算机的嵌入式系统是执行专门任务的大型机电系统的组件。诸如SIM卡,蓝光光盘播放器,公用事业仪表和电视机等多种设备都使用嵌入式Java技术。据甲骨文公司称,100%的蓝光光盘播放器和1.25亿台电视设备都采用Java技术。

6.4 Web应用程序:

Java通过Servlets,Struts或JSP提供对Web应用程序的支持。编程语言提供的简单编程和更高的安全性使得大量政府应用程序可用于基于Java的健康,社会安全,教育和保险。Java也可以使用Broadleaf等开源电子商务平台开发电子商务Web应用程序。

6.5 分布式系统:

Java更多时候用于构建大型分布式应用, 基于Java的分布式生态非常丰富, 各种成熟的基础组件帮助Java开发者迅速搭建起分布式系统. 比较著名的分布式框架有: Spring Cloud, Dubbo, ZooKeeper等。

6.6 Web服务器和应用程序服务器:

今天的Java生态系统包含多个Java Web服务器和应用程序服务器。虽然Apache Tomcat,Simple,Jo !, Rimfaxe Web服务器(RWS)和Project Jigsaw占据了Web服务器空间,但WebLogic,WebSphere和Jboss EAP在商业应用服务器领域占据重要地位。

6.7 企业应用程序:

Java企业版(Java EE)是一种流行的平台,为脚本和运行企业软件(包括网络应用程序和Web服务)提供API和运行时环境。甲骨文宣称Java可以在97%的企业计算机上运行。Java凭借更高的性能保证和更快的计算能力使得像Murex这样的高频交易系统可以被编入脚本中。同时它也是各种银行应用程序的中枢,它们将Java从前端用户端运行到后端服务器端。

6.8 科学应用:

Java是许多软件开发人员用于编写涉及科学计算和数学运算的应用程序的选择之一。这些程序通常被认为是快速和安全的,具有更高的便携性和低维护性。像MATLAB这样的应用程序使用Java来作为交互用户界面和作为核心系统的一部分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DFCED

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

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

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

打赏作者

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

抵扣说明:

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

余额充值