Java名称的由来
在最初,Java语言是叫做oak(橡树)。是因为刚开始公司门口有一颗橡树。所以就叫做橡树。然后发现oak已经被美国橡树公司注册了,就不能再继续使用了。所以需要改名。而程序员最爱喝的是咖啡,盛产咖啡的
岛叫做爪哇岛,由此语言就叫做Java了。
Java语言概述
-
语言
:人与人交流沟通的表达方式 -
计算机语言
:人与计算机之间进行信息交流沟通的一种特殊语言 -
Java语言是美国
Sun
公司(Stanford University Network
)在1995年推出的计算机语言,后被Oracle公司收购。 -
Java 早期称为
Oak(橡树)
,后期改名为Java。 -
Java之父:
詹姆斯·高斯林(James Gosling)
Java语言发展史
- 1995年Sun公司推出Java语言
- 1996年发布Java 1.0版本
- 1997年发布Java 1.1版本
- 1998年发布Java 1.2版本
- 2000年发布Java 1.3版本
- 2002年发布Java 1.4版本
- 2004年发布Java 5.0版本
- 2006年发布Java 6.0版本
- 2009年Oracle甲骨文公司收购Sun公司
- 2011年发布Java 7.0版本
- 2014年发布Java 8.0版本
- 2017年9月发布Java 9.0版本
- 2018年3月发布Java 10.0版本
- 2018年9月发布Java 11.0版本
- 2019年3月发布Java 12.0版本
- 2019年9月发布Java 13.0版本
- 2020年3月发布Java 14.0版本
- …
小贴士:
Java5.0:里程碑性质的版本,也是第一个大版本号更新。
Java8.0:企业中用的最多的版本。
Java三大技术平台
技术平台 | 说明 |
---|---|
Java SE(Java Standard Edition) 标准版 |
用于桌面应用的开发,是其他两个版本的基础。 Java技术的核心和基础,是学习Java EE,JavaME的基础,也是近期重点学习的技术。支持开发桌面级应用(如Windows下的应用程序)的Java平台 |
Java EE(Java Enterprise Edition) 企业版 |
用于企业应用开发,包括 Web 方向开发。为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发,多用于大型网站开发,是后期重点学习的技术。 |
Java ME(Java Micro Edition) 小型版 | 用于嵌入式电子设备或者小型移动设备。是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,现在移动终端基本上都是使用Android和IOS的技术平台了。 |
Java Card | 支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台,此技术也被广泛运用在SIM卡、提款卡上。 |
Java语言的优点
- 世界上最流行的编程语言之一,在国内使用最为广泛的编程语言。
- 可移植性、安全可靠、性能较好。做到一次编写,到处运行,跨平台
- 开发社区最完善,功能最为丰富。
Java语言跨平台原理
-
平台:指的是操作系统(Windows、Mac、Linux)
-
跨平台:Java程序可以在任意操作系统上运行(一次编译,处处可用)
-
跨平台原理:在需要运行Java应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机JVM(Java Virtual Machine)即可。
Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。
Java程序开发运行流程
public class HelloWorld{
public static void main(String[] args){ // main方法或者叫主方法,java中所有程序执行的入口
System.out.println("HelloWorld"); //输出语句 用来输出双引号中的内容的 双引号引起来的又叫 字符串
}
}
//public 是一个修饰符,使用public修饰的类,文件名要和类名一模一样,反之可以不一致,编译不报错。
//class 是一个标识,class是用来定义类,class后面字符串,表示类名
开发Java程序,需要三个步要:编写程序
、编译程序
、运行程序
注意问题:
- 编译命令后的java文件名需要带文件后缀.java
- 运行命令后的class文件名(类名)不带文件后缀.class
常见问题:
非法字符问题。
Java中的符号都是英文格式的。大小写问题。
Java语言对大小写敏感(区分大小写)文件名称。
必须与代码的类名称一致扩展名被隐藏。
在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件
补充知识:
- JDK11新特性
- 支持java命令直接运行 .java 文件,无需javac .java文件。
- 乱码问题
- 原因:编码不一样,导致乱码
- 在编译时加上当前文件的编码 javac -encoding 编码 Java文件
- 括号问题
- java中的括号都是成对出现的,有左边就有右边
JRE&JDK&JVM
概述
JRE (Java Runtime Environment):Java程序的运行时环境,包含JVM
和运行时所需要的核心类库
类:java文件在代码中的集合体现
类库:存放多个java文件的仓库
理解:在编写代码的过程中,需要用到java已经写好的这些java文件。
要
运行
一个已有的Java程序,那么只需安装JRE
即可
JDK (Java Development Kit):Java程序开发工具包,包含JRE
和开发人员使用的工具和运行工具
(java.exe
)其中的开发工具: 编译工具
(javac.exe
)
要
开发
一个全新的Java程序,那么必须安装JDK
JDK的版本
2021年9月JDK(17)
JDK、JRE和JVM的关系/作用
**集成环境:**把代码编写,编译,运行,调试等多种功能综合到一起的开发工具
JVM(Java Virtual Machine):Java虚拟机, 真正运行Java程序的地方。
JDK(Java Development Kit): Java开发工具,包含java编译器、java虚似机、以及java帮写好的程序...等所有java的开发、运行需要的东西。
JRE(Java Runtime Environment): Java运行时环境,只包含java虚似机、以及java帮写好的程序等java运行所需的东西。
JDK的安装目录介绍
目录名称 | 说明 |
---|---|
bin |
该路径下存放了JDK的各种工具命令。javac 和java 就放在这个目录。 |
conf | 该路径下存放了JDK的相关配置文件。 |
include | 该路径下存放了一些平台特定的头文件。 |
jmods | 该路径下存放了JDK的各种模块。 |
legal | 该路径下存放了JDK各模块的授权文档。 |
lib | 该路径下存放了JDK工具的一些补充JAR包。 |
JavaEE三层架构
概述
JavaEE(Java Enterprise Edition)是用于开发企业级应用程序的Java平台。JavaEE采用了一种常见的架构模式,即三层架构,也称为分层架构。
三层架构
-
表示层(Presentation Layer)
:表示层是应用程序与用户之间的交互界面。它负责接收用户的请求,并将结果呈现给用户。常见的表示层技术包括JavaServer Pages(JSP)、JavaServer Faces(JSF)、Servlet等。在这一层中,开发人员通常处理用户界面、表单验证、用户输入等任务。 -
业务逻辑层(Business Logic Layer)
:业务逻辑层处理应用程序的核心业务逻辑。它包含了应用程序的业务规则、数据处理和算法等。这一层通常包含各种Java类和组件,用于实现业务逻辑,例如EJB(Enterprise JavaBeans)、Spring框架等。 -
持久层(Persistence Layer)
:持久层处理数据的持久化和访问。它负责与数据库或其他数据存储系统进行交互,从而实现数据的读取、写入和查询等操作。在JavaEE中,最常用的持久化技术是Java Persistence API(JPA),通常与关系型数据库(如MySQL、Oracle等)一起使用。
优点
-
模块化和可维护性:通过将应用程序分为不同的层次,每个层次专注于特定的功能和责任,使得代码更易于管理和维护。开发人员可以更容易地理解和修改特定层次的代码,而不必关注整个应用程序。
-
可扩展性:三层架构允许各个层次独立地进行扩展。例如,可以在表示层添加新的用户界面组件,而无需更改业务逻辑层或持久层。这种松耦合的设计使得应用程序更容易扩展以满足不断变化的需求。
-
可测试性:由于各个层次之间有清晰的边界和责任分配,因此可以更轻松地编写单元测试和集成测试。开发人员可以独立地测试每个层次的功能,从而提高代码质量和可靠性。
-
可重用性:通过将应用程序分为独立的层次,可以更好地实现代码的重用。例如,业务逻辑层可以被多个表示层共享,从而避免了重复编写相同的业务逻辑代码。这样可以提高开发效率,并减少错误和冗余代码。
-
并行开发:三层架构允许不同开发人员或团队同时工作在不同的层次上,提高开发效率和并行开发能力。各个层次之间的清晰分离使得团队成员可以并行地开发和测试不同的功能,从而加快项目的交付速度。
框架
概述
Java框架是指为了简化和加快Java应用程序开发过程而设计的软件框架。它们提供了一组预定义的模块和函数,用于处理常见的开发任务,如数据库访问、用户界面设计和网络通信等。一些常见的Java框架包括Spring、Hibernate和Struts等。
作用
Java框架的作用是提供开发者一个可靠的基础结构,以便更快速地构建高质量的Java应用程序。它们通常具有以下作用:
- 简化开发:Java框架提供了预定义的模块和函数,开发者可以直接使用这些模块,而无需从头开始编写代码。这大大减少了开发时间和工作量。
- 提高可维护性:框架使用一致的设计模式和最佳实践,使得代码更易于理解和维护。开发者可以遵循框架的规范和约定,减少代码的混乱和错误。
- 增加可扩展性:Java框架通常提供了可扩展的插件和扩展机制,使开发者能够根据需要添加新功能或修改现有功能,而无需重写整个应用程序。
- 改善性能:一些Java框架使用了高效的算法和优化技术,以提供更好的性能和响应时间。它们还可以处理并发请求和负载均衡等任务。
常用框架
框架 | 作用 |
---|---|
Spring | 提供了轻量级的、灵活的、可扩展的开发框架,用于构建企业级Java应用程序。它包括依赖注入、面向切面编程、事务管理等功能。 |
Hibernate | 用于对象关系映射(ORM),简化了Java应用程序与关系数据库之间的数据持久化操作。它提供了对象到数据库表的映射以及查询和事务管理等功能。 |
Struts | 用于构建基于MVC(模型-视图-控制器)架构的Web应用程序。它提供了处理请求、控制页面导航和数据验证等功能。 |
JavaServer Faces (JSF) | 是Java企业版的用户界面框架,用于构建交互式Web应用程序。它提供了可重用的组件和事件驱动的编程模型。 |
Apache Tomcat | 是一个开源的Web应用程序服务器,用于运行Java Servlet和JavaServer Pages(JSP)。它提供了处理HTTP请求和响应的能力。 |
JUnit | 是一个Java单元测试框架,用于编写和执行测试用例。它提供了断言、测试套件和测试运行器等功能,用于验证代码的正确性。 |
Log4j | 是一个Java日志记录框架,用于记录应用程序的运行日志。它提供了灵活的日志配置和多种日志输出方式,方便开发者进行调试和错误排查。 |
Apache Kafka | 是一个高性能、可扩展的分布式消息队列系统。它用于处理实时数据流,支持高吞吐量和容错性。 |
Apache Spark | 是一个大数据处理框架,提供了分布式数据处理和分析能力。它支持数据流处理、批处理、机器学习和图计算等功能。 |
BUG
概述
Bug是一个英文单词,中文意思是指【昆虫、小虫、损坏、缺陷等意思】
现在一般是指在程序中,出现的缺陷或问题,简称程序漏洞。
BUG的解决
- 具备识别BUG的能力:多看
- 具备分析BUG的能力:多思考,多查资料
- 具备解决BUG的能力:多尝试,多总结