JAVA基础02-Java语言基础以及编译准备工作

什么是JAVA语言

    Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用的两个特征。

(可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式应用程序等)


JAVA语言的三大体系

 Java语言的三大体系分别是Java SE(Java Platform, Standard Edition),Java EE(Java Platform, Enterprise Edition)和Java ME(Java Platform, Micro Edition)。这三个体系分别对应不同的应用场景和需求,从基础的桌面应用到复杂的企业级系统,再到移动设备应用,Java提供了覆盖面广泛的解决方案。

Java SE
Java SE是Java的标准版,它包含了Java基本类库和语法,主要用于开发图形用户界面(GUI)、复杂逻辑和高性能的桌面应用程序。Java SE可以用于桌面、服务器、嵌入式环境和实时环境。它包含JVM(Java虚拟机)、JRE(Java运行时环境)、JDK(Java开发工具包)和Java语言本身。
 
Java EE

Java EE是基于Java SE的企业版,它提供了一系列服务和API,增加了编写企业级应用程序的类库。Java EE支持分布式、基于组件、安全、可靠、可扩展和易于管理的企业级应用程序的开发和部署。它提供Web服务、组件模型、管理和通信API,适用于大型企业和关键业务应用。
 
Java ME
Java ME是Java的微型版,主要用于消费性电子产品或嵌入式系统中的应用程序。它支持有限连接、内存和


JAVA语言的特点

1.简单性

摒弃了C++中多继承、指针的概念,并且有了一套垃圾回收的机制

2.面向对象

举例:警察抓小偷

面向过程:抓小偷(警察,小偷)

面向对象:警察.抓小偷(小偷)

3.分布式

应用网络编程,可以将单体程序拆分为多个微服务,从而将多个服务部署在不同的服务器中

4.健壮性

强类型语言、异常处理机制、垃圾回收机制

5.安全性

提供一套安全处理机制

6.平台独立与可移植性(编译性语言)

一次编译,多次运行

7.多线程

8.动态性


JAVA语言的历史(现在JDK17)

Java语言的发展经历了多个重要阶段:

  • 1995年5月23日,Java语言诞生,第一个JDK(Java Development Kit)1.0发布。

  • 1996年,JDK 1.1发布,引入了许多基础技术,如JDBC、JavaBeans、RMI等

  • 1997年,JDK 1.2发布,带来了Swing图形界面库

  • 1998年,JDK 1.3发布,增加了JNI(Java Native Interface)等特性

  • 1999年,JDK 1.4发布,引入了Java正则表达式、异常链、IPv6支持等新特性

  • 2002年,JDK 1.5发布,也称为Java 5,引入了泛型、注解、自动装箱/拆箱、foreach循环等新特性。

  • 2004年,JDK 1.6发布,也称为Java 6,带来了性能改进和更好的脚本语言支持。

  • 2006年,JDK 1.7发布,也称为Java 7,引入了switch语句中的字符串、try-with-resources、多个异常捕获等新特性。

  • 2011年,JDK 1.8发布,也称为Java 8,引入了Lambda表达式、Stream API、日期和时间API等新特性。

  • 2014年,JDK 1.9发布,也称为Java 9,引入了模块化系统Project Jigsaw。

  • 2017年,JDK 1.10发布,也称为Java 10。

  • 2018年,JDK 1.11发布,也称为Java 11。

  • 2019年,JDK 1.12发布,也称为Java 12。

  • 2020年,JDK 1.13发布,也称为Java 13。

  • 2021年,JDK 1.14发布,也称为Java 14。

  • 2021年,JDK 1.15发布,也称为Java 15。

  • 2021年,JDK 1.16发布,也称为Java 16。

  • 2021年,JDK 1.17发布,也称为Java 17。


Java的安装与环境配置

--从甲骨文官网下载1.8版本的JDK

--执行安装程序(全部默认下一步即可)

--默认安装在C:\Program Files\Java(尽量不要改路径,如果该路径注意英文命名)

其中 JDK (Java程序的开发工具)  --JRE (Java程序的运行环境)

--配置Java的环境变量:

--打开高级系统设置

--打开环境变量

1.win10操作系统

--在系统变量中配置JAVA_HOME(新建)

--在path中指定jdk的bin路径(新建)

ps:%..%是解析其中间的内容,bin是其中的路径 即设定默认路径

2.win7操作系统


JDK JRE和JVE关系

1)JDK,JRE和JVM关系

· JDK(Java Development Kit),Java开发工具包,主要用于开发,在JDK7前,JDK包括JRE

· JRE(Java Runtime Environment),Java程序运行的核心环境,包括JVM和一些核心库

· JVM(Java Virtual Machine),VM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,是JRE核心模块。

2)JVM

JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

Java虚拟机的主要任务是装载class文件,并执行其中的字节码,不同的Java虚拟机中,执行引擎可能有不同的实现。


JAVA的第一个HelloWorld

--新建一个文件夹,用于存放Java源文件

--新建一个Java源文件,后缀是.java(电脑自带的文本文档即可,或notepad++)

//使用class来描述一个类,类名要和文件名一致
class hello{//提供Java程序的入口 main方法public static void main(String[] args){//输出语句System.out.println("hello world!!!");}
}

JAVA程序的编译与运行

1、打开dos命令行(输入cmd即可打开)

2、切换当前目录为Java源文件的目录

注意如果Java源文件在其他盘符则要先切换到其他盘符,比如:java文件在d盘,则使用d: 切换到d盘

再使用cd切换当前目录 :cd C:\Users\jerry\Desktop\test

3、编译Java文件,使用javac进行编译(会生成.class文件) : javac Hello.java (javac 文件名)

4、运行Java程序:java Hello (java 类名)

执行流程:Hello.java ---> Hello.class--->JVM

CLASSPATH的作用以及配置(目的是告诉虚拟机在哪找class文件)

注意:Java源文件时,要么在当前源文件的路径下编译,要么在编译时提供Java源文件的绝对路径

ClassPath指的是java文件在编译或者运行的时候类加载的路径

1、在系统环境变量中添加CLASSPATH,指定类加载的路径(如果类路径固定,可以使用这种方式)

2、动态使用CLASSPATH的方式 -cp (比较灵活的 ,可以使用这种方式)

java -cp .;C:\Users\jerry\Desktop\code Hello

Java程序的组织形式

1、以.java作为程序的后缀

2、当类是被public修饰时,类名和文件名要一致(大小写一致)

3、如果该Java源文件中没有被public修饰的类时,则类名可以和文件名不一致

4、一个Java源文件中可以有多个类,在编译的时候会生成多个class文件,但是被public修饰的类只能有一个

//public 是公共的意思【修饰符】 class用于修饰类  hello表示为当前类的类名
//1、类一定要public修饰吗?不一定
//2、但是如果类被public修饰,则类名必须要和文件名一致[大小写都要一致]
//3、运行java程序需要提供main方法,能在一个java源文件中有多个类
//4、被public修饰的类在同一个java源文件中只能有一个,所有类也可以没有public修饰
//如果类不是被public修饰,则类名不需要和文件名一致class hello{//提供Java程序的入口 main方法public static void main(String[] args){//输出语句System.out.println("hello world!!!");}
}class demo{
}
 

初学者容易犯的错误

1、CLASSPATH指的是类的加载路径,而不是Java源文件的路径【建议不加

2、初学者容易忽略后缀名

3、注意在Java中是大小写敏感

4、main方法的格式(固定的),提供main方法


分隔符,标识符,关键字的使用

1.分隔符(语句的结束使用英文的分号)

():包含表达式、方法参数列表  ;   {}:包含类体、方法体、代码块

2.标识符:用于定义变量名、类名、方法名、常量名

1、标识符组成:英文字母、数字、(美元符号)$、(下划线)_

2、不能使用数字作为开头

3、不能使用其他的特殊字符 # ……

4、不能包含空格

5、不能和关键字一样

行业://驼峰式命名:

类名 HelloWorld【首字符大写、每个单词首字母大写

方法名 helloWorld【首字符小写、每个单词首字母大写】

变量名 helloWorld【和方法名一致

常量 HELLO_WORLD【全大写,每个单词使用_分隔】

3.关键字:

有特殊功能的描述符(50个关键字,其中有2两个保留字)【全小写】

注释的使用

注释的作用:提高代码的可读性,被注释的代码不会被编译器所编译

--单行注释:  //

--多行注释:  /* */

--文档注释:生成API帮助文档:  /** */

--生成api文档的命令

格式javadoc -d api  生成的存放目录 Java源文件

注意:如果要生成作者以及版本信息的话,则需要指定author和version

javadoc -d api生成的存放目录 -author -version Java源文件

注意:如果属性或者方法不是public修饰的,则需要在命令中加上-private参数

/**@author cyj@version 1.0.0
*/public class demo{/**这是demo类的test 方法@deprecated @param a 是一个入参的整型值@param b 是一个入参的整型值	@return 返回a+b的值@see <a href="http://www.baidu.com"> baidu</a>*/int test(int a,int b){System.out.println("democcc");return a+b;}/**这个是demo类的test方法@throws Exception 当前方法声明了抛出这个Exception 异常@exception Exception 当前方法抛出这个Exception 异常*///只有public 和protect 才能纳入文档//private的话 多加一个 -private javadoc -d D:\yueqian\JAVA\1.11\doc -author -version -private demo.javaprivate void exTest() throws Exception{System.out.println("异常测试方法");}
}
 

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

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

相关文章

DEM高程数字模型制作技术分享

1. 引言 ​数字高程模型&#xff08;Digital Elevation Model&#xff0c;简称DEM&#xff09;是地形表面地形特征的数字表示。它提供了关于地面起伏、地形形态、地表特征等重要信息。在地理信息系统&#xff08;GIS&#xff09;、遥感、地质学、水利工程等领域&#xff0c;DEM…

Golang数据库事务实践

事务是很多业务的基础&#xff0c;本文介绍了如何在Golang里实现数据库事务操作&#xff0c;并以一个用户注册场景给出了完整实现。原文: Transactions in Go application Go 是一种年轻而强大的语言&#xff0c;专为编写小型、简单的服务而创建。但随着时间推移&#xff0c;越…

redis数据类型介绍

字符串string&#xff1a; 字符串类型是Redis中最为基础的数据存储类型&#xff0c;是一个由字节组成的序列&#xff0c;他在Redis中是二进制安全的&#xff0c;这便意味着该类型可以接受任何格式的数据&#xff0c;如JPEG图像数据货Json对象描述信息等&#xff0c;是标准的key…

分享几个可以免费使用的GPT网站吧

1. ChatGAI ChatGAI是一个界面简洁的AI平台&#xff0c;提供App和网页版&#xff0c;每日均有免费使用机会。 2. ChatGPT 本网站向大家开放了ChatGPT 3.5和4.0版本的免费体验&#xff0c;特别适合新用户。每天都有免费次数&#xff0c;响应迅速&#xff0c;注册便捷&#xff0…

java中split(“.“)失效问题

来源&#xff1a;比较版本号_牛客题霸_牛客网 在写到这道算法题的时候&#xff0c;发现一个问题&#xff0c; String[] leftversion1.split("."); 返回结果为空&#xff0c;经过查阅得知&#xff0c;是split中的正则表达式里的问题&#xff0c;这个 . 代表的意思是…

深入理解数据结构第二弹——二叉树(2)——堆排序及其时间复杂度

看这篇前请先把我上一篇了解一下&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 前言&#xff1a; 相信很多学习数据结构的人&#xff0c;都会遇到一种情况&#xff0c;就是明明最一开始学习就学习了时间复杂度&#xff0c;但是在后期…

12313124

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

【与C++的邂逅】---- 函数重载与引用

关注小庄 顿顿解馋(▿) 喜欢的小伙伴可以多多支持小庄的文章哦 &#x1f4d2; 数据结构 &#x1f4d2; C 引言 : 上一篇博客我们了解了C入门语法的一部分&#xff0c;今天我们来了解函数重载&#xff0c;引用的技术&#xff0c;请放心食用 ~ 文章目录 一. &#x1f3e0; 函数重…

【JavaWeb】Day31.SpringBootWeb请求响应——分层解耦(二)

3.IOC&DI 3.1 IOC&DI入门 完成Controller层、Service层、Dao层的代码解耦 思路&#xff1a; 1. 删除Controller层、Service层中new对象的代码 2. Service层及Dao层的实现类&#xff0c;交给IOC容器管理 3. 为Controller及Service注入运行时依赖的对象 Controller程序…

隐私计算实训营第六讲-隐语PIR介绍及开发实践

隐私计算实训营第六讲-隐语PIR介绍及开发实践 文章目录 隐私计算实训营第六讲-隐语PIR介绍及开发实践1.隐语实现PIR总体介绍1.1按服务器数量分类1.2按查询类型分类 2. Index PIR - SealPIR3. Keyword PIR - Labeled PSI4.隐语PIR功能分层5.隐语PIR后续计划PIR协议开发PIR调用框…

JavaScript 数组元素交互最优解

利用 ES6 解构赋值&#xff1a; let arr [1, 2, 3, 4, 5];// 交互下标 1,4 元素的值 [arr[1], arr[4]] [arr[4], arr[1]];// 输出&#xff1a; [1, 5, 3, 4, 2] console.log(arr);浏览器控制台效果&#xff1a;

Node.js-知识点学习总结归纳

Node.js-知识点学习总结归纳 安装nodenode运行方式通过Node.js直接运行js文件&#xff08;也就不用通过网页html了&#xff09;绝对路径调用:相对路径调用&#xff1a;直接运行js命令&#xff1a; Vscode控制台使用node运行js文件 安装node 这个就不用讲了吧&#xff0c;网上搜…

硬件知识:点亮led

怎么做 1、看原理图&#xff0c;去顶控制LED的引脚 1.1led 1.2gpio 1、使能gpio模块&#xff0c;设置Power/clock control,向gpio模块提供电源和时钟 2.设置引脚模式为gpio模式 3.设置方向output/input4、读取引脚&#xff0c;获得当前电频到底是低电平/高电平&#xff1b;这…

数据库:Redis数据库

一、非关系型数据库 1.什么是非关系型数据库 非关系型数据库&#xff08;Non-relational Database&#xff09;又称NoSQL数据库是一种不同于传统关系型数据库管理系统&#xff08;RDBMS&#xff09;的数据存储解决方案。NoSQL这个术语最初意味着"Not Only SQL"&…

1999-2022年上市公司员工人数数据

1999-2022年上市公司员工人数数据 1、时间&#xff1a;1999-2022年 2、指标&#xff1a;证券代码、时间、员工人数 3、来源&#xff1a;整理自csmar 4、范围&#xff1a;上市公司 5、指标解释&#xff1a; 上市公司员工人数是衡量公司规模和发展状的重要指标。该数据直接…

阿赵UE学习笔记——24、动画播放控制

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。关于UE的动画系统&#xff0c;之前学习了很多&#xff0c;包括动画合成或者动画蒙太奇等&#xff0c;实际上最后得到的都是一个动画片段。那么这些动画片段&#xff0c;是需要怎样播放控制呢…

Taro多行文本最多展示5行,超出“查看更多”展示,点击弹层

Taro中&#xff0c;页面需求&#xff1a; 多行文本&#xff0c;展示最多展示5行&#xff0c;超出5行&#xff0c;展示“查看更多”按钮&#xff0c;点击弹层展示文本详细信息。 弹层代码就不说了&#xff0c;着重说一下怎么获取区域高度&#xff5e; 1.区域设置max-height&am…

ArcGIS Pro打不开Excel?Microsoft驱动程序安装不上?

刚用ArcGIS pro的朋友们可能经常在打开xls或者xlsx文件的时候都会提示&#xff0c;未安装所需的Microsoft驱动程序。 怎么办呢&#xff1f;当然&#xff0c;按照提示装一下驱动就会好吗&#xff1f;有什么状况会出现&#xff1f;有什么临时替代方案呢&#xff1f; 全文目录&a…

为什么要选择第三方软件测试机构?CMA、CNAS第三方软件测试机构推荐

第三方软件测试机构是独立于软件开发方和软件使用方的中立机构&#xff0c;致力于对软件产品进行全面、客观、专业的测试和评估&#xff0c;为软件开发方和使用方提供全面的技术支持和服务。 一、为什么要选择第三方软件测试机构   1、专业性强&#xff1a;拥有专业的测试团…

基本电路理论-电流和电压的参考方向

&#x1f308;个人主页&#xff1a;会编程的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 电流及参考方向 电流&#xff1a;带电粒子有规则的定向移动 电流强度&#xff1a;单位时间内通过导体横截面的电荷量&#xff0c;即&#xff1a;idq/dt 单位&#xff1a…