
菜鸟自学WEB记
个人简介:我是一名硕士,专注于自动驾驶算法的研究,虽然并非科班出身,但对C++有一定的了解。由于工作需要,我开始自学Java和Web开发,目的是为了了解开发流程,但我并不进行实际开发。
学习途径:主要通过B站上的视频学习。
以下是我对Java学习的一些心得体会,全部整理成笔记。对于类、多态等知识,我觉得与C语言大同小异,所以暂时停止了对Java语言的深入学习,直接转向Web开发。
独学无友,孤陋寡闻。在此欢迎各位高手给予指导!
1. JDK主要提供两个工具:javac用于编译.java代码,java用于运行编译后的.class文件。此外还有javaw和jshell两个工具。
2. 环境变量JAVA_HOME的配置,LOL英雄联盟竞猜大厅。
3. Java分为Java SE(桌面应用)、Java ME(嵌入式设备)和Java EE(Web方向网站开发)。
4. Java EE的应用方向包括:
(1)桌面应用,如各类软件;
(2)企业级应用,如微服务springcloud;
(3)移动应用,如Android;
(4)Matlab;
(5)大数据开发,如hadoop;
(6)游戏开发,如Minecraft。
5. Java的特点:面向对象、多线程、开源、跨平台。
6. Java跨平台的原理是:Java不是直接运行在操作系统里,而是运行在虚拟机(JVM)中,只需针对不同的操作系统安装不同的虚拟机即可。
7. JRE和JDK:
- JDK(Java Development Kits):包括JVM、核心类库、开发工具(javac、java、jdb、jhat);
- JRE(Java Run Environment):包括JVM、核心类库、运行工具,英雄联盟S14赛季竞猜大厅。
8. 关键字全部字母小写,类名和文件名要保持一致。
9. 字面量类型:整数、小数、字符串、字符、布尔、空类型(null)。
10. 特殊符号:' '制表符,用于对齐。
11. 计算机存储规则:文本;图片(RGB三原色);声音(控制采样频率)。
12. 数据类型:
- byte类型(-128~127);
- 使用long类型定义时,需要在数字后面加L,如:long a = 99999L;
- 使用float定义时,后面需要加一个F作为后缀,如:float a = 1.87F。
13. 标识符命名规则:
- 小驼峰:适用于方法和变量,如:firstStudent;
- 大驼峰:适用于类名,如:GoodStudent。
14. Scanner类,可以扫描键盘录入,步骤包括导包、创建对象、接收数据(见ScannerDemo.java)。导包要放在类定义之前。
15. IDEA的项目结构:project、module、package、class。
16. Package的多级包用.分割开,如建立com.it.demo1,最外层是com。
17. 代码的快捷操作:
- 快速书写main函数:psvm;
- 快速书写输出函数:sout。
18. 基本设置:
- 改变背景颜色、字体大小、颜色、自动导包、大小写匹配;
- 类(class)的操作:新建、删除、编辑(使用rename对类进行重命名);
- 模块(module)的操作:新建、修改、删除、导入;
- 项目(project)的操作:新建、打开、关闭、修改。
19. 代码中如果有小数参与计算,结果可能是不精确的。
20. 隐式转换:Byte->short->Int->long->float->double。Byte/char/short在进行数值运算时,自动转成int。
21. 强制转换:double a = 10.3; Int b = (int)a;
22. 连续+时,从左到右进行,如1+99+“年黑马”结果为“100年黑马”。只要有字符串拼接,就产生新的字符串。

23. &和|分别为与和或,&&和||分别为短路与和短路或,意思为:当左边可以满足时,右边就不会参与。
24. 三元运算符:关系表达式?表达式1:表达式2。
25. 原码、反码、补码:
- 正数的三个码是一致的;
- 负数的原码为:第一位为1,后边为数值;反码则第一位不变,其余位0变1,1变0;补码为反码加1。
26. 逻辑运算。
27. switch的注意事项:
- 注意写default和break。
28. 数组的静态初始化,手动指定元素,系统给出数组长度:
int[] array = new int[]{2,2,2};
int[] array = {2,6,7};
29. 数组遍历的书写方法:array.fori。
30. 数组的动态初始化,只指定数组长度,系统自动给数组赋值(0/null):
int[] array = new int[4];
31. 方法定义示例:
```java
package com.it.demo1;
public class HelloWorld {
public static void main(String[] args) {
int re = play(1,3);
System.out.println(re);
}
public static int play(int a,int b){
return a+b;
}
}
```
32. 方法要先定义后调用,定义在同一个类中。基本格式:
```java
public static 返回值类型(参数){
方法主体;
return;
}
```
33. 方法重载:同一个类中、名称相同、参数(类型、个数)不同。
34. 键盘录入多个数据:
```java
Scanner s = new Scanner(System.in);
Int a = s.nextInt();
Int b = s.nextInt();
```
35. Ctrl+alt + M,自动抽取方法。
36. 二维数组:
- 静态初始化:Int[][] arr = {{1,2},{2,3}};
- 动态初始化:int[][] arr = new int[2];