1. Java概述

news2024/11/23 20:42:07

文章目录

  • 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.coloradmin.cn/o/1553775.html

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

相关文章

对接中泰极速行情 | DolphinDB XTP 插件使用教程

XTP 是中泰证券推出的高性能交易平台,专为专业投资者提供高速行情及交易系统,旨在提供优质便捷的市场接入通道。目前支持股票、基金、ETF、债券、期权等多个市场,可满足不同投资者需求。 基于 XTP 官方 C SDK,DolphinDB 开发了 X…

台灯护眼灯哪个牌子好?护眼灯十大品牌推荐

随着近视率的上升,越来越多的人开始重视眼睛健康,尤其是学生群体面临着巨大的学习压力。家长们也意识到良好的眼睛保护至关重要,开始关注护眼台灯的作用。在选择护眼灯时,家长们常常会陷入犹豫,不知道哪个品牌更可靠。…

书生·浦语大模型开源体系(一)论文精读笔记

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

C++:sizeof关键字(7)

sizeof用于统计数据所占用内存的大小 用法&#xff1a;sizeof( 变量名称 / 变量) 直接上代码&#xff0c;可以在让大家直观的感受到sizeof关键字的用法 #include<iostream> using namespace std;// 语法&#xff1a; sizeof&#xff08;数据类型|变量名&#xff09;// 用…

MYSQL数字函数实操宝典:场景化SQL语句一网打尽

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MYSQL数字函数&#xff1a;不可不知的数据处理利器 文章目录 Part 1: 准备 &#x…

云数据仓库Snowflake论文完整版解读

本文是对于Snowflake论文的一个完整版解读&#xff0c;对于从事大数据数据仓库开发&#xff0c;数据湖开发的读者来说&#xff0c;这是一篇必须要详细了解和阅读的内容&#xff0c;通过全文你会发现整个数据湖设计的起初原因以及从各个维度&#xff08;架构设计、存算分离、弹性…

海外媒体发稿:3种媒体宣发套餐内容推广方法

现如今&#xff0c;伴随着信息技术的不断进步和推广&#xff0c;新闻媒体宣发变成企业品牌推广的重要手段之一。为了方便让新闻信息新闻资讯传递给目标群体&#xff0c;公司一般会选择不同的套餐内容和推广方法。下面我们就详细介绍3种新闻资讯新闻媒体宣发套餐内容推广方法。 …

Qt 完成图片的缩放拖动

1. 事件和函数 主要使用事件paintEvent(QPaintEvent *event)和drawTiledPixmap函数实现绘图。 paintEvent事件在改变窗口大小、移动窗口、手动调用update等情形下会被调用。需先了解下绘图该函数的用法。 - QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPi…

kafka集群介绍+部署Filebeat+Kafka+ELK

一、消息队列 1、为什么需要消息队列&#xff08;MQ&#xff09; 主要原因是由于在高并发环境下&#xff0c;同步请求来不及处理&#xff0c;请求往往会发生阻塞。比如大量的请求并发访问数据库&#xff0c;导致行锁表锁&#xff0c;最后请求线程会堆积过多&#xff0c;从而触…

安卓Activity上滑关闭效果实现

最近在做一个屏保功能&#xff0c;需要支持如图的上滑关闭功能。 因为屏保是可以左右滑动切换的&#xff0c;内部是一个viewpager 做这个效果的时候&#xff0c;关键就是要注意外层拦截触摸事件时&#xff0c;需要有条件的拦截&#xff0c;不能影响到内部viewpager的滑动处理…

【I.MX6ULL移植】Ubuntu-base根文件系统移植

1.下载Ubuntu16.04根文件系统 http://cdimage.ubuntu.com/ 1 2 3 4 5 2.解压ubuntu base 根文件系统 为了存放 ubuntu base 根文件系统&#xff0c;先在 PC 的 Ubuntu 系统中的 nfs 目录下创建一个名为 ubuntu_rootfs 的目录&#xff0c;命令如下&#xff1a; 【注意&…

C# 学习第五弹——语句

一、if语句 —简单if语句 —if else 语句 —if else if else 语句 1、简单if语句 if&#xff08;表达式&#xff09;{语句} &#xff08;1&#xff09;表达式必须使用圆括号括起来&#xff1b; &#xff08;2&#xff09;表达式&#xff1a;关系表达式或逻辑表达…

数字孪生|初识山海鲸可视化

哈喽,你好啊,我是雷工! 最近开始学习了解数字孪生的软件,看山海鲸可视化介绍的不错,便准备下载了试一下。 01 、概述 该软件是一套技术自主可控的、国产自研的、零代码数字孪生可视化工具集, 02、产品定位 该软件致力于数字孪生应用的推广,通过提供一站式的多快好省…

接口自动化框架搭建(五):生成allure报告

1&#xff0c;安装allure 参考连接&#xff1a; https://blog.csdn.net/lixiaomei0623/article/details/120185069 2&#xff0c;安装python的allure依赖 pip install allure-pytest或者从pycharme上安装 3&#xff0c;生成报告 执行前目录 执行测试用例 import pytest …

pulsar: kafka on pulsar之把pulsar当kafka用

一、下载协议包&#xff08;要和pulsar版本比较一致&#xff09; https://github.com/streamnative/kop/releases?q2.8.0&expandedtrue二、在pulsar的根目录创建一个protocols目录&#xff0c;将上述包放到这个目录里 三、编辑broker.conf(如果是集群)或者standalone.con…

Node爬虫:原理简介

在数字化时代&#xff0c;网络爬虫作为一种自动化收集和分析网络数据的技术&#xff0c;得到了广泛的应用。Node.js&#xff0c;以其异步I/O模型和事件驱动的特性&#xff0c;成为实现高效爬虫的理想选择。然而&#xff0c;爬虫在收集数据时&#xff0c;往往面临着诸如反爬虫机…

前端性能优化:掌握解决方案

课程介绍 我们常说性能永远是第一需求&#xff0c;作为一个前端工程师&#xff0c;不管使用什么框架&#xff0c;不管从事什么类型的网站或应用开发&#xff0c;只要是项目被用户使用&#xff0c;性能优化就永远是你需要关注的问题。通常情况下&#xff0c;工程师们在深入了解…

企业微信机器人java代码对接

如何使用群机器人 假设webhook是&#xff1a;https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa 特别特别要注意&#xff1a;一定要保护好机器人的webhook地址&#xff0c;避免泄漏&#xff01;不要分享到github、博客等可被公开查…

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

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

小狐狸JSON-RPC:钱包连接,断开连接,监听地址改变

detect-metamask 创建连接&#xff0c;并监听钱包切换 一、连接钱包&#xff0c;切换地址&#xff08;监听地址切换&#xff09;&#xff0c;断开连接 使用npm安装 metamask/detect-provider在您的项目目录中&#xff1a; npm i metamask/detect-providerimport detectEthereu…