Java十大经典语录(上)

一, “所见即所得”(What You See Is What You Get, WYSIWYG)

        在Java程序员之间流传着一句古老的格言:“所见即所得”。通常用于描述 Java 图形界面开发(如 Swing、JavaFX)的可视化设计理念,开发者设计的界面与实际运行效果一致。早年GUIGraphical User Interface,简称 GUI,图形用户接口)编程思想曾风靡一时。以Delphi为代表的编程语言,实现了快速拖拽组件开发,生成高效原生代码。Java 在GUI编程思想的影响下,Java也优化了Swing功能。正是这一历史时期GUI编程思想下的产物。

       随着业务需求的日益复杂,UI的设计优化,早期的Java Swing逐渐被淘汰。淘汰的原因,嗯,你自己看,就明白了。

(使用Java Swing组件生成的界面,如下)

时至今日,依旧还有少量Swing工程师在维护早期代码,

Swing被边缘化的原因,一看便知,像极了车床,医疗仪器控制界面。Java Swing已无法满足日益提升的审美需求,逐渐被边缘化。

        不是说好只有少量懂Swing编程的Java工程师?你这个又是如何实现的?别看我,这我哪会呀,AI时代,代码获取是再简单不过的事情,没错,这个代码就是AI生成的。飞算JavaAI 智能问答,输入需求,一键便可获取,甚至,可以实现更加复杂的代码。

       那么问题来了,飞算JavaAI去哪里下载?你们这届程序员呀,真是让人操碎了心,打开IDEA,这个总会吧。进入插件市场(Marketplace),搜索飞算JavaAI,安装重启IDEA即可。

        Eclipse 同样支持哈。当前飞算JavaAI安装时支持IntelliJ IDEA的版本:支持2020.3以上的版本,而Eclipse支持2019-09 R (4.13.0)及以上的版本,详情如下:

       DeepSeek预测:未来五年,AI辅助开发将成为行业标准。在AI的辅助下,代码质量,开发效率都将得到大幅提升。

二,一切皆对象

        如果用一句话来概括Java语言,那么一定是“一切皆对象”,对于Java程序员来说,没有比这句话更深入人心的了。Java语言面向对象编程思想,是由C,C++ “面向过程”编程思想一步步发展而来,Java语言逻辑是建立在类(Class)之上的,所以有了“一切皆对象”的说法。同时为了语言的高效,Java语言并非完全面向对象语言,如Java中使用频率最高的基本数据类型,比如我们最常用到的Java八种基本数据类型,便是“非面向对象”设计。

同时 Java 也为八种基本数据类型提供了对应的包装类,集成了面向对象的特性和丰富的方法,从而可以更方便地对基本数据进行操作和处理。

另外还有static(静态)所修饰的变量与函数,无需生成对象,可由类直接调用。

Java 中常见的数组,是一个典型的“非面向对象”设计,它保留了底层的高效性和直接操作内存的能力,但同时牺牲了部分面向对象的特性。

Java “非完全面向对象”,是出于对性能,语句优化后的“更优设计”。

三,“一次编写,到处运行”(Write Once, Run Anywhere, WORA)

       Java 通过内置 JVM(Java 虚拟机)实现跨平台,其原理是分层编译与统一接口。第一步将 .java 文件编译为与平台无关的.class字节码文件,编译后的字节码可在任何支持 JVM 的环境中运行。字节码文件再由JVM将字节码实时转换为当前系统的机器指令,从而实现平台无关。JVM 具备自动垃圾回收机制,能自动回收不再使用的内存,减轻了开发者手动管理内存的负担,降低了因内存泄漏等问题导致的程序错误。在安全性方面,JVM 提供了安全管理器和类加载器机制,可对程序访问资源进行严格控制,有效防止恶意代码的攻击。

       由于JVM 需要进行解释和编译工作,相比直接编译成机器码的语言,Java 程序的执行速度会稍慢。另外,JVM 自身运行需要占用一定内存,对于资源受限的设备,可能会带来较大的内存压力。

四,“没有指针”(No Explicit Pointers)

      《面向对象编程思想为Java续命20+年》一文论述了Java“面向对象”编程思想是由 C ,C++ “面向过程”编程思想演化而来。指针在C,C++语言中扮演着重要角色。指针指向变量内存地址,通过指针可直接对内存进行操作。它赋予了程序员直接操作内存的能力,在实现复杂算法和数据结构方面发挥着关键作用。不过,指针的使用也增加了程序的复杂性和出错的风险,因此需要谨慎使用。

       Java语言则没有指针的概念,这并不代表着Java完全取消指针的概念,只是对其进行了封装和隐藏,让开发者无须像在C和C++中那样直接操作指针。Java之所以这样设计,主要有以下几个原因:

1.提高安全性:在C和C++里,开发者可以直接使用指针来操作内存,这虽然赋予了程序强大的灵活性,但也容易引发内存管理问题。例如,悬空指针(指针指向的内存已经被释放,但指针仍在使用)和内存泄漏(动态分配的内存没有被正确释放)等问题,会导致程序不稳定甚至崩溃。Java采用了自动垃圾回收机制,开发者无需手动管理内存,通过隐藏指针,避免了因错误的指针操作而导致的内存问题。

2.增强可移植性:不同的操作系统和硬件平台在内存管理和指针实现上可能存在差异。C和C++的指针直接与底层内存打交道,因此在不同平台上的表现可能不同,这给程序的移植带来了困难。Java通过隐藏指针,将底层的内存管理细节封装起来,使得Java程序在不同平台上具有更好的可移植性,开发者只需要关注业务逻辑的实现,而无需考虑底层的内存管理和指针操作。

        Java内存自动回收机制,保证了在无指针操作的情况下,对内存进行优化。这种“无指针”设计成为了Java语言一大亮点,因此“没有指针”(No Explicit Pointers)成了Java早期宣传的一张名片。Java因此又被戏称为C++ - -。无指针设计降低学习门槛,对初学者来说十分友好,这也为Java语言的30年长青打下了群众基础。

五,“强类型语言”(Strongly Typed Language)

       首先来了解一下强类型语言的定义:Java 在编译时严格检查类型匹配,禁止隐式类型转换(如 int 不能直接赋值给 String)。有“强类型语言”,当然也有“弱类型语言”,JavaScript便属后者,尽管两者名字相近,实则JavaScript与Java是两种完全独立的编程语言,二者的关系可概括为"同姓不同源"。

        1995年Sun公司推出JAVA,设计初衷为"一次编写,到处运行"的跨平台语言。同年Netscape公司开发出JavaScript,原名为LiveScript,随着Java爆火,LiveScript为蹭Java热度更名为JavaScript。

       “弱类型语言”的优点显而易见,减少运行时类型错误,提高代码可靠性。一种语言设计理念,往往是优缺点并存,“弱类型语言”的缺点也是十分明显的,在大型项目中,“弱类型”会因类型混乱导致逻辑难以追踪,另外,动态类型检查增加运行时开销。这也导致“弱类型语言”只适合小型项目或脚本开发。显然这种设计并不适合广泛应用于大中型项目开发的Java语言。所以,Java最初被设计成“强类型语言”,为Java后来的发展奠定了基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值