初入Java

2024-03-17 05:40
文章标签 java 初入

本文主要是介绍初入Java,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java发展史

Java起源于20世纪90年代。1991年成立了一个名为Green的项目组,由James Gosling即Java之父领导。由于C++过于复杂和庞大,项目组因此对C++进行改造,于1992年,开发出“Oak”面向对象语言,但因缺乏硬件支持而被搁置。1994年项目组将Oak应用于万维网,向无数程序员展示了其网页技术——Applet(嵌入网页,随同网页进行网络传输),与此同时,Oak正式更名为Java。

过去的这二十多年,Java不断进行更新改进。

1996年1月——JDK 1.0(开发工具和运行环境)——Java虚拟机(JVM)、Applet、AWT等。

1997年2月——JDK 1.1——JDBC、JavaBeans、RMI、JAR文件格式、Java语法中的内部类和反射。

1998年12月8日——JDK 1.2(第二代Java平台的企业版J2EE发布)——Swing、Java IDL、EJB、Java Plug-in等,在API文档中,添加了strictfp关键字和Collections集合类。

1999年4月27日——HotSpot虚拟机发布。

1999年6月——Sun公司把Java体系一分为三:

J2ME——应用于移动、无线及有限资源的环境;

J2SE——应用于桌面环境;

J2EE——应用于基于Java的应用服务器。

2000年5月——JDK 1.3、JDK 1.4和J2SE 1.3相继发布。

2002年2月26日——J2SE 1.4(与1.3相比多近62%类和接口)——XML支持、安全套接字(Socket)支持(通过SSL与 TLS协议)、全新的I/O API、正则表达式、日志与断言。

​ 2004年9月30日——J2SE1.5更名为Java SE 5.0(内部版本号为1.5.0)——泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。

2005****年6月——Java SE 6——J2EE更名为JavaEE、J2SE更名为JavaSE、J2ME更名为JavME。

2009****年4月20日——Oracle收购Sun。

​ 2011年7月28日 ——Java SE 7——二进制整数、支持字符串的switch语句、棱形语法、多异常捕抓、自动关闭资源的try语言等新特性。

​ 2014年3月18日——Java SE 8——全新的Lambda表达式、流式编程等大量新特性。

​ 2017年9月22日——Java SE 9——强化Java模块化系统使之更轻量化、采用更高效智能的GI垃圾回收器、更新核心类库。

​ 2018年3月21日——Java SE 10——局部变量类型推断、GC改进、性能提升、线程管控等新特性。

2018****年9月26日——Java SE 11——第一个长期支持版本,带来了ZGC、Http Client等重要特性,共17个JEP。

​ 2019年9月23日——Java SE 13——添加文本块,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

Java特点与特性

Java体系

Java SE:Java Platform,Standard Edition

标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案。

Java EE:Enterprise Edition

企业版:以企业为环境而开发应用程序的解决方案

Java ME:Micro Edition

微型版:致力于消费产品 和嵌入式设备的最佳解决方案

Java 的特性

  • 一种纯面向对象的编程语言。
  • 一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)
  • 一种健壮的语言,吸收了 C/C++语言的优点。
  • 有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)

JVM与GC

跨平台

在这里插入图片描述
在这里插入图片描述

Java虚拟机(JVM)

在这里插入图片描述

JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统

  • 它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
  • 对于不同的运行平台,有不同 的 JVM。

垃圾回收器(GC)

  • 自动回收不再使用的内存空间。
  • JVM 提供了一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。
  • 无法精确控制与干预。

Java SE 的组成概念图及JDK与JRE的概念

在这里插入图片描述

JDK(Java Development Kits)——Java开发工具集

Java API (应用程序编程接口)——Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源

JRE(Java Runtime Environment)——Java运行时环境

JRE 的三项主要功能:

  • 加载代码:由类加载器(class loader)完成;
  • 校验代码:由字节码校验器(byte code verifier)完成;
  • 执行代码:由运行时解释器(runtime interpreter)完成。

Java程序开发步骤

在这里插入图片描述

JDK环境配置

此电脑à属性à高级系统设置à高级à环境变量à新建一个系统变量JAVA_HOMEà将所安装的JDK地址写入其中à找到名为Path的系统变量à写入调用JDK中的bin文件的地址à键盘摁下win+r键弹出运行窗口输入cmd进入命令提示符界面à分别输入Java、Java -version检验JDK是否安装成功

注:倘若因进行多个要求不同JDK的项目时,仅需改变系统变量中JAVA_HOME中的jdk文件地址
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

注释与语法

注释:

  • 单行注释://注释
  • 多行注释:/注释/
  • 文档注释:/*注释/

语法规则:

  • java 是严格区分大小写的
  • java 是一种自由格式的语言
  • 代码分为结构定义语句和功能执行语句
  • 功能执行语句的最后必须用分号结束

计算机中的程序

让计算机执行某些操作或解决某个问题而编写的一系列有序指令(即命令)的集合。

法规则:**

  • java 是严格区分大小写的
  • java 是一种自由格式的语言
  • 代码分为结构定义语句和功能执行语句
  • 功能执行语句的最后必须用分号结束

计算机中的程序

让计算机执行某些操作或解决某个问题而编写的一系列有序指令(即命令)的集合。

这篇关于初入Java的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/LWX__/article/details/118052632
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/817987

相关文章

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Java Lambda表达式的使用详解

《JavaLambda表达式的使用详解》:本文主要介绍JavaLambda表达式的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言二、Lambda表达式概述1. 什么是Lambda表达式?三、Lambda表达式的语法规则1. 无参数的Lambda表

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

Swagger在java中的运用及常见问题解决

《Swagger在java中的运用及常见问题解决》Swagger插件是一款深受Java开发者喜爱的工具,它在前后端分离的开发模式下发挥着重要作用,:本文主要介绍Swagger在java中的运用及常... 目录前言1. Swagger 的主要功能1.1 交互式 API 文档1.2 客户端 SDK 生成1.3