Java学习路线、快速复习路线(上)-详解

简介:

Java是常用的开发语言之一,是从事相关开发工作的基础。本文将不考虑未来工作方向的影响因素来向读者展示Java的学习/复习路线。

(好吧,实际上是我为了方便复习整理的提纲,可帮助在校生快速复习。分为上下两篇文章,因为今天我没写完。)

Java学习路线、快速复习路线(下)-详解

一、常识概念

1.Java语言版本

  • JavaSE:Java语言标准版,用于桌面应用开发。
  • JavaME:主要用于嵌入式,目前几乎无人使用。
  • JavaEE:Java语言企业版,用于Web方向开发。

2.JVM、JRE、JDK

  • JVM:Java虚拟机。
  • JRE:Java运行环境,包涵JVM以及JavaAPI。
  • JDK:Java开发工具,包含了JRE和开发工具。

3.Java语言是可以跨平台的

  • Java程序通过Java编译器将Java源程序编译为字节码文件。JVM可以将字节码文件执行。所以并不依赖于使用的环境是什么样的操作系统,而是依赖于JVM,所以安装JVM就可以实现跨平台。

4.关键字、常量、变量、标识符

  • 关键字:Java语言中具有特殊含义的单词。关键字字母都是小写的,编译器会高亮显示。
  • 常量:运行过程中值不可以发生改变的量。如:字符串常量、整数常量、小数常量、字符常量、布尔常量、null。
  • 变量:运行过程中值可以发生改变的量。需要自己进行定义,定义时对于数据类型需要限制,因为Java是强类型语言。
  • 标识符:用于给变量、常量、方法、类命名。组成:数字、字母、下划线、美元符号。第一个字符不可以是数字。标识符不能是关键字。类名使用大驼峰命名法,每个单词首字母都大写;变量名、方法名使用小驼峰命名法,从第二个单词开始每个单词首字母大写。

5.Java中数据类型

  • byte :整数类型,占用1byte。
  • short:整数类型,占用2byte。
  • int(默认类型):整数类型,占用4byte。
  • long:整数类型,占用8byte。
  • float:浮点类型,占用4byte。
  • double(默认类型):浮点类型,占用8byte。
  • char:字符类型,占用2byte。
  • boolean:布尔类型,占用1byte。

6.计算机存储单元

  • 位:计算机存储设备最小的单元。b
  • 字节:计算机中最基本的存储单元。byte
  • 1B=8bit、1KB=1024B、1MB=1024KB、1GB=1024MB、1TB=1024GB…

7.类型转换

  • 自动类型转换:把一个数据范围小的数值或者变量,赋值给数据范围大的变量。
  • 强制类型转换:把一个数据范围大的数值或者变量,赋值给数据范围小的变量。

常量优化机制:编译时,整数常量计算会直接计算出结果,并会判断结果是否在该类型范围以内,不在就报错。

byte a=15;
byte b=15;
byte c=a+b;		//报错,a和b自动转换为int类型,结果为int,int给byte赋值要强转。
//修改后:
int num=a+b;    //或者byte c=(byte)(a+b);

8.逻辑运算符、短路逻辑运算符

  • &:逻辑与,a和b都是true,结果为true。
  • |:逻辑或,a和b都是false,结果为false
  • &&:短路与,作用和&相同,有短路效果。
  • ||:短路或,作用和|相同,有短路效果。
  • 短路效果:&&中只要有一个表达式值为false,结果就是false,不用全部计算。|| 道理相同。

9.流程控制语句

  • if 、else if、else:略
  • while、do while、for:略
  • switch语句:执行过程中对表达式进行判断,执行相应语句,遇到break结束。(小心switch穿透问题:解决方案,别忘写break;)
switch(表达式){
    
    
	case 1:
		语句体;
		break;
	case 2:
		语句体;
		break...
	default:
		语句体;
		break;
}

10.数组的动态初始化、静态初始化

  • 数组动态初始化没啥神奇的,听着好厉害,就是只给定数组长度,系统默认初始化。
  • 数组静态初始化:创建数组时,直接确定元素。

11.方法重载

  • 概念:一个类中有多个方法的方法名相同,但这些方法的参数不相同(类型,数量。与方法的返回值无关)。

二、初级入门

1.面向对象、面向过程

  • 面向对象:以对象为中心的思想。
  • 面向过程:以过程为中心的思想。

2.类的组成

  • 属性:一类事物的特征。
  • 行为:操作对象的行为。

3.成员变量、局部变量

  • 成员变量在类中的方法外,局部变量在类中的方法内或者方法声明中。
  • 成员变量在堆内存,局部变量在栈内存。
  • 成员变量的生命周期随着对象的消失而消失,局部变量随着方法的调用结束消失。
  • 成员变量有默认初始化值,局部变量没有默认初始化值。

4.面向对象的四大特性

  • 抽象:将一类事物的共同特征抽取出来。
  • 继承:从已有类创建新类的过程。
  • 封装:将类中的数据进行屏蔽,在外只保留操作数据的方法。
  • 多态:不同子类对于同一消息做出的不同反应。

5.String、StringBuilder、StringBuffer

  • String不可变字符串。
  • StringBuilder可变字符串,线程不安全。
  • StringBffer可变字符串,线程安全。
  • 后两个除了线程安全问题外功能完全相同。

6.static

  • 可以修饰成员方法,成员变量。
  • 被static修饰,被类的所有对象共享。
  • 随着类的加载而加载,优先于对象存在。
  • 可以通过类进行调用。
  • 静态方法只能访问静态的成员。
  • 非静态方法可以访问静态的成员,也可以访问非静态的成员。
  • 静态方法中没有this关键字。

7.final

  • final可以修饰类、成员变量、成员方法。
  • final修饰类,该类不能被继承。
  • final修饰方法,该方法不能被重写
  • final修饰变量,该变量是一个常量 ,不可再赋值。

8.this、super

  • this:代表本类对象的引用。
  • super:代表父类对象的引用。

9.继承中构造方法访问特点

  • 子类初始化之前一定要先将父类数据初始化,每一个子类构造方法的第一条语句默认都是super();

10.方法重写

  • 在继承的场景中出现,子类的方法和父类的方法相同。
  • 私有方法不能被重写。
  • 子类方法访问权限不能更低。
  • 静态方法无法重写。

11.抽象类

  • 抽象类和抽象方法使用abstract修饰。
  • 如果一个类是抽象类,他不一定有抽象方法。
  • 如果一个类有抽象方法,他一定是抽象类。
  • 抽象类不能被实例化。
  • 抽象类可以有构造方法。
  • 抽象类的子类要么也是抽象类,要么将所有抽象方法重写。

12.接口

  • 接口是一种公共的规范。
  • 它的作用是定义规范和功能拓展。
  • 使用关键字interface修饰。
  • 接口不能被实例化。
  • 接口的子类要么是抽象类,要么将所有抽象方法重写。
  • 接口没有构造方法。
  • 类只能单继承,接口不一定。

13.Lambda表达式

  • 使用的函数式编程思想。
  • (形式参数)->{代码块}
  • 使用前提:有一个接口,接口中有且只有一个抽象方法。
  • Lambda表达式有省略模式:参数类型可以省略,要省略全省略。如果参数仅有一个,小括号可以省略。如果代码块语句只有一条,可以省略大括号分好return。

如有内容出错请在留言区留言,及时更正。

おすすめ

転載: blog.csdn.net/weixin_43744992/article/details/121640991