Java前言..

2023-12-17

1.软件开发的分类

软件开发我们可以将其分成三类:移动开发(Android、iOS)、前端开发(HTML、CSS、JavaScript)、后台开发(Java、Python、C++……)

2.软件开发的分工

其中移动开发负责开发一些移动设备上的应用
前端开发主要负责一些桌面网站的开发
后台开发主要负责的项目是服务器相关的东西
但是移动开发和前端开发的产品还有一些其他的联网设备都需要和后台服务器之间进行数据的请求和返回 所以说后台开发明显是比较重要的

3.Java的三大版本

1.Java SE(Java平台标准版)

这是Java ME和Java EE的基础 用于开发一些桌面应用、游戏(当然C++比较擅长这块)

2.Java ME(Java平台微型版)

用于开发一些以前的移动应用 但是现在基本上被Android和iOS占据市场

3.Java EE

用于开发一些企业级的应用 比如:后台管理系统
很多人学习Java 最后都是为了从事这个版本的Java开发 市场需求量最大的也是Java EE

因此综上来说 推荐的学习路线是Java SE->Java EE 我们不用关注Java ME

4.Java的版本演进

我们一般常说的Java版本指的是Java SE或者JDK的版本
企业中用的最多的是Java 8
其实有一开始的版本还都是1.1 1.2 1.3 1.4这样的形式
但是到了下一个版本就变成了5.0 其实5.0就是纪念的作用 本质上就是1.5

5.不同编程语言的跨平台原理

1.C/C++的跨平台原理

使用平台对应的编译器将源文件编译成平台相关的可执行文件 然后加载到各自的平台上运行(可执行文件中是机器指令)

2.Java的跨平台原理

将源文件编译成字节码文件 然后通过平台相关的JVM将字节码解析成机器指令 然后加载到各自的平台上运行(字节码文件中不是机器指令)
Java的跨平台编译生成的是与平台无关的字节码文件

Java跨平台的特点:一次编译 多次运行
C/C++跨平台的特点:多次编译 多次运行

6.Java开发效率高的原因

1.跨平台
不用操心编译器 因为编译器和平台无关
2.垃圾回收机制
不用手动进行内存管理 不用担心内存泄漏问题
3.发展时间长 有强大的技术生态圈
有很多的第三方库以及辅助工具
你遇到的问题 基本上别人也都遇到过

7.学习资料的选择

我们要特别小心非官方的资料 尤其是中文资料
但是就算是官方资料 也可能会有错误 所以说要求我们需要持有观望的态度去看待资料

8.Java开发必备的软件

要想开发并运行一个Java程序 就需要具备两个软件:JDK和JRE
其中JDK为Java开发工具包 他包含了Java程序开发过程中各种常用工具
JRE为Java运行环境 他负责将开发好的Java程序运行到JVM上

从Java官方的文档上看 其实我们可以知道JDK已经包含了JRE 所以说我们只需要单独下载JDK即可 无需下载JRE

9.JDK下载的注意事项

前面我们说过了JDK包含了JRE 但是下载过程中 会默认勾选下载公共JRE 我们需要将这个勾选去掉 如果我们默认选择下载公共JRE的话 那么就会在JDK所在文件夹中看到JRE
JDK的下载路径( JDK )

10.Java IDE的选择

我们需要选择一款IDE进行Java程序的开发 常见的IDE主要有:Eclipse、IDEA
对于Eclipse来说 我们进入官网( Eclipse )以后 可以发现有很多版本 在学习Java语法阶段 我们选择非企业版即可 即Eclipse IDE for Java Developers
下载安装完毕后 如果你直接打开eclipse这个软件的话 他会弹出报错信息 从该信息中我们可以知道 他会去Path中搜索javaw这个文件 但是其实javaw在我们的jdk目录下的bin目录中 Path(环境变量)本质上是一个路径集合 我们需要将javaw所在的路径配置到Path中 然后eclipse就会去Path中的某一个路径下进行搜索 查找指定的文件javaw 所以要求我们将javaw文件所在路径配置到Path路径集合中
成功启动以后 他会让你选择一个工作空间去储存你编写的源文件 你甚至可以将你选择的工作空间设置为默认的储存空间
前面说到的环境变量 我们是往用户变量中的Path添加指定路径 但是往往我们不止配置这一个路径 还可能配置更多的路径
比如我们需要配置的路径有jdk路径下的bin目录 还有jdk路径下的jre路径下的bin目录 但是他们有公共部分 所以我们可以将其抽取出来并且其别名 然后以后 如果jdk的安装路径一旦修改了 那么在环境变量中我们就无需批量修改jdk的安装路径 而是只要修改一处抽取出来的公共部分即可 一般对于这个公共部分我们起别名为JAVA_HOME 然后我们要引用这个路径的话 可以通过%%进行引用 我们也可以在文件资源管理器中直接引用即可
打开eclipse后 我们一般在下方保留Problems和Console两个板块即可 前者用于看报错信息 后者用于看控制台的输出信息
然后关于eclipse中的设置:
比如字体大小的设置 我们可以打开Preferences/General/Appearance/Colors and Fonts/Basic/Text Font就可以设置字体大小了
再比如文本编码的设置 我们可以打开Preferences/General/Content Types/Text 然后设置Default encoding为UTF-8即可 防止乱码现象的产生

11.Java和C/C++的区别

一个Java程序是由类-函数-语句组成 一个C/C++程序是由函数-语句组成
并且Java IDE中一个项目可以允许多个Java程序带有多个main函数 但是C/C++ IDE中一个项目只允许一个相应的程序带有一个main函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java前言.. 的相关文章

随机推荐

  • stm32选题分享 - 单片机森林火灾监控防护预警系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 SIM800L模块的工作原理 基于物联网的森林火灾探测系统框图 Arduino火灾检测系统的电路图 5 软件说明
  • 大模型算法工程师的面试题来了(附答案)

    自 ChatGPT 在去年 11 月底横空出世 大模型的风刮了整一年 历经了百模大战 Llama 2 开源 GPTs 发布等一系列里程碑事件 将大模型技术推至无可争议的 C 位 基于大模型的研究与讨论 也让我们愈发接近这波技术浪潮的核心 最
  • 第二章 VMware的使用-安装-创建虚拟机-安装Linux-常见问题-全网看这一篇就足够

    第二章 VMware的使用 学习目标 1 熟悉VMware软件的作用 2 可以熟练安装VMware软件 3 可以熟练使用VMware创建虚拟计算机 4 可以熟练为虚拟计算机安装Linux操作系统 5 能独立解决安装过程中的常见问题 第一节
  • 传输层协议

    目录 UDP协议 如何向上交付 如何解包 UDP协议的特点 UDP是全双工的 UDP面向数据报 TCP协议 如何向上交付 如何解包 4位首部长度 TCP的可靠性 序号与确认序号 16位窗口大小 6位标记 为什么需要6位标记 ACK SYN
  • Python获取去哪儿旅游数据并作可视化攻略

    嗨喽 大家好呀 这里是爱看美女的茜茜呐 开发环境 版 本 python 3 8 编辑器 pycharm 第三方库 requests gt gt gt pip install requests parsel gt gt gt pip inst
  • Java基础语法..

    1 Java程序和Java项目 一个Java程序是由类 函数 语句组成的 其中类包含函数 函数包含语句 一个Java项目允许存在多个main函数 其实函数就是方法 如果你运行的对象是Java项目的话 那么他只能选择项目中的其中一个main函
  • 微服务架构企业级精品项目——天机学堂

    1 学习背景 各位同学大家好 经过前面的学习我们已经掌握了 微服务架构 的核心技术栈 相信大家也体会到了微服务架构相对于项目一的单体架构要复杂很多 你的脑袋里也会有很多的问号 微服务架构该如何拆分 到了公司中我需要自己搭建微服务项目吗 如果
  • 单片机毕设分享 基于单片机的风速测量系统 - 物联网 嵌入式 stm32 arduino

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 风速计简介 Adafruit风速计传感器 5 软件说明 Arduino风速计的源代码 程序
  • 什么是概率匹配

    概率匹配是一种在信息论和统计学中常用的方法 用于将一个随机事件的概率分布与另一个概率分布进行匹配或逼近 它在数据处理 编码 压缩和模型选择等领域具有重要的应用 为我们理解和处理复杂的概率分布提供了一种有效的工具 首先 让我们来了解概率匹配的
  • 【故障识别】基于遗传算法优化长短期记忆神经网络GA-LSTM 实现数据分类预测附matlab实现

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 【MySQL内置函数】

    目录 前言 一 日期函数 获取日期 获取时间 获取时间戳 在日期上增加时间 在日期上减去时间
  • 【工具栏】(idea)背景图像

    下载之后
  • stm32项目分享 - 单片机森林火灾监控防护预警系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 SIM800L模块的工作原理 基于物联网的森林火灾探测系统框图 Arduino火灾检测系统的电路图 5 软件说明
  • “宠物之家”宠物救助系统的设计与实现 毕业设计源码40439

    赠送源码 毕业设计 SSM 宠物之家 宠物救助系统 https www bilibili com video BV1ag4y1f7rg vd source 72970c26ba7734ebd1a34aa537ef5301 SSM 宠物之家
  • 自信息量和一阶熵

    信息论中 自信息量和一阶熵是用来度量信息的重要概念 它们提供了一种方式来理解和量化信息的不确定性和平均量 对于解决信息传输 编码和存储等问题非常有用 首先 让我们来了解一下自信息量 自信息量是用来度量一个事件的信息量或不确定性的大小 假设有
  • 学 Linux 必会的 ARM 汇编指令

    学习 Linux 系统启动流程 必须熟悉几个汇编指令 总结给大家 这里不是最全的 只列出一些最常用的汇编指令 一 数据处理指令 1 数据传送指令 MOV指令 把一个寄存器的值 立即数 赋给另一个寄存器 或者将一个常量赋给寄存器 MOV指令的
  • lv12 uboot源码配置编译 8

    目录 1 uboot源码获取 2 uboot特定 3 uboot源码结构 3 1 平台相关代码 3 1 1 arch 3 1 2 board 3 2 平台无关代码 3 2 1 common下放的都是uboot的命令 3 3 配置文件 帮助文
  • DS八大排序之冒泡排序和快速排序

    前言 前两期我们已经对 插入排序 直接插入排序和希尔排序 和 选择排序 直接选择排序和堆排序 进行了详细的介绍 这一期我们再来详细介绍一组排序 交换排序 即耳熟能详的冒泡排序和赫赫有名的快速排序 本期内容介绍 冒泡排序 快速排序 Hoare
  • prometheus监控交换机

    本例以监控华为交换机为例 prometheus环境搭建见前面的文章 1 环境准备 yum install y gcc gcc g make net snmp net snmp utils net snmp libs net snmp dev
  • Java前言..

    1 软件开发的分类 软件开发我们可以将其分成三类 移动开发 Android iOS 前端开发 HTML CSS JavaScript 后台开发 Java Python C 2 软件开发的分工 其中移动开发负责开发一些移动设备上的应用 前端开