1. Java概述

文章目录

  • 1.Java语言概述
    • 1.1 Java介绍
      • 1.1.1 软件开发概述
      • 1.1.2 计算机语言
      • 1.1.3 Java 简史
      • 1.1.4 Java 技术体系平台
      • 1.1.5 Java在各领域的应用
      • 1.1.6 Java语言特点
      • 1.1.7 Java核心机制一-Java虚拟机
      • 1.1.8 Java核心机制二-垃圾回收
      • 1.1.9 Java开发工具
    • 1.2 Java环境搭建
      • 1.2.1 JDK、JRE
      • 1.2.2 JDK、JRE、JVM关系
      • 1.2.3 命令行查看jdk版本
      • 1.2.4 下载并安装JDK
      • 1.2.5 配置环境变量path
    • 1.3 Java 开发体验-HelloWord
    • 1.4 Java中的注释
      • 1.4.1 单行注释 多行注释
      • 1.4.2 文档注释
    • 1.5 Java API文档说明

1.Java语言概述

1.1 Java介绍

1.1.1 软件开发概述

  • 软件即数据和指令的集合。有系统软件和应用软件之分。

  • 人机交互方式

    1. 图形化界面 - Graphical User Interface GUI

    2. 命令行方式 - Command Line Interface CLI

Pascal之父Nicklaus Wirth: “Algorithms+Data Structures=Programs”

  • 常用的DOS命令(不区分大小写)

    1. dir : 列出当前目录下的文件以及文件夹**(directory-[dəˈrektəri]-目录)**

    2. md: 创建目录**(made directory)**

    3. rd: 删除目录 (remove dirdectory)

      rd *.txt:将当前目录下.txt文件删除,*表示未知的

    4. cd : 进入指定目录

    5. cd.. : 退回到上一级目录

    6. cd\: 退回到根目录**(cd/一样)**

    7. del : 删除文件**(delete)**

    8. exit : 退出 dos 命令行

    9. 补充:echo javase>1.doc

1.1.2 计算机语言

机器语言->编译语言->高级语言

1.1.3 Java 简史

  • 1991年 Green项目,开发语言最初命名为Oak (橡树)

  • 1994年,开发组意识到Oak 非常适合于互联网

  • 1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作

  • 1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最

  • 1998年,发布JDK 1.2,同年发布企业平台J2EE

  • 1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生

  • 2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0(此后1.6->6.0,1.7->7.0)

  • 2009年,Oracle公司收购SUN,交易价格74亿美元

  • 2011年,发布JDK 7.0

  • 2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本

  • 2017年,发布JDK 9.0,最大限度实现模块化

  • 2018年3月,发布JDK 10.0,版本号也称为18.3(9.0以后用时间来命名)

  • 2018年9月,发布JDK 11.0,版本号也称为18.9

1.1.4 Java 技术体系平台

image-20220709164543854

1.1.5 Java在各领域的应用

  • 企业级应用

  • Android平台应用

  • 大数据平台开发

  • 移动领域应用

1.1.6 Java语言特点

特点一:面向对象

  • 两个基本概念:类、对象

  • 三大特性:封装、继承、多态

特点二:健壮性

  • 垃圾回收机制
  • 去除C语言指针

特点三:跨平台性

  • 跨平台性:“Write once , Run Anywhere”(通过JVM实现)

  • 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

    就像坤坤在南非和北京开演唱会,不同的环境,要搭建不同的平台,而这些不同的平台就像WIn版的JVM,linux版的JVM和Mac的JVM。然后坤坤就能在不同的地域中给爱坤人士开演唱会了

1.1.7 Java核心机制一-Java虚拟机

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

  • 对于不同的平台,有不同的虚拟机。

  • 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行

  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”

  • .java源代码编译成.class字节码文件,我们使用JVM中类的加载器和解释器对生成的字节码文件进行解释运行,字节码文件中对应的类就是这时加载到内存中去的。而虚拟机又是在操作系统上运行,操作系统又依赖于计算机硬件

  • 在EditPlus中源代码和字节码文件都在同一个文件夹下可以直接观察到

  • 在eclipse中,同样也有源代码编译成字节码文件

    img

1.1.8 Java核心机制二-垃圾回收

  • 不再使用的内存空间回收—— 垃圾回收。

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

  • Java程序还会出现内存泄漏和内存溢出问题吗?Yes!

1.1.9 Java开发工具

文本编辑工具:

  • 记事本

  • UltraEdit

  • EditPlus

  • TextPad

  • NotePad

Java集成开发环境(IDE):

  • JBuilder

  • NetBeans

  • Eclipse

  • MyEclipse

  • IntelliJ IDEA

1.2 Java环境搭建

1.2.1 JDK、JRE

  • JDK

    (Java Development Kit Java开发工具包)

    JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具:编译工具(javac.exe) 打包工具(jara.exe)等

  • JRE

    JRE(Java Runtime Environment Java运行环境)

    包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

使用JDK的开发工具完成的java程序,交给JRE去运行。

1.2.2 JDK、JRE、JVM关系

  • JDK = JRE + 开发工具集(例如Javac编译工具等)

  • JRE = JVM + Java SE标准类库

Java 8.0 Platform

image-20220709182656631

1.2.3 命令行查看jdk版本

1.2.4 下载并安装JDK

官方网址:www.oracle.com

安装JDK

  • 傻瓜式安装,下一步即可。
  • 建议:安装路径不要有中文或者空格等特殊符号。(可能不识别!)
  • 当提示安装 JRE 时,正常在JDK安装时已经装过了,但是为了后续使用Eclipse等开发工具不报错,建议也根据提示安装JRE。

1.2.5 配置环境变量path

  • 在dos命令行中敲入javac,出现错误提示

    错误原因:当前执行的程序在当前目录下不存在。windows系统在path的环境变量指定的目录中仍未找到,所以报错。所以配置号环境变量便可以在任何目录下执行java的开发工具。

  • 输入执行程序,系统首先会在当前目录下查找,如果没有,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。所以希望在任何目录下都可以执行Java的工具,只需要将Java工具所在路径定义到path环境变量中,让系统帮我们取找运行的程序。

    配置方法:

    1. 我的电脑–属性–高级系统设置–环境变量

    2. 编辑 path 环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔开即可。(应为window本来path就有一些预定义的path值,win11是不用分号的,因为win11是填空的形式)

    3. 打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。

  • 电脑安装了多个版本的jdk,使用的是那个版本,全看环境变量中配置的是那个版本。

  • 系统在查找环境变量的时候会右上到下逐个路径查找,所以如果在前面的路径中发现了同名的,就不会往下查找了,和我们的预期不符合。所以配置path环境变量最好上移到第一个,这样就不会出问题了

1.3 Java 开发体验-HelloWord

步骤:

  1. 将 Java 代码编写到扩展名为 .java 的文件中。
  2. 通过 javac 命令对该 java 文件进行编译
  3. 通过 java 命令对生成的 class 文件进行运行

之前配置的环境变量就是能在任何目录下都可以执行Java的工具,如javac来编译,java运行。

步骤一:编写

选择最简单的编辑器:记事本。敲入代码

//第一个Java程序
public class Test{public static void main(String[] args) {System.out.println(Hello World!);} 
}

将文件保存成Test.java,这个文件是存放java代码的文件,称为源文件

注意要显示文件扩展名,这时练好习惯。方法如下

步骤二:编译

有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。在该源文件目录下,通过javac编译工具对Test.java文件进行编译。如果程序没有错误,没有任何提示,但在当前目录下会出现一个Test.class文件,该文件称为字节码文件,也是可以执行的java的程序。

注意编译时用javac时要用扩展名,用java运行时不用扩展名。

步骤三:运行

  • 有了可执行的java程序(Test.class字节码文件)

  • 通过运行工具java.exe对字节码文件进行执行。

  • 出现提示:缺少一个名称为main的方法。

  • 因为一个程序的执行需要一个起始点或者入口,所以在Test类中的加入

    public static void main(String[] args){ }

  • 对修改后的Test.java源文件需要重新编译,生成新的class文件后,再进行执行。

  • 发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。

  • 想要和JVM来个互动,只要在main方法中加入一句System.out.println(“Hello World");因为程序进行改动,所以再重新编译,运行即可。

1.4 Java中的注释

1.4.1 单行注释 多行注释

/注释文字/ /*注释文字*/

  1. 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。

  2. 多行注释里面不允许有多行注释嵌套。

1.4.2 文档注释

格式:

/**
@author指定java程序的作者
@version 指定源文件的版本
*/
  • 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

  • 操作方式:

    具体例子:

    生成文件夹:

    双击结果,对文档的解释:

  1. 声明为public的类必须和源文件名相同,所以一个源文件中可以有多个类,但是只能由一个public类。

  2. Java应用程序的执行入口是main()方法。它有固定的书写格式:

    public static void main(String[] args) {...}

  3. 编译过程:编译过程会生成一个或多个字节码文件,字节码文件名和java源文件中定义的类名时相同的。多少个类就由多少个字节码文件。

1.5 Java API文档说明

  • API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。

  • Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。

  • 下载API:http://www.oracle.com/technetwork/java/javase/downloads/index.html

image-20220712232813572

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/778847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

农村分散式生活污水分质处理及循环利用技术指南

标准已完成意见征集: 本文件给出了农村分散式生活污水分质处理及循环利用的总则、污水收集、污水分质处理、资源化利用、利用模式、运维管理等的指导。 本文件适用于农村分散式生活污水分质处理及循环利用的设施新建、扩建和改建工程的设计、施工与运维。 注:本文件…

算法系列--动态规划--回文子串系列

💕"我们好像在池塘的水底,从一个月亮走向另一个月亮。。"💕 作者:Mylvzi 文章主要内容:算法系列–动态规划–回文子串系列 今天为大家带来的是算法系列--动态规划--回文子串系列(1),本文重点掌握如何快速判…

Echarts地图之——如何给地图添加外边框轮廓

有时候我们希望给地图外围加一圈边框来增加美感 但实际情况中,我们需要把国界的边框和各个省份属于国界的边框相吻合,否则就会造成两者看起来是错位的感觉 这就需要我们把echarts registerMap的全国省份json和国界边框json的坐标相一致。 这个json我们可…

佳能机械制造将莅临2024第13届生物发酵产品与技术装备展

参展企业介绍 过滤与分离设备专业制造商 •碟式离心机及机组模块、系统 •卧式螺旋卸料沉降离心机及系统 江苏佳能机械制造有限公司位于中国“龙虾之都”——江苏盱眙,地处淮安西南部,淮河下游,洪泽湖南岸&#…

网络七层模型之表示层:理解网络通信的架构(六)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【LeetCode热题100】124.二叉树的最大路径和(二叉树)

一.题目要求 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root …

Doris实践——叮咚买菜基于OLAP引擎的应用实践

目录 前言 一、业务需求 二、选型与对比 三、架构体系 四、应用实践 4.1 实时数据分析 4.2 B端业务查询取数 4.3 标签系统 4.4 BI看板 4.5 OLAP多维分析 五、优化经验 六、总结 原文大佬介绍的这篇Doris数仓建设实践有借鉴意义的,这些摘抄下来用作沉淀学…

docker-compose mysql

使用docker-compose 部署 MySQL(所有版本通用) 一、拉取MySQL镜像 我这里使用的是MySQL8.0.18,可以自行选择需要的版本。 docker pull mysql:8.0.18二、创建挂载目录 mkdir -p /data/mysql8/log mkdir -p /data/mysql8/data mkdir -p /dat…

软件测试基础理论、测试用例及设计方法、易混淆概念总结【软件测试】

一.软件测试基础理论 1.软件定义 软件是计算机系统中与硬件相互依存的一部分,包括程序、数据以及与其相关文档 的完整集合。 程序是按事先设计的功能和性能要求执行的指令序列; 数据是使程序能正常操作信息的数据结构; 文档是与程序开发、维…

对form表单对象中数组中的字段进行校验的方法

当对form表单中&#xff0c;数组readings中的字段进行校验时&#xff0c;prop和rules绑定要写成动态的&#xff0c;如下代码 <div v-for"(item,index) in form.readings"><el-form-item label"上次读数" > <!--prop"scds"-->…

LocalDateTime与时间戳转换

LocalDateTime与时间戳转换 1. 为什么LocalDateTime转时间戳需要时区2. 工具类 1. 为什么LocalDateTime转时间戳需要时区 讲道理&#xff0c;不管在什么时区&#xff0c;系统获取当前时间的时间戳都是一样的【因为时间戳指的是自 1970 年1月1日以来的秒数&#xff0c;所以无论…

使用ai智能写作场景之gpt整理资料,如何ai智能写作整理资料

Ai智能写作助手&#xff1a;Ai智能整理资料小助手 Ai智能整理资料小助手可试用3天&#xff01; 通俗的解释一下怎么用ChatGPT来进行资料整理&#xff1a; 搜寻并获取指定数量的特定领域文章&#xff1a; 想像你在和我说话一样&#xff0c;告诉我你想要多少篇关于某个话题的文…

在 Windows 11 上安装 MongoDB

MongoDB 是一个流行的 NoSQL 数据库&#xff0c;它提供了灵活的数据存储方案&#xff0c;而 MongoDB Compass 则是一个可视化管理工具&#xff0c;可以更轻松地与 MongoDB 数据库交互和管理。在本文中&#xff0c;我们将介绍如何在 Windows 11 上安装 MongoDB&#xff0c;并配置…

ESCTF-Web赛题WP

0x01-初次见面-怦然心动:your name? 随便输入一个字 根据提示可以看到 我们需要看源代码 直接 搜索 secret 关键字或者 ESCTF flag ESCTF{K1t0_iS_S0_HAPPy} 0x02-小k的请求 更安全的传参 post 参数为ESCTF 值为 love 自己的ip 同时还有个要求 是需要从度娘转过来 https://www…

QMT量化策略实盘(二)交易触发定时器run_time

上一篇分享中&#xff0c;介绍了QMT量化实盘中最常用的下单函数passorder&#xff0c;和它主要的参数。 如果再结合一个交易触发函数&#xff0c;就可以实现简单的量化交易策略了&#xff01;比如下面的代码可以实现&#xff1a; 在集合竞价期间以指定价买入中信证券100股 #c…

<el-table>设置一列为固定字段,其他列为循环生成

<el-table :data"tableData" style"width: 100%"><el-table-columnprop"name"label"固定字段名":formatter"formatter"></el-table-column><el-table-columnv-for"(item, index) in wordsColumns…

从小白-入门-进阶-高阶,四个阶段详细讲解单片机学习路线!

大家好&#xff0c;今天给大家介绍从小白-入门-进阶-高阶&#xff0c;四个阶段详细讲解单片机学习路线&#xff01;&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 单片机学习路…

简单线程池的实现

线程池的代码可以写的很复杂&#xff0c;这里就稍微简单一些 首先来看一下线程池的原则&#xff0c;下面的大框是服务器&#xff0c;而在服务器中维护一个任务队列。 然后在server中预先创建一批线程&#xff0c;这批线程和任务队列合在一起只用向外界提供一个入队列的接口。 …

cesium vue 绘制标记实体(撒点),监听鼠标左击事件

添加实体 const viewer new Cesium.Viewer(cesiumContainer, {})viewer.entities.add()查看实体 const viewer new Cesium.Viewer(cesiumContainer, {}) const billboard viewer.entities.add({...})viewer.zoomTo(billboard)删除实体 根据实体删除 if (billboard.value…

【热门话题】Yarn:新一代JavaScript包管理器的安装与使用

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Yarn&#xff1a;新一代JavaScript包管理器的安装与使用引言一、Yarn的安装1. 系…