为了更好地发展,

拥有更高的上限,

我还是进入了,

JAVA的世界里~

这是第一次入门JAVA的笔记,我颠覆以往的笔记风格
将以疯狂的模式暴力按学习顺序记录下JAVA语法集合
ok music ,go go go!

一.基础搭建

1.Eclipse安装

先从JAVA的JDK官网下载最新版
https://www.oracle.com/technetwork/java/javase/downloads/index.html
下载之后就进行安装,找到安装后的目录,进入bin文件夹
将这个文件夹加入系统环境变量即可。
然后从Eclipse官网下载Eclipse平台,注意,这是国外源,速度极慢
https://www.eclipse.org/downloads/
正确的下载方法是选择安装压缩包,在下面的镜像中选择国内源,大连开头的
然后直接解压出来,打开eclipse.exe就可以了

2.第一个JAVA程序

首先工作区创建一个hello文件包,里面会自动产生编译的相关文件配置
src就是我们要编写JAVA代码的地方,右键创建一个子包
再对这个子包,创建一个class就能够产生你的第一个JAVA程序。

3.HelloWorld

因为你创建了class,有一个命名的过程,所以新产生的文件就有自动写好的模板
初次遇见JAVA(一) - 图1
第一行的代码就是来自你创建的子包,第三行就是class文件声明,也就是你刚刚命名的
第三行就是这个java文件的main入口,Eclipse上的快捷键是先输入main,alt+/自动补全
然后我们就要遵循计算机传统了,helloworld
初次遇见JAVA(一) - 图2
然后点击run,就能看到招呼了!
初次遇见JAVA(一) - 图3
从这儿开始,我就停止详细的编写了,在前面我认为很有必要介绍下搭建平台步骤。
但在下面,我说过,这是第一次JAVA笔记,我打算暴力一些,也节省时间,因为我后面不知道还要学几遍JAVA,所以,let’s go!

4.输出

块级输出:System.out.println(“hello world”);
行内输出:System.out.print(“hello world”);

5.变量

整型变量:int money = 20;
浮点型变量:double money = 20.0;
字符串变量:String money = “20” ;
常量,使用final修饰:final double PI = 3.14;
变量命名最好遵循驼峰式命名,变量被使用之前必须先被声明,任意两个变量不能重名。

6.Scanner

键盘输入所需要的类
引用:import java util.Scanner;
创建一个Scanner对象:Scanner input = new Scanner(System.in);
①接收键盘输入的整型数据:int num = input.nextInt();
②接收键盘输入的浮点型数据:double num = input.nextDouble();
③接收键盘输入的字符串数据:String num = input.next();

7.Random

生成随机数所需要的类
引用:import java util.Random;
创建一个Random对象:Random num = new Random();
①生成0-5的随机整数,包括0但不包括5:int result = num.nextInt(5);
②生成0-1之间的小数点,不包括1:double result = num.nextDouble();

8.类型转化

先看一个公式,从小到大依次排列为:
byte -> short -> int -> long -> float -> double
在JAVA中,碰到声明与赋值不符合的数据的时候,先判断赋值谁大谁小
小的声明可以直接转化为大的声明
比如 int num = 5.5; 是报错的,因为这个5.5属于double,转换不到前面的int声明。
但是 double num = 5;却不报错,因为5是int,能够被强制转化为前面的double声明。
那么int num = 5.5;该怎么挽救呢?—> int num = (int)5.5; —> 这样num的值就只取整数5了。

9.自增与自减

以这个为条件:int a = 3;
int aa = a++; —> aa的值是3,但是a的值成了4。
int aa = ++a; —> aa的值是4,a的值也是4。
所以a++ 和 ++a的共同点都是a的值会加上1,但是当前的赋值却不同。

10.运算符

相等运算符:==
不等运算符:!=
异运算符:&&
或运算符:||
三元运算符:(布尔表达式) ? 结果1 : 结果2

二.添砖加瓦

1.if-else

初次遇见JAVA(一) - 图4

2. switch

初次遇见JAVA(一) - 图5
这儿可以拓展一个闹钟案例,自动辨别是星期几
初次遇见JAVA(一) - 图6

3.while

弄清楚while 与 do…while的区别
①while,可能一次也不执行
while (条件) {
};

②do…while,至少执行一次
do {
} while(条件);

4.for

公式:
for (初始声明; 循环条件; 自增量) {
// 每一次循环的执行代码
}
数组遍历用法套路
初次遇见JAVA(一) - 图7
加法表的打印
初次遇见JAVA(一) - 图8

5.break

只能在循环体内和switch语句体内使用break;
一旦触碰到break,停止循环,进入循环下面的代码执行。

6.continue

.终止本次循环的执行,接着进行下一次循环条件的判断。
也就是说,一旦碰到continue,就无视循环体内剩下的代码,回到循环体的开头。

7.数组

数组在内存怎么工作?
声明数组的时候,开辟一个栈,然后声明数组的长度的元素类型,栈指向堆空间。
初次遇见JAVA(一) - 图9
笨重的方式,声明整型元素的数组,存放5个:int[ ] arr = new int[5];
更方便的声明数组方式:int[ ] arr = {1,2,3,4,5};
更全面的声明数组方式:int[ ] arr = new int[ ] {1,2,3,4,5};
数组的长度:arr.length
数组的索引:arr[2] —> 数组第三个元素
数组的异常:arr = null; —>直接清空数组的指针,变得不可用

二维数组有三种定义方式:
初次遇见JAVA(一) - 图10
第一种定义了三行四列的二维数组,元素未确定;
第二种定义了三行任意列的二维数组,元素未确定;
第三种定义了确定元素的二维数组,一共有三行,但是每一行的元素数不相同。

二维数组的求和非常简单,结合for循环
初次遇见JAVA(一) - 图11

8.Arrays

Arrays是JAVA操作数组的一个类。
引用:import java.util.Arrays;
①对数组排序,能够改变原数组的方法:Arrays.sort(arr);
②比较两个数组,两个数组必须一模一样:Arrays.equals(arr1,arr2);
③把一个数组转换成字符串,查看数组最直观的方法:Arrays.toString(arr);
④把数组的所有元素赋值为某个值:Arrays.fill(arr,6);
⑤赋值一个新的数组并定义长度,超出长度的元素以0为代替:int[ ] arr2 = Arrays.copyOf(arr1,5);
⑥返回某个元素的下标位置,找不到就返回-1值:Arrays.binarySearch(arr,3);

用JAVA实现一个冒泡排序:
初次遇见JAVA(一) - 图12
分析冒泡原理时候的过程:
初次遇见JAVA(一) - 图13

9.ASCII

定义ASCII码的声明是char
char m = ‘A’;
因为字母A对应的ASCII码是65,所以m + 1 的返回结果是66,如果想要把它显示为B
应该使用(char)(m+1)强转化为B
实现大小写26个字母的打印
初次遇见JAVA(一) - 图14

10.方法

我们知道,一般的编程语言是有函数的,但是在JAVA的叫法却是方法。
如果你有其他编程语言的基础,我想我应该不需要过多解释,方法一般分为下面四种:
①无参数无返回值
②无参数有返回值
③有参数无返回值
④有参数有返回值
这些细微的区别到底在哪儿呢?

如果你想定义一个print()函数,无参数无返回值的那种,那就是:
public static void print() { …… };
如果你想定义一个change()函数,无参数有返回值,那就需要定义返回值的数据类型:
public static int change() { return ……};
所以你应该能总结出来的是:
public表示修饰符,static表示静态,void表示无返回值的方法,int表示返回整型数据值的方法
这儿的int可以替换成double,String等等,这取决于期望的返回值类型。
至于方法的参数,我不需要多言,在JAVA中你设置参数前需要先声明:
初次遇见JAVA(一) - 图15
这是一个简单的三个参数累加起来的方法,运用了之前类型强转化的知识点。

至于方法怎么调用呢?你只需要记住两句话:
方法声明需要写在main{}块下面;
调用方法,在main{}块里面调用;

JAVA还是一门很有意思的语言,拥有一些脚本语言不能实现的特性功能
比如方法重载,JAVA允许同名的方法存在,并各自调用不影响
触发方法重载的方式是:
首先参数个数不能相同,如果相同,参数类型不能相同
其次,方法重载不受是否返回值方法影响
初次遇见JAVA(一) - 图16
但是调用的时候,确实互不影响的
初次遇见JAVA(一) - 图17
这便是JAVA的一个特性:方法重载。

初次遇见JAVA(一) - 图18