[TOC]
系列简书文章目录https://www.jianshu.com/p/d47d5cdc8a3e
本篇目录
01 什么是java
02 Java版本
03 Java学习网址
Java学习网址
java视频教程
04 程序员常用网站
国内常用网址
国外常用网址
05 Java 关键字
常用关键字
按字母顺序排列
按使用频率排列
01 什么是java
想了解什么是编程和其他编程语言的可以先看 了解编程
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年推出,现在归Oracle公司所有。Java的设计目标是实现“一次编写,到处运行”的概念,这意味着编写的Java程序可以在任何安装了Java虚拟机(JVM)的平台上运行,而无需重新编译。
以下是Java语言的一些关键特点:
- 面向对象:Java是一种完全的面向对象的语言,它支持类、对象、封装、继承和多态等概念。
- 平台独立性:Java代码被编译成字节码,而不是直接编译成本地机器代码。字节码由JVM解释执行,因此可以在不同的平台上运行。
- 自动内存管理:Java具有自动垃圾回收机制,程序员不需要手动管理内存分配和释放,这减少了内存泄漏和悬挂指针等问题。
- 健壮性和安全性:Java设计有多种安全特性,包括类型检查、异常处理、沙箱环境和权限设置,以防止非法访问和恶意代码的执行。
- 高性能:虽然最初Java的性能受到批评,但随着JIT(Just-In-Time)编译器的发展,现代的Java应用程序能够达到接近本地代码的性能。
- 多线程:Java内置了对多线程的支持,使得开发并发应用程序变得容易。
- 丰富的标准库:Java提供了大量的类库,包括用于网络、图形用户界面、数据库连接、XML处理等功能的API。
- 可移植性和可扩展性:由于其设计原则,Java程序易于移植,并且可以通过定义新的类来扩展其功能。
Java被广泛应用于企业级应用开发、移动应用(特别是Android应用)、嵌入式系统、大数据处理、云计算服务、Web开发等领域。Java社区庞大,拥有丰富的资源和支持,这也是Java持续流行的重要原因之一。
02 Java版本
截至2024年7月,最新的Java版本是Java 22。不过,请注意,Java的发行节奏通常是每六个月一次,这意味着自那时起可能已经有新的版本发布。Oracle通常会发布长期支持(Long Term Support, LTS)版本和短期版本。LTS版本每三年发布一次,而短期版本则遵循半年一次的发布周期。Java 17是最近的LTS版本,2024年9月将发布JDK 23。
对于企业级应用和需要长期稳定性的项目,推荐使用LTS版本,因为它们会获得长时间的支持和维护。而对于追求最新特性和性能优化的开发者,非LTS版本可能更适合。不过,非LTS版本需要更频繁地升级以保持安全性和兼容性。
为了获取最准确的信息,建议直接访问Oracle官方网站或JDK下载页面查看最新的JDK版本。这些页面会提供最新版本的下载链接以及详细的版本说明。如果你需要最新的版本,通常可以从这些页面找到。
甲骨文中国java官网: https://www.oracle.com/cn/java/
总而言之:最新LTS版本为JAVA 17版本 ,新手一般只需要关注LTS版本
03 Java学习网址
关于其他的学习网址见 学习网站, 此次而我介绍java学习网址是提供一下专业的网址
Java学习网址
学习Java有许多优质的在线资源,这些网站提供了从基础到高级的Java教程,涵盖了理论知识、实战练习、视频讲解等多种学习形式,可以根据个人喜好和需求选择适合自己的资源进行学习。以下是一些推荐的网站及其简介:
-
how2j.cn
- 网址: how2j.cn
- 简介: 提供Java全栈开发教程,内容全面,简洁易懂,适合初学者。
-
w3cschool
- 网址: w3cschool
- 简介: 主要专注于前端和脚本语言的在线教程,也提供了Java的基础和高级教程。
-
菜鸟教程
- 网址: 菜鸟教程
- 简介: 和w3cschool类似,提供了丰富的编程教程,包括Java在内的多种语言。
-
Java学习网
- 网址: www.javaj.cn
- 简介: 专注于Java学习的网站,提供一系列教程和资源。
-
动力节点
- 网址: www.bjpowernode.com
- 简介: 提供Java视频教程,涵盖了从基础到高级的多个主题,适合零基础学习者。
-
Oracle Java Learning Paths
- 网址: www.oracle.com/technical-resources/articles/java/index.html
- 简介: Oracle官方网站提供的Java学习路径和教程,包括Java SE API文档和开发指南。
-
Java Code Geeks
- 网址: www.javacodegeeks.com
- 简介: 提供大量Java教程和学习资源,包括理论和实践知识。
-
Udemy
- 网址: www.udemy.com
- 简介: 提供付费和免费的Java课程,由专业讲师授课,适合不同程度的学习者。
-
Coursera
- 网址: www.coursera.org
- 简介: 与世界顶尖大学合作提供在线课程,包括Java编程的课程,部分课程提供证书。
-
Codecademy
- 网址: www.codecademy.com
- 简介: 提供互动式的Java学习课程,适合动手实践的学习方式。
-
edX
- 网址: www.edx.org
- 简介: 与哈佛、MIT等高校合作提供在线课程,有专门的Java编程课程。
java视频教程
国内有很多教培机构为了招生会在网上提供一些入门的培训视频,这些视频对于初学者比较适合。下面就列出B站部分方便初学者观看学习:
04 程序员常用网站
程序员在日常工作中会频繁访问一系列网站,这些网站提供了代码示例、文档、论坛、教程、开源项目、版本管理和协作工具等资源。 这些网站不仅提供了丰富的技术资源,还搭建了国内开发者之间的交流桥梁,有助于Java程序员提升技能、解决问题和拓展职业发展。
国内常用网址
-
CSDN (China Software Developer Network)
- 功能:中国最大的IT技术社区之一,提供博客、论坛、问答、资源下载和课程学习等。
- 网址:https://www.csdn.net/
-
SegmentFault
- 功能:技术问答和社区,类似于Stack Overflow,但更侧重于中文环境下的技术讨论。
- 网址:https://segmentfault.com/
-
OSChina
- 功能:开源中国,提供开源项目托管、技术文章、新闻资讯和论坛交流。
- 网址:https://www.oschina.net/
-
掘金 (Juejin)
- 功能:技术分享平台,涵盖多种技术领域的文章、动态和话题讨论。
- 网址:https://juejin.cn/
-
博客园
- 功能:技术博客平台,许多技术专家和程序员在此分享他们的知识和经验。
- 网址:https://www.cnblogs.com/
-
阿里云开发者社区
- 功能:阿里巴巴集团的技术分享和开发者支持平台,提供技术文档、教程和交流。
- 网址:https://developer.aliyun.com/
-
腾讯云开发者社区
- 功能:腾讯集团的技术分享和开发者支持平台,提供API文档、技术文章和社区问答。
- 网址:https://cloud.tencent.com/developer
-
华为开发者联盟
- 功能:华为的技术支持和开发者社区,提供开发工具、SDK和培训资源。
- 网址:https://developer.huawei.com/consumer/cn/
-
拉勾网
- 功能:专注于互联网行业的招聘网站,Java程序员可以在此寻找工作机会。
- 网址:https://www.lagou.com/
-
牛客网
- 功能:提供在线编程练习、模拟面试和技术文章,适合准备面试的程序员。
- 网址:https://www.nowcoder.com/
国外常用网址
-
Oracle Java SE Documentation
- 功能:提供Java标准版(SE)的官方API文档,包括JDK和JRE的详细说明。
- 网址:https://docs.oracle.com/en/java/
-
Stack Overflow
- 功能:全球最大的技术问答社区,Java程序员可以在这里提问和解答问题。
- 网址:https://stackoverflow.com/
-
GitHub
- 功能:开源项目托管平台,Java程序员可以找到大量开源项目、库和框架,也可以托管自己的项目。
- 网址:https://github.com/
-
Maven Central Repository
- 功能:提供Java项目的依赖管理,可以在这里找到几乎所有Java库的JAR包。
- 网址:https://search.maven.org/
-
Javadoc
- 功能:提供详细的Java API文档,帮助理解Java类和方法的使用。
- 网址:对于特定库或框架,通常在其官网可以找到对应的Javadoc。
-
Java Code Geeks
- 功能:提供Java相关的文章、教程和代码示例。
- 网址:https://www.javacodegeeks.com/
-
Baeldung on Spring
- 功能:专注于Spring框架的教程和示例。
- 网址:https://www.baeldung.com/spring
-
GeeksforGeeks
- 功能:涵盖广泛的编程概念和算法,包括Java。
- 网址:https://www.geeksforgeeks.org/
-
Spring.io
- 功能:Spring框架的官方主页,提供框架的文档、示例和社区支持。
- 网址:https://spring.io/
-
HackerRank
- 功能:提供编程挑战和竞赛,帮助提升编程技能,也用于招聘评估。
- 网址:https://www.hackerrank.com/
-
LeetCode
- 功能:在线编程练习平台,提供算法题和面试题。
- 网址:https://leetcode.com/
-
CodeProject
- 功能:提供各种编程语言的文章和代码示例,包括Java。
- 网址:https://www.codeproject.com/
-
JRebel by ZeroTurnaround
- 功能:提供Java热部署解决方案,允许在不重启应用的情况下更新代码。
- 网址:https://www.jrebel.com/
-
JetBrains
- 功能:提供IDEA等流行的Java集成开发环境。
- 网址:https://www.jetbrains.com/
-
Google Developer Guide for Java
- 功能:提供Google API和库的Java开发指南。
- 网址:https://developers.google.com/java
05 Java 关键字
说明一下初学者只需要知道关键字概念, 我把所有关键字列出是希望初学者当做字典一样的去查,而非现在马上要记住, 我们学习往往是边学边记; 学会的时候自然记住了.
此外学习编程不需要英语很好, 大概能明白这些关键字意思已经就很不错了,希望初学者不要气馁
在Java中,关键字是指编程语言中具有特殊含义和功能的保留字。这些关键字不能用作变量名、方法名、类名或其他标识符,因为它们在语言中扮演着特定的角色。下面是一个表格,列出了Java中的所有关键字、它们的含义以及常见的使用环境:
常用关键字
-
public:
- 表明类、方法或变量是公开的,可以从任何地方访问。
-
private:
- 表明类、方法或变量只能在定义它的类中访问。
-
protected:
- 表明类、方法或变量可以在同一包或子类中访问。
-
static:
- 表明方法或变量属于类而不是对象,可以直接通过类名访问。
-
final:
- 表明类不能被继承,方法不能被重写,变量值不能改变。
-
void:
- 表明方法不返回任何值。
-
return:
- 用于从方法返回一个值。
-
if, else, switch:
- 控制流语句,用于条件判断和分支执行。
-
for, while:
- 循环控制结构,重复执行一段代码直到满足终止条件。
-
try, catch, finally:
- 异常处理结构,用于捕获和处理程序运行时发生的错误。
-
new:
- 用于创建对象的实例。
-
instanceof:
- 用于检查对象是否属于特定的类或接口。
-
this:
- 指向当前对象的引用。
-
super:
- 指向父类的引用,用于调用父类的构造器或方法。
-
abstract:
- 表明类或方法是抽象的,不能被实例化,必须被子类实现或重写。
-
interface:
- 定义一组方法的签名,没有实现细节。
-
implements:
- 用于类声明中,表明类实现了特定的接口。
-
package:
- 用于组织类和接口的命名空间。
-
import:
- 用于导入其他包中的类或接口,以便在当前文件中使用。
-
break, continue:
- 控制循环的流程,
break用于提前跳出循环,continue用于跳过当前迭代。
- 控制循环的流程,
按字母顺序排列
| 关键字 | 含义与用途 | 使用环境 |
|---|---|---|
| abstract | 用于声明抽象类和抽象方法。 | 类声明或方法声明 |
| assert | 用于断言条件在调试期间必须为真。 | 方法体 |
| boolean | 基本数据类型,表示true或false。 | 变量声明 |
| break | 终止循环或switch语句。 | 循环体或switch语句 |
| byte | 基本数据类型,8位有符号整数。 | 变量声明 |
| case | switch语句的一部分,用于匹配表达式的值。 | switch语句 |
| catch | 捕获并处理异常。 | try-catch-finally语句 |
| char | 基本数据类型,16位Unicode字符。 | 变量声明 |
| class | 定义一个类。 | 类声明 |
| const | 保留关键字,未在语言中使用。 | - |
| continue | 跳过当前循环迭代,继续下一次迭代。 | 循环体 |
| default | 在switch语句中用于指定默认要执行的代码块。 | switch语句 |
| do | 开始一个do-while循环。 | do-while语句 |
| double | 基本数据类型,双精度浮点数。 | 变量声明 |
| else | if语句的可选部分,当if条件不满足时执行。 | if-else语句 |
| enum | 定义枚举类型。 | 枚举类型声明 |
| extends | 表示类继承或接口实现。 | 类声明或接口实现 |
| final | 修饰类、方法或变量,防止被修改或覆盖。 | 类、方法、变量声明 |
| finally | 异常处理中,无论是否抛出异常都会执行的代码块。 | try-catch-finally语句 |
| float | 基本数据类型,单精度浮点数。 | 变量声明 |
| for | 开始一个for循环。 | for语句 |
| goto | 保留关键字,未在语言中使用。 | - |
| if | 执行条件语句。 | if语句 |
| implements | 表示一个类实现了特定的接口。 | 类声明 |
| import | 导入包中的类或接口。 | 程序顶部 |
| instanceof | 测试对象是否为特定类型的实例。 | 表达式 |
| int | 基本数据类型,32位有符号整数。 | 变量声明 |
| interface | 定义接口。 | 接口声明 |
| long | 基本数据类型,64位有符号整数。 | 变量声明 |
| native | 标记方法为本地方法,由非Java代码实现。 | 方法声明 |
| new | 创建新的对象实例。 | 表达式 |
| package | 定义包名。 | 程序顶部 |
| private | 访问修饰符,限制访问仅限于当前类。 | 类成员 |
| protected | 访问修饰符,限制访问仅限于当前类、子类及同一包内的其他类。 | 类成员 |
| public | 访问修饰符,允许从任何地方访问。 | 类成员 |
| return | 从方法返回值或终止方法执行。 | 方法体 |
| short | 基本数据类型,16位有符号整数。 | 变量声明 |
| static | 修饰类成员,表示其属于类而不是对象。 | 类成员 |
| strictfp | 强制浮点运算遵守IEEE 754标准,确保不同平台的一致性。 | 类或方法声明 |
| super | 访问超类的属性或方法。 | 方法体或构造函数 |
| switch | 选择多个可能的代码块之一来执行。 | switch语句 |
| synchronized | 修饰方法或代码块,确保线程安全。 | 方法或代码块 |
| this | 当前对象的引用。 | 方法体或构造函数 |
| throw | 抛出一个异常。 | 方法体 |
| throws | 声明方法可能抛出的异常。 | 方法声明 |
| transient | 标记字段,在序列化过程中不会被保存。 | 类成员 |
| try | 异常处理的开始。 | try-catch-finally语句 |
| void | 方法没有返回值。 | 方法声明 |
| volatile | 标记字段以确保多线程间的可见性和一致性。 | 类成员 |
| while | 开始一个while循环。 | while语句 |
按使用频率排列
| 关键字 | 含义与用途 | 使用环境 |
|---|---|---|
| public | 访问修饰符,允许从任何地方访问。 | 类、方法、变量声明 |
| class | 定义一个类。 | 类声明 |
| void | 方法没有返回值。 | 方法声明 |
| int | 基本数据类型,32位有符号整数。 | 变量声明 |
| if | 执行条件语句。 | if语句 |
| for | 开始一个for循环。 | for语句 |
| new | 创建新的对象实例。 | 表达式 |
| return | 从方法返回值或终止方法执行。 | 方法体 |
| private | 访问修饰符,限制访问仅限于当前类。 | 类成员 |
| static | 修饰类成员,表示其属于类而不是对象。 | 类成员 |
| try | 异常处理的开始。 | try-catch-finally语句 |
| catch | 捕获并处理异常。 | try-catch-finally语句 |
| this | 当前对象的引用。 | 方法体或构造函数 |
| super | 访问超类的属性或方法。 | 方法体或构造函数 |
| while | 开始一个while循环。 | while语句 |
| String | 字符串类型,虽然不是关键字,但使用频率非常高。 | 变量声明 |
| boolean | 基本数据类型,表示true或false。 | 变量声明 |
| break | 终止循环或switch语句。 | 循环体或switch语句 |
| continue | 跳过当前循环迭代,继续下一次迭代。 | 循环体 |
| final | 修饰类、方法或变量,防止被修改或覆盖。 | 类、方法、变量声明 |
| double | 基本数据类型,双精度浮点数。 | 变量声明 |
| float | 基本数据类型,单精度浮点数。 | 变量声明 |
| long | 基本数据类型,64位有符号整数。 | 变量声明 |
| char | 基本数据类型,16位Unicode字符。 | 变量声明 |
| throws | 声明方法可能抛出的异常。 | 方法声明 |
| interface | 定义接口。 | 接口声明 |
| null | 特殊值,表示空引用。 | 表达式 |
| short | 基本数据类型,16位有符号整数。 | 变量声明 |
| byte | 基本数据类型,8位有符号整数。 | 变量声明 |
| volatile | 标记字段以确保多线程间的可见性和一致性。 | 类成员 |
| synchronized | 修饰方法或代码块,确保线程安全。 | 方法或代码块 |
| protected | 访问修饰符,限制访问仅限于当前类、子类及同一包内的其他类。 | 类成员 |
| transient | 标记字段,在序列化过程中不会被保存。 | 类成员 |
| native | 标记方法为本地方法,由非Java代码实现。 | 方法声明 |
| strictfp | 强制浮点运算遵守IEEE 754标准,确保不同平台的一致性。 | 类或方法声明 |
| assert | 用于断言条件在调试期间必须为真。 | 方法体 |
| instanceof | 测试对象是否为特定类型的实例。 | 表达式 |
| package | 定义包名。 | 程序顶部 |
| import | 导入包中的类或接口。 | 程序顶部 |
| enum | 定义枚举类型。 | 枚举类型声明 |
| abstract | 用于声明抽象类和抽象方法。 | 类声明或方法声明 |
| case | switch语句的一部分,用于匹配表达式的值。 | switch语句 |
| default | 在switch语句中用于指定默认要执行的代码块。 | switch语句 |
| do | 开始一个do-while循环。 | do-while语句 |
| throw | 抛出一个异常。 | 方法体 |
| finally | 异常处理中,无论是否抛出异常都会执行的代码块。 | try-catch-finally语句 |