自学Java-0基础到框架(JDK17)-day01
本帖最后由 xiaotian1339 于 2022-3-30 17:58 编辑## 1.环境
- IDE选择的为JetBrain的为**IntelliJ IDEA Ultimate 2021.3 **
- Java 选择的为 JDK17.0.2
----
> 在开始自学前,需要已基础了解什么为计算机程序,基础dos操作等
---
### 自学前准备
1. JDK的安装直接从Java官网进行下载安装并配置好环境变量,运行cmd输入“java -version”返回以下信息则为安装配置完成!
!(https://s1.ax1x.com/2022/03/30/qgoNUs.png)
2. 创建项目,IDEA-> 新建项目 -> 选择安装的SDK ->取消勾选“从模板中创建项目” ->选择保存路径 -> 完成
!(https://s1.ax1x.com/2022/03/30/qg5ERK.png)
!(https://s1.ax1x.com/2022/03/30/qg5VxO.png)
!(https://s1.ax1x.com/2022/03/30/qg5gL4.png)
!(https://s1.ax1x.com/2022/03/30/qgInpV.png)
项目创建完成
> Tips:一开始我直接在项目根目录直接创建java类,发现无法调试和运行。找了不少地方才知道idea创建好项目之后添加Java类需要在生成的“src”目录下进行新建文件
>
> > 因为笔记是使用MarkDown进行的记录,所以自己在项目文件下创建了md文件夹,默认是没有的,望知悉
---
## 2.Hello World
### 创建Java类
!(https://s1.ax1x.com/2022/03/30/qgTxYR.png)
!(https://s1.ax1x.com/2022/03/30/qg774A.png)
---
### 代码编写
因为是刚入门所以直接利用IDEA的代码智能声明自动补充
!(https://s1.ax1x.com/2022/03/30/qgHHZF.png)
#### Hello World完整代码内容
```java
public class Helloworld {
public static void main(String[] args) {
System.out.println("Hello World!\n Java!");
}
}
```
> 解析代码:(类比于其他语言的解释,如有不正确请评论指出)
>
> 1. **main**: 与C和其他语言类似 ,main 是一个程序的入口,一个 java 程序运行必须而且有且仅有一个 main 方法。
> 2. **public**: 表示的这个程序的访问权限,我目前认为表示的是任何的场合可以被引用,与之对应的是private。(类似于python吧,目前这么认为)
> 3. **static**: 表示方法是静态的,在加载的时候 main() 方法也随着加载到内存中去。
> 4. **void**:无需返回值
> 5. **String[] args**:从控制台接收的参数。
Alt+Shift+F10或者工具栏选择运行找到运行进行代码编译运行
!(https://s1.ax1x.com/2022/03/30/qgb3Js.png)
选择HelloWorld运行
#### 后话
1. 发现一个错误,在Java中类名应该是首字母大写的,多单词应该均保持首字母大写。这里贴出来找到的Java语法注意事项。
> - **大小写敏感**:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
> - **类名**:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 **MyFirstJavaClass** 。
> - **方法名**:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
> - **源文件名**:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 **.java**。(如果文件名和类名不相同则会导致编译错误)。
> - **主方法入口**:所有的 Java 程序由 **public static void main(String[] args)** 方法开始执行。
2. 多方搜索,发现控制台编译程序需要执行
```bash
$ javac XXX.java
$ java XXX
```
才会有输出结果。
不过我发现在jdk17中只需要输入
```bash
$ java XXX.java
```
就可以直接输出结果了,不知道是不是新版本特性。
#### 运行结果
!(https://s1.ax1x.com/2022/03/30/qgbNLT.png)
可以看到项目文件下多了Out文件夹,下面已经运行出来了
```bas
Hello world!
Java!
```
---
## 3.基础语法
### 基础语法
可以跳转到上面后话的注意事项
### 标识符
1. 应以字母或是“$”或“_”开头
2. 关键字不能作标识符
3. 区别大小写
### 关键字
这里贴出来百度百科相关资料
!(https://s1.ax1x.com/2022/03/30/q2C8fK.png)
### 修饰符
1. default, public , protected, private
2.final, abstract, static, synchronized
具体什么区别目前还不清楚
### 变量
1. 局部变量
2. 类变量(静态变量)
3. 成员变量(非静态变量)
### 数组
储存在堆上的对象,存多个同类型变量。
### 枚举
Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。
> 例如奶茶店只设置了大、中、小杯,所以顾客只能在大中小中选择
>
> 使用枚举可以减少代码中的 意外错误
### 继承
利用继承可以重写原来类中的属性和方法,也可以调用所继承类中的方法
### 注释
```java
// 单行注释
/*
*多
*行
*注
*释
/*
``` 本帖最后由 万军 于 2022-3-30 18:28 编辑
同学习,打卡
现在直接 从17版本入手学习了? 印象还在Java8 万军 发表于 2022-3-30 18:26
同学习,打卡
现在直接 从17版本入手学习了? 印象还在Java8
因为想一路从0基础慢慢学到框架,我看一些文章写部分框架将仅支持jdk17,所以决定从17开始入手学习。共同进步! 英语不好的能学吗,难度高吗-- 看的哪个视频或者文档学的?有推荐吗 这个学会了~能用来什么领域? shuangyan 发表于 2022-3-30 19:17
英语不好的能学吗,难度高吗--
能学,难度不是很大的 阿琛 发表于 2022-3-30 19:36
看的哪个视频或者文档学的?有推荐吗
我是直接从网上找的文档学习,遇到不会的在搜索引擎搜索的 绝对疯子 发表于 2022-3-30 19:44
这个学会了~能用来什么领域?
Java领域比较广吧,安卓app,网站后台,应用程序…… 大佬挺猛,上来就整jdk17