我的 Java 入门进阶之路(一)

文章目录

    • 1. JDK&JRE&JVM关系示意图:
    • 2. 基础数据类型
    • 3. if / if else / for / while 示意图
    • 4. IDEA 开发 项目构架
    • 5. 死循环编译器的编译过程
    • 6. 数据类型的转换
    • 7. ASCII编码表
    • 8. 运算符:
    • 9.方法入门
    • 9. Java 数组
    • 10.数组原理内存图:
    • 11. 数组操作常见异常解决


1. JDK&JRE&JVM关系示意图:

我的 Java 入门进阶之路(一)_第1张图片

  • JVM(JavaVirtualMachine):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java最具吸引力的特性之一。我们编写的Java代码,都运行在JVM之上。

  • JRE (JavaRuntimeEnvironment):是Java程序的运行时环境,包含JVM和运行时所需要的核心类库

  • JDK (JavaDevelopmentKit):是Java程序开发工具包,包含JRE和开发人员使用的工具。

我们想要运行一个已有的Java程序,那么只需安装JRE即可。我们想要开发一个全新的Java程序,那么必须安装JDK

小贴士:三者关系:JDK>JRE>JVM


2. 基础数据类型

基本数据类型

整数型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean

引用数据类型

字符串、数组、类、接口、Lambda

注意事项

  1. 字符串不是基本类型,而是引用类型
  2. 浮点型可能只是一个近似值并非精确的值
  3. 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
  4. 浮点数当中默认类型是double。如果一定要使用float类型需要加上一个后缀F
    如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
    我的 Java 入门进阶之路(一)_第2张图片
  • 关键字比较多,不能死记硬背,学到哪里记到哪里即可。

3. if / if else / for / while 示意图

顺序结构流程图
我的 Java 入门进阶之路(一)_第3张图片
if结构
我的 Java 入门进阶之路(一)_第4张图片


if else结构
我的 Java 入门进阶之路(一)_第5张图片


if else 多层嵌套

我的 Java 入门进阶之路(一)_第6张图片


for 循环
我的 Java 入门进阶之路(一)_第7张图片


while循环
我的 Java 入门进阶之路(一)_第8张图片


4. IDEA 开发 项目构架

我的 Java 入门进阶之路(一)_第9张图片
package命名规则规范: 网址倒序
在这里插入图片描述


5. 死循环编译器的编译过程

/*
永远停不下来的循环,叫做死循环。

死循环的标准格式:
while (true) {
	循环体
}
*/
public class DemoDeadLoop {
    public static void main(String[] args) {
        while (true) {
                System.out.println("I Love Java!");
            }
        System.out.println("Hello"); // 报错,无法执行
    }
}

在这里插入图片描述注意: 编码阶段只是提供编译检查,并不知道你运行期会出现什么问题,当你写了一个死循环代码,编译器认为你这个死循环不具备退出条件,后面的代码绝对的永远执行不到(重点在绝对),除非出现break,continue


6. 数据类型的转换

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

6.1自动转换:

将取值范围小的类型自动提升为取值范围大的类型。

public static void main(String[]args){
int i=1;
byte b=2;
//byte x=b+i;//报错
//int类型和byte类型运算,结果是int类型
int j=b+i;
System.out.println(j);
}

转换原理图解
我的 Java 入门进阶之路(一)_第10张图片

转换规则

范围小的类型向范围大的类型提升,byte、short、char运算时直接提升为int

byteshortchar‐‐>int‐‐>long‐‐>float‐‐>double

6.2 强制类型转换

将1.5赋值到int类型变量会发生什么?产生编译失败,肯定无法赋值。

inti=1.5;//错误

double类型内存8个字节,int类型内存4个字节。1.5是double类型,取值范围大于int。可以理解为double是8升的水壶,int是4升的水壶,不能把大水壶中的水直接放进小水壶去。

想要赋值成功,只有通过强制类型转换将double类型强制转换成int类型才能赋值。

将取值范围大的类型强制转换成取值范围小的类型。比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行

转换格式

数据类型变量名=(数据类型)被转数据值;

//double类型数据强制转成int类型,直接去掉小数点。
inti=(int)1.5;

转换原理:

我的 Java 入门进阶之路(一)_第11张图片

强烈注意

  • 浮点转成整数,直接取消小数点,可能造成数据损失精度。
  • int强制转成short砍掉2个字节,可能造成数据丢失。
//定义s为short范围内最大值
shorts=32767;
//运算后,强制转换,砍掉2个字节后会出现不确定的结果
s=(short)(s+10);

7. ASCII编码表

在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念。 就是将人类的文字和一个十进制数进行对应起来组成一张表格

小贴士:在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。
char类型提升为了int类型。char类型内存2个字节,int类型内存4个字节。


8. 运算符:

算数运算符
我的 Java 入门进阶之路(一)_第12张图片
我的 Java 入门进阶之路(一)_第13张图片
我的 Java 入门进阶之路(一)_第14张图片
我的 Java 入门进阶之路(一)_第15张图片

和原来的C语言,JavaScript一样的用法性质

+=符号的扩展

在这里插入图片描述
在这里插入图片描述


9.方法入门

方法的定义
我的 Java 入门进阶之路(一)_第16张图片我的 Java 入门进阶之路(一)_第17张图片

方法的调用

我的 Java 入门进阶之路(一)_第18张图片
方法调用流程:

我的 Java 入门进阶之路(一)_第19张图片
方法返回值的有无

我的 Java 入门进阶之路(一)_第20张图片

方法的重载:

对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。

方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能

方法重载与下列因素相关:

  1. 参数个数不同
  2. 参数类型不同
  3. 参数的多类型顺序不同

方法重载与下列因素无关:

  1. 与参数的名称无关
  2. 与方法的返回值类型无关

注意事项:

  • 方法必须定义在一类中方法外
  • 方法不能定义在另一个方法的里面 (不能嵌套)
    我的 Java 入门进阶之路(一)_第21张图片

9. Java 数组

数组的概念 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

数组的定义:

我的 Java 入门进阶之路(一)_第22张图片
我的 Java 入门进阶之路(一)_第23张图片

我的 Java 入门进阶之路(一)_第24张图片

我的 Java 入门进阶之路(一)_第25张图片


数组的访问:

我的 Java 入门进阶之路(一)_第26张图片

我的 Java 入门进阶之路(一)_第27张图片


10.数组原理内存图:

内存概述:内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理

Java虚拟机的划分

我的 Java 入门进阶之路(一)_第28张图片


数组在内存中的存储
我的 Java 入门进阶之路(一)_第29张图片
我的 Java 入门进阶之路(一)_第30张图片

我的 Java 入门进阶之路(一)_第31张图片
两个数组指向一个变量
我的 Java 入门进阶之路(一)_第32张图片
我的 Java 入门进阶之路(一)_第33张图片

这里涉及数组内存地址共享 可参考此文章


11. 数组操作常见异常解决

  • 数组越界异常

我的 Java 入门进阶之路(一)_第34张图片

  • 数值空指针异常

我的 Java 入门进阶之路(一)_第35张图片

我的 Java 入门进阶之路(一)_第36张图片


数组基本操作 : 遍历 , 冒泡算法 , 倒置 , 求最大值 … ,以前JavaScript , C语言学过 。


未完待续 … . . …

你可能感兴趣的:(Java)