# java概述
## 什么是程序
程序是由一系列指令或代码组成的计算机软件。程序可以被计算机执行,以完成特定的任务或实现某些功能。在编写一个程序时,我们需要按照特定语言的语法规则,编写正确的代码,以便让计算机能够理解和执行。程序可以包括各种类型的任务和操作,如算术运算、逻辑运算、文件读写、图形界面设定等,具体取决于程序的设计目的和使用场景。
## java的诞生
java是由sun microsystems(现在是oracle corporation的一部分)的james gosling和他的团队发明的编程语言。该语言最初被设计为可嵌入家电和其他嵌入式设备中的简单而强大的工具。
1991年,gosling开始思考如何使用c++构建一个更好的环境,在这个过程中他开发了一种新的语言,被称为"oak"。但oak最终没有被用于家电上,因为家电市场失去了动力。
后来,去掉了之前oak中的一些限制,并且做出了兼容网络架构的改进,这种语言发展成为java。它于1995年正式发布,并被认为是第一种真正意义上的跨平台编程语言。
java以其内置的跨平台兼容性、优秀的内存管理和安全性成为了一个广泛应用的编程语言。java 还拥有一个巨大的社区和庞大的生态系统,涵盖许多不同领域和用例,包括大型企业系统和移动应用程序。
-[其他版本](https://www.oracle.com/cn/java/technologies/downloads/archive/)
## java特点
java是一种跨平台、面向对象的编程语言。
- 跨平台性(platform independence):java代码可以在不同操作系统平台上运行,因为java程序在编译时被转换成字节码(bytecode),这些字节码可以在任何支持java虚拟机(jvm)的平台上运行。
- 面向对象(object oriented):java是一种面向对象的语言,强调封装、继承和多态等概念,使得java程序更易于开发、维护和扩展,并具有更高的重用性。
- 简单性(simplicity):java设计时考虑了程序员使用的便捷性和可读性,削减了很多复杂和难以掌握的特性,使得java程序员能够更加专注于解决业务问题而不是语言本身的实现细节。
- 安全性(security):java提供了安全保护机制,在执行java程序时将对可能引起安全漏洞的代码进行限制和控制,防止恶意代码的攻击和破坏。
- 高性能(high performance):java程序的性能相对于其他解释性语言较高,并且有针对不同环境的高效优化方法。具体而言,java的性能受到了虚拟机(jvm)的影响。
- 多线程(multithreading):java提供了多线程支持,使得程序可以同时进行多个任务处理,提高程序的并发性和响应能力。
- 开放性(openness):java是一种开放的语言,具有很强的可扩展性和可维护性,尤其在企业级应用中更为常见。
## java运行机制及运行过程
java程序的运行可以分为编译和解释两个阶段:
1. 编译阶段
java源代码通过javac.exe编译器被编译成byte code字节码文件(后缀为.class),该文件不依赖具体的操作系统或cpu架构,因此同一个byte code文件可以在任何平台上执行。
2. 解释阶段
由java虚拟机(jvm)进行解释执行。jvm是真正的跨平台的关键所在:它建立了一种“中间层”来隔离java应用程序与底层操作系统之间的差异,并提供标准的接口。这在一定程度上保证了java应用程序的可靠性和稳定性,同时也使java成为开发web应用程序和跨平台应用程序的首选语言之一。
简单来说,当我们在本地计算机上运行java程序时,会先通过java编译器将源代码转换成字节码文件。然后,jvm解释执行字节码文件,并将程序输出打印到控制
### java核心机制(JVM)
java核心机制(jvm)是java平台的重要组成部分,它负责将java代码编译成在计算机上可执行的字节码,并在运行时加载和执行这些字节码。以下是 jvm 的几个关键方面:
- 类加载器:jvm 中的类加载器负责将字节码从磁盘加载到内存中,并创建一个 java 类的定义。它们还为已经存在于系统中的类提供了一种通用接口,以便程序能够动态添加新的类。
- 字节码执行引擎:java 字节码是可以移植的、高度优化的代码形式,但是它却不能直接运行在计算机 cpu 上。字节码执行引擎解释和运行 java 字节码。通过遵循 java 语言规范和 jvm 规范来执行 java 字节码。
- **回收器**回收机制使得 java 可以自动地管理内存。当对象不再被程序所引用时,**回收器会立即清除此对象并回收其分配的内存资源。**回收器消除了由内存泄漏和非法内存访问造成的许多常见问题。
- 即时(jit)编译器:jvm 中的 jit 编译器是一个可选的组件。jit 编译器将字节码转换为本地机器代码,在执行时大幅提高程序的性能。
由于 jvm 的存在,java 被赋予了许多特性,如可移植性、自动收集和网络安全。jvm 还允许在一台计算机上运行多个 java 应用程序,这是很多企业级系统中的重要因素。
## 什么是JDK,JRE
### JDK基本介绍
java开发工具包(java development kit),它是面向java开发者的完整编译环境,包含了java运行环境(jre)、java编译器(javac)、java工具(javadoc, jarsigner)等一系列开发者使用的组件。
### JRE基本介绍
java运行环境(java runtime environment),它提供了java类库、java虚拟机(jvm)和其他必要的组件,可以帮助java应用程序在计算机上运行。jre不包含java编译器,因此无法进行java代码的编译。
### JDK、JRE、JVM包含关系
简单来说,jdk包含了jre,而且还包含开发者需要的一系列工具。如果只是想要运行已经编译好的java程序,则只需要安装jre即可;如果想要自己开发java程序,则需要安装jdk。
## 安装JDK
以MAC系统为例安装JDK的步骤:
- 打开终端(Terminal)应用程序
- 确认已连接到Internet。
- 输入以下命令并按回车键下载JDK安装程序:
```
$ curl -LO https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.tar.gz
```
- 下载完成后,解压缩压缩文件。可以在任意目录中进行此操作,但建议选择其中一个系统级别目录,例如/Library/Java/JavaVirtualMachines。 输入以下命令来解压缩文件:
```
$ tar xvf amazon-corretto-*-macos-jdk.tar.gz
```
- 安装完成后,请添加以下内容开头的行以设置JAVA_HOME环境变量,其中/your_install_location表示您选择的安装位置:
```
$ vi ~/.bash_profile
export JAVA_HOME=/your_install_location/Contents/Home
#使用 "pwd" 命令确定路径时,在提示符下输入 "/your_install_location/Contents/Home"。
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile
```
- 现在可以打开终端并输入以下命令来验证JDK安装是否正确:
```
$ java -version
```
- 将显示安装版本的输出安装成功。
## 配置环境变量
### 为什么需要环境变量
环境变量是操作系统(如windows、linux、macos等)中存储配置信息的一种机制。通过环境变量,我们可以在程序或者脚本中引用这些配置信息,而不需要直接将这些硬编码在代码中。
使用环境变量的优点包括:
1. 简化配置:通过设置环境变量,我们可以把不同应用程序之间的配置统一起来。
2. 提高安全性:敏感的配置信息(例如密码)可以存在环境变量中,而不必明文写在代码中,从而提高了安全性。
3. 方便部署和维护:在不同的开发、测试和生产环境中,我们只需要改变对应的环境变量即可,无需�
基础的java教程 Java学习资料
需积分: 0 153 浏览量
更新于2023-06-25
收藏 6.14MB ZIP 举报
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而著名。本教程将为你提供一个全面的基础Java学习路径,帮助你从零开始掌握这门强大的语言。
一、Java概述
Java是由Sun Microsystems(现已被Oracle公司收购)在1995年推出的,它的设计目标是“一次编写,到处运行”。Java采用了类C++的语法,但移除了指针和内存管理等复杂特性,使得它更加安全和易于学习。Java的运行基于Java虚拟机(JVM),确保了代码的可移植性。
二、Java环境配置
在开始学习Java之前,你需要安装Java Development Kit(JDK)。JDK包含了编译Java源代码所需的工具,如javac编译器。安装后,设置环境变量PATH和JAVA_HOME,确保系统能够找到JDK。
三、Java语法基础
1. 变量:Java中的数据类型包括基本类型(如int、double)和引用类型(如String、类)。声明变量时需指定类型,例如`int age;`
2. 类与对象:Java是面向对象的语言,一切皆为对象。类是对象的蓝图,通过`class`关键字定义。创建对象使用`new`关键字,例如`Person person = new Person();`
3. 控制结构:包括条件语句(if-else,switch)、循环(for,while,do-while)以及分支语句(break,continue)
4. 方法:方法是代码的重用单元,通过`void`或返回类型+`methodname`定义,例如`public void sayHello() { System.out.println("Hello"); }`
四、面向对象编程
1. 封装:隐藏内部实现细节,只对外提供接口,通过访问修饰符(public, private, protected)实现
2. 继承:一个类可以继承另一个类的属性和方法,使用`extends`关键字,如`class Son extends Father`
3. 多态:同一消息可以有多种行为,通过接口、抽象类和方法重写实现
4. 抽象:用抽象类和接口来表示共同特征,抽象类使用`abstract`修饰,接口用`interface`定义
五、异常处理
Java使用try-catch-finally结构处理异常。异常是程序运行时的错误,通过`throw`抛出,`catch`捕获并处理。
六、集合框架
Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、HashSet、HashMap)。它们提供了存储和操作对象的高效方式。
七、输入/输出流
Java的I/O流处理涵盖了文件读写、网络通信等。如FileInputStream和FileOutputStream用于文件操作,Socket和ServerSocket用于网络通信。
八、多线程
Java内置对多线程的支持,可以通过实现Runnable接口或继承Thread类创建线程。线程同步机制包括synchronized关键字、wait/notify、Lock接口等。
九、Java SE(标准版)进阶
1. JavaFX:用于构建桌面应用程序的GUI框架
2. JDBC:Java数据库连接,用于与各种数据库进行交互
3. Swing:另一套图形用户界面组件
4. Applets:嵌入到网页中的小型Java程序,现在使用较少
5. JNI(Java Native Interface):允许Java代码调用本地(非Java)代码
本教程的"se-master"可能是指Java SE(Standard Edition)的项目或课程资料,涵盖以上知识点,通过实践练习和项目开发,你可以深入理解并掌握Java编程。记得理论与实践相结合,不断尝试编写代码,才能真正提升技能。祝你在Java学习之路上取得成功!
哆啦哆啦S梦
- 粉丝: 193
- 资源: 517
最新资源
- 重庆城市充电桩投建数据集.zip
- BUCK\BOOST电路设计电感值计算表
- 亚控SCADA赋能半导体行业自主可控
- 足球人员检测22-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 【4G DTU方案】STM32F103单片机驱动EC200S-4G模块通过HTTP协议发送MODBUS传感器变送器数据到私有物联网云平台代码(程序仅供参考,不提供私有平台及相关资料)
- python-微信小程序-轻客洗衣.zip
- 新能源汽车销量数据.zip
- 珍爱网相亲数据.zip
- Web渗透测试中Upload-Labs的关卡解析与实践技巧
- 交互可视化期末大作业基于ipynb实现的气候变化和世界森林面积的变化可视化分析项目源代码+数据