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.rhkb.cn/news/289132.html

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

相关文章

PhpStorm 2023 for Mac/Win:开启PHP集成开发新纪元,让编程更高效更智能

在数字时代的浪潮中,PHP作为一种广泛应用的服务器端脚本语言,其重要性不言而喻。而要在PHP的世界里游刃有余,一款强大的集成开发环境(IDE)是必不可少的。PhpStorm 2023,正是这样一款能够助您一臂之力的编程…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(三)

概览 承接上一篇博文: Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(二)我们在其中讨论了如何使用第三方强大通用的钩子库 SwiftHook 来协助我们完成 NSObject 构造器 init 的 SWIZZ 操作。我们还讨论了为什么用 print 打印对象信息时会发生崩溃…

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装?

如何借用 NTFS 交换数据流 实现隐藏文件?如何使用【文件包含】PHP伪协议?不同操作系统如何实现文件隐藏和木马伪装? NTFS交换数据流(Alternate Data Streams, ADS)是NTFS文件系统特有的一种功能,它允许在同一个文件名下存储多个数据流。除了默认的数据流(通常用于存储文…

ExoPlayer架构详解与源码分析(12)——Cache

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

免费的CMS平台,免费CMS文章更新系统

随着网站建设的需求日益增加,寻找一款免费的CMS平台以及配套的文章更新系统成为了许多网站所有者的首要任务。本文将探讨免费的CMS平台的特点,以及CMS文章更新系统的作用和如何选择合适的系统。 免费的CMS平台的特点 开源免费:免费的CMS平台…

Ansible-1

Ansible是一款自动化运维、批量管理服务器的工具,批量系统配置、程序部署、运行命令等功能。基于Python开发,基于ssh进行管理,不需要在被管理端安装任何软件。Ansible在管理远程主机的时候,只有是通过各种模块进行操作的。 需要关…

mysql80-DBA数据库学习1-数据库安装

掌握能力 核心技能 核心技能 mysql部署 官网地址www.mysql.com 或者www.oracle.com https://dev.mysql.com/downloads/repo/yum/ Install the RPM you downloaded for your system, for example: yum install mysql80-community-release-{platform}-{version-number}.noarch…

JAVA虚拟机实战篇之GC调优[2](解决GC问题的手段)

文章目录 版权声明解决GC问题的手段优化基础JVM参数-Xmx 和 –Xms-XX:MaxMetaspaceSize 和 –XX:MetaspaceSize-Xss虚拟机栈大小‐XX:SurvivorRatio和‐XX:MaxTenuringThreshold-XX:DisableExplicitGC 案例:垃圾回收器的选择复习:垃圾回收器的组合关系背…

vue 元素拖动,复制,已复制元素可移动,快捷方便,已解决

注意:使用当前组件时,请先了解组件代码逻辑 下方组件根据自己的需求来更改响应的元素id,调整代码实现逻辑,这里不过多解释 import Vue from "vue";/*** 拖拽*/ Vue.directive("Drag", (el) > {const move…

MySQL表内容的增删查改

在前面几章的内容中我们学习了数据库的增删查改,表的增删查改,这一篇我们来学习一下对表中的内容做增删查改。 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 1.创建Create 我们先创建…

深入解析MD5哈希算法:原理、应用与安全性

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 本文将深入探讨MD5哈希算法的工作原理、应用场景以及安全性问题。我们将了解MD5如何生成固定长度的哈希值,以及它在数…

BUG未解之谜01-指针引用之谜

在leetcode里面刷题出现的问题,当我在sortedArrayToBST里面给root赋予初始值NULL之后,问题得到解决! 理论上root是未初始化的变量,然后我进入insert函数之后,root引用的内容也是未知值,因此无法给原来的二叉…

could not resolve com.android.tools.build:gradle:4.1.1.

一、报错信息 could not resolve com.android.tools.build:gradle:4.1.1.其实是因为你的网络不能从AS工程提供的mavenCentral()、google()和jcenter()等仓库下载相应的依赖。 二、解决方法 在build.gradle(Project)中,在原先的maven仓库前加上阿里云镜像源。这里…

如何遍历整个DOM树

原文链接:[如何遍历整个DOM树(外网原文链接)](https://chrisdeo.github.io/2019/07/20/%E5%A6%82%E4%BD%95%E9%81%8D%E5%8E%86%E6%95%B4%E4%B8%AADOM%E6%A0%91/) 作为前端开发工程师,我们大部分工作内容其实还是围绕着DOM在进行Javascript的编写&#xf…

SQL把统计结果作为条件进行查询

今天在社区看到一个问题如何返回 统计数值,比较简单,分享一下写法: --测试数据 if not object_id(NTempdb..#T) is nulldrop table #T Go Create table #T([name] nvarchar(21),[year] nvarchar(21),[time] nvarchar(22)) Insert #T select …

手写SpringBoot(二)之动态切换Servlet容器

系列文章目录 手写SpringBoot(一)之简易版SpringBoot 手写SpringBoot(二)之动态切换Servlet容器 手写SpringBoot(二)之动态切换Servlet容器 文章目录 系列文章目录手写SpringBoot(二&#xff…

KubeSphere简单介绍及安装使用

KubeSphere 概述 官网地址:https://kubesphere.io/zh/ 什么是 kubesphere KubeSphere 是一个开源的多云容器管理平台,旨在简化企业级 k8s 集群的部署、管理和运维。它提供了一个可视化的管理界面,帮助用户更轻松地管理和监控 k8s 集群&…

访问者模式(数据与行为解耦)

目录 前言 UML plantuml 类图 实战代码 SimpleFileVisitor FileVisitor 接口 删除指定文件夹 模板 IVisitor IVisitable Client 前言 一个类由成员变量和方法组成,成员变量即是类的数据结构,方法则是类的行为。 如果一个类的数据结构稳定&am…

超声波清洗机家用的哪家好?眼镜清洗器推荐!一分钟选购洗眼镜机

相信大家都知道,眼镜脏的话可以使用超声波清洗机清洁!因为超声波清洗机能够通过振频的原理,对眼镜的污垢进行清洗。有的朋友会问,我手洗不可以吗?手洗当然可以,但是手洗对于镜片的清洗有作用,但…

【C语言】 gets()puts()fgets()fputs()字符串输入输出函数的用法

文章目录 C语言中的字符串输入输出函数:gets、puts、fgets与fputsgets函数puts函数fgets函数fputs函数 C语言中的字符串输入输出函数知识点总结结语 C语言中的字符串输入输出函数:gets、puts、fgets与fputs 在C语言中,处理字符串的输入和输出…