您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

聊聊软件开发,Java介绍和运行机制

时间:2022-10-15 17:46:48  来源:今日头条  作者:添甄

JAVA是一门用来开发软件的计算机语言,如同汉语是在中国进行交流你的语言,西班牙语是在西班牙交流的语言,编程自然适合计算机沟通,就需要使用计算机认识的语言,那么Java就是其中一个,接下来会依次介绍:

  • 软件开发介绍
  • 常见的编程语言
  • Java语言的特点
  • Java运行机制

软件开发

软硬件介绍

  • 硬件:一般是计算机硬件的简称,是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础,比如主板硬盘内存条,电源,显卡等能摸得着的东西都是硬件
  • 软件:是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件应用软件,软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分
    • windows操作系统,IOS操作系统等都属于系统级别软件,提供了直接通过图形页面操作计算机的功能
    • 微信、QQ、钉钉这些属于应用软件,可以帮助我们完成一些日常,工作需求

软件开发

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。

1. 程序员主要完成的是实现这个步骤,当然自己写的代码也要自己测试一下才可以提交哦!

2. 需求捕捉:就是获取需求,我们要做什么,这是软件开发的第一步,一般由老板、客户或者产品经理负责

3. 需求分析:经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么

4. 设计:根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现方法,形成软件的具体设计方案,这步骤一般UI设计师会参与进来,协助完成软件原型或者操作界面的设计

5. 测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估,现在软件的规模越来越大,功能越来越复杂,企业在陆陆续续配备专业的测试人员

人机交互方式

正常人类与计算机交互,也就是操作者对电脑发出一个命令之后计算机给操作者的反馈,操作者再根据反馈发出命令的这么一个循环过程。

按照目前科技普及程度,人机交互的方式有两类,【图形化界面】和【命令行方式】,下方将会介绍两者概念区别,并且同时以打开windows文件系统为例实际演示。

图形化界面(Graphical User Interface GUI)

这种方式简单直观,操作者易于接受,容易上手操作。我们现在使用的大部分软件都是图形化界面的,我们通过点击对应的图标、文字,通过滑动页面、长按等操作实现对软件的操作。

命令行方式(Command Line Interface CLI)

需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,上手也比较困难,需要记录住一些命令。比如windows系统可以输入cmd来开启控制台。

 

总结

  • 无论是哪种方式目的都是和计算机进行对话,命令方式更加直接,图形页面方式更加方便
  • 图形页面其实是对命令的封装,配上美观的图标和合理的页面设计,方便用户使用
  • 对于软件的使用者来说我们当然要提供图形页面,以降低使用难度,对于程序员来说工作过程中还要使用很多软件命令行操作方式需要我们了解和掌握,当然不是所有的,只是一些必须的会用就行了,忘记了也可以百度一下

常用DOS命令

下方列出一些windows系统中常用的命令,也称为【DOS命令】

dir : 列出当前目录下的文件以及文件夹
md : 创建目录
rd : 删除目录
cd : 进入指定目录
cd.. : 退回到上一级目录
cd: 退回到根目录
del : 删除文件
exit : 退出 dos 命令行

常用快捷键

← →:移动光标 
↑ ↓:调阅历史操作命令 
Delete和Backspace:删除字符

常见的编程语言

C: 许多计算机科学家表示,学习C可以教初学者了解计算机程序的真正原理,还有一些人认为,它应该是计算机开始学习编程的人学会的头一种语言。主要用于嵌入式系统的应用程序。

C++:C语言的增强,主要用于开发系统软件,应用软件,设备驱动程序,嵌入式软件,高性能服务器和客户端应用及娱乐软件。

Java:说它是至今最流行的编程语言也不足为过,其可以用于各种各样的领域,包括企业应用及基础设施,以及Web应用和移动开发。

JavaScript在Web应用上有着非常大的需求,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。JavaScript主要用于实现为Web浏览器,以提供增强的用户界面和动态网站

C#:是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。借鉴了Java,C,C++和Delphi的一些特点,如今C#已经成为微软应用商店和开发成员非常欢迎的开发语言。

php是一种通用开源脚本语言,特别适合于Web开发,可嵌入到html中,它最初是用来设计动态网页产生的。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛。

Python/ target=_blank class=infotextkey>Python:是应用于设计各种各样的应用程序的动态语言, 往往比Tcl,Perl,Ruby,Scheme和Java更容易编写。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。

Ruby:是一种动态的,侧重于简单个高效的开源语言,他是一个优雅的语法,能够很自然的阅读和编写,适合于快速开发,一般开发效率是JAVA的5倍。

Objective-C:对于钟情于Apple设备的网友来说,Objective-C的流行就得益于苹果的成功,其是增加了Smalltalk风格的消息在C编程语言中的反射,面向对象的语言。主要使用于苹果系统和GNUstep这两个使用OpenStep的标准的系统。随着苹果平台的巨大人气,如今Objective-C语言被人们逐渐知道。

HTML5:是用于构建因特网的核心技术的标准语言,用于Web呈现内容,它是HTML标准的第五次修订,如今,HTML5继续在移动开发领域发挥着重要的作用,为互联网的发展提供了多样化的发展道路,37%的开发者依赖HTML5开发移动网站和Web应用程序 。

css是一种用来表现HTML或XML等文件样式的计算机语言。最常用于Web样式和HTML和Xhtml接口,该语言可以应用与任何类型的XML文档, CSS的设计主要是为了使文档内容从文档表示的分离,包括元素,如布局、颜色和字体。

Java语言介绍

Java语言是SUN(Stanford University Network,斯坦福大学网络公司 ) 在1995年推出的一 门高级编程语言。是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以 在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

Java语言技术结构

技术结构

主要用途

Java SE(Java Standard Edition)标准版

支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核 心API,此版本以前称为J2SE

Java EE(Java Enterprise Edition)企业版

是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet 、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE

Java ME(Java Micro Edition)小型版

支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加

入了针对移动终端的支持,此版本以前称为J2ME

Java Card

支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台

Java语言主要应用

从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面

  • 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及 它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电 信、交通、电子商务等
  • Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低 很大程度上取决于Java语言核心能力是否扎实
  • 大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态 圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数 是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程
  • 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手 机、PDA、机顶盒、汽车通信设备等

目前基本从事两个阶段,首先是企业级应用方向,成为一名后端开发工程师,然后向大数据方向靠拢,安卓和移动领域不适合大部分人,特殊机遇除外

Java主要特性

  • Java语言简单易学:Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java
  • Java语言面向对象:Java语言提供类、接口和继承等原语,为了简单起见, 只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)
  • Java跨平台性:通过Java的虚拟机,JVM可以实现一次编写到处运行的效果
  • Java语言分布式:Java语言支持Internet应用的开发,在基本的Java应用编 程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类 库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程 方法激活)机制也是开发分布式应用的重要手段
  • Java语言的健壮性。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择
  • Java语言的安全性。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击如:安全防范机制(类ClassLoader),如分配不同的 名字空间以防替代本地的同名类、字节代码检查
  • Java语言对系统无侵入性:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个 Java平台的任何系统中运行
  • Java语言是解释型语言:如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行
  • Java是的高性能:与那些解释型的高级脚本语言相比,Java的性能还是较优的,配合一些其他中间件可以发挥更强的性能
  • Java语言原生支持多线程。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。多线程可以有效提升系统的响应速度

 

Java的跨平台性

 


不同的平台对程序的解读是不一致的,在需要运行 Java 应用程序的操作系统平台上,先安装一个Java虚拟机 (JVM Java Virtual machine) 。由JVM来负责Java程序在该系统中的运行。如果安装了JDK则自带安装好JVM。所以在不同的平台上安装对应的JVM,Java程序和平台之间有一个JVM当做翻译员,实现跨平台性。

比如,你对一个中国人说“你好”,他明白是在问候,会给出正确的反馈,如果对一个美国人说“你好”,他就是一个问号了。JVM可以理解成翻译员就行啦,和美国人交流需要懂英语的翻译员,和韩国人交流需要懂韩语的翻译员。

linux上的JVM就比较懂Linux,Windows的JVM就比较懂Windows,那么,你懂了吗?

Java运行机制

Java的运行机制主要分为两个核心:

  • Java虚拟机 (Java Virtal Machine),简称JVM
  • 垃圾收集机制 (Garbage Collection),简称GC

程序启动之后会运行在JVM中,在运行的过程中会产生垃圾,这个垃圾可以暂时理解为对电脑内存的不必要的占用,GC是回收清理这些垃圾的工具,他也是在JVM中运行的。

就比如我们生活在一个房间中,每天都会产生一些生活垃圾,这些垃圾会占用房间中的一些位置空间,这时你有一个保姆就是GC,它会定时去识别哪些是垃圾,然后将这些垃圾扔掉,存放垃圾的地方就腾出来可以放其他东西啦!!!

JVM

JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。

  • 对于不同的平台,有不同的虚拟机。
  • 只有某平台提供了对应的java虚拟机,Java程序才可在此平台运行
  • Java引入虚拟机的机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行

 

垃圾回收

对于有编程经验的同学应该知道,在C语言中资源的占用是需要我们手动去释放的,稍不注意就会产生内存溢出,内存泄漏的问题,Java相当于一辆自动挡汽车,引入垃圾回收机制,自动把不需要的内存资源回收掉。不再使用的内存空间应回收—— 垃圾回收

  • 在C/C++等语言中,由程序员负责回收无用内存。
  • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空 间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

当然Java中的GC机制也不是万金油,在某些极端情况下仍然会出现内存溢出,我们可以通过实际情况修改参数和代码,暂时就不用担心啦

总结:

  • JVM是安装在计算机上提供Java程序的运行环境
  • 不同的操作系统有不同的JVM,可以实现同一个Java程序不需要做任何修改,就可以运行在不同的操作系统上
  • Java还引入了GC也就是垃圾回收机制,会帮助我们自动回收不需要再占用的内存空间


Tags:Java   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
JavaScript的异步编程常见模式
在JavaScript中,异步编程是一种处理长时间运行操作(如网络请求或I/O操作)的常见方式。它允许程序在等待这些操作完成时继续执行其他任务,从而提高应用程序的响应性和性能。JavaS...【详细内容】
2024-04-12  Search: Java  点击:(2)  评论:(0)  加入收藏
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  Search: Java  点击:(6)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践——如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  Search: Java  点击:(27)  评论:(0)  加入收藏
Oracle正式发布Java 22
Oracle 正式发布 Java 22,这是备受欢迎的编程语言和开发平台推出的全新版本。Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面进行了数千种改进,包括对Java 语言、其API...【详细内容】
2024-03-21  Search: Java  点击:(10)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  Search: Java  点击:(20)  评论:(0)  加入收藏
Java 8 内存管理原理解析及内存故障排查实践
本文介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,以及各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时...【详细内容】
2024-03-20  Search: Java  点击:(15)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20  Search: Java  点击:(24)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18  Search: Java  点击:(27)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  Search: Java  点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  Search: Java  点击:(2)  评论:(0)  加入收藏
▌简易百科推荐
Java 8 内存管理原理解析及内存故障排查实践
本文介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,以及各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时...【详细内容】
2024-03-20  vivo互联网技术    Tags:Java 8   点击:(15)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20    51CTO  Tags:Java代码   点击:(24)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18    51CTO  Tags:Java   点击:(27)  评论:(0)  加入收藏
Java生产环境下性能监控与调优详解
堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,...【详细内容】
2024-02-04  大雷家吃饭    Tags:Java   点击:(57)  评论:(0)  加入收藏
在项目中如何避免和解决Java内存泄漏问题
在Java中,内存泄漏通常指的是程序中存在一些不再使用的对象或数据结构仍然保持对内存的引用,从而导致这些对象无法被垃圾回收器回收,最终导致内存占用不断增加,进而影响程序的性...【详细内容】
2024-02-01  编程技术汇  今日头条  Tags:Java   点击:(70)  评论:(0)  加入收藏
Java中的缓存技术及其使用场景
Java中的缓存技术是一种优化手段,用于提高应用程序的性能和响应速度。缓存技术通过将计算结果或者经常访问的数据存储在快速访问的存储介质中,以便下次需要时可以更快地获取。...【详细内容】
2024-01-30  编程技术汇    Tags:Java   点击:(73)  评论:(0)  加入收藏
JDK17 与 JDK11 特性差异浅谈
从 JDK11 到 JDK17 ,Java 的发展经历了一系列重要的里程碑。其中最重要的是 JDK17 的发布,这是一个长期支持(LTS)版本,它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性...【详细内容】
2024-01-26  政采云技术  51CTO  Tags:JDK17   点击:(90)  评论:(0)  加入收藏
Java并发编程高阶技术
随着计算机硬件的发展,多核处理器的普及和内存容量的增加,利用多线程实现异步并发成为提升程序性能的重要途径。在Java中,多线程的使用能够更好地发挥硬件资源,提高程序的响应...【详细内容】
2024-01-19  大雷家吃饭    Tags:Java   点击:(107)  评论:(0)  加入收藏
这篇文章彻底让你了解Java与RPA
前段时间更新系统的时候,发现多了一个名为Power Automate的应用,打开了解后发现是一个自动化应用,根据其描述,可以自动执行所有日常任务,说的还是比较夸张,简单用了下,对于office、...【详细内容】
2024-01-17  Java技术指北  微信公众号  Tags:Java   点击:(99)  评论:(0)  加入收藏
Java 在 2023 年仍然流行的 25 个原因
译者 | 刘汪洋审校 | 重楼学习 Java 的过程中,我意识到在 90 年代末 OOP 正值鼎盛时期,Java 作为能够真正实现这些概念的语言显得尤为突出(尽管我此前学过 C++,但相比 Java 影响...【详细内容】
2024-01-10  刘汪洋  51CTO  Tags:Java   点击:(78)  评论:(0)  加入收藏
站内最新
站内热门
站内头条