1.Java 可移植性
主要依靠JVM(Java虚拟机),所有的程序只要有Java虚拟机的支持,那么就可以实现程序的执行,不同操作系统上会有不同版本的JVM,这样就实现了可一致性。
Java虚拟机:是一个由软件和硬件模拟出来的计算机,读取并处理经过编译的与平台无关的字节码文件。
Java编辑器:针对Java虚拟机产生的class文件,因此是独立于平台的。
Java:解释器负责将Java虚拟机的代码在特定的平台上运行。
小黑窗编译的时候先javac 编译成class文件 ,再java 文件名不需要加.class 运行文件。
2.类的定义两种方式
1.“public class 类名称 {}”:类名称必须与文件名称保持一直,一个 *.java 文件里面只允许有一个public class 定义;
2.“class 类名称 {}”:类名称可以与文件名称不一致,但是编译后的 *.class 名称是 class 定义的类名称,解析的时候要求解析的是生成的 *.class 文件名称,在一个 *.class 文件里面可以有多个 class 定义,并且编译之后会形成不同的 *.class 文件;
3.标识符的组成
不能是关键字,由字母数字下划线组成。驼峰命名
4.Java数据类型
基本数据类型:描述的是一些具体的数字。
数值型:
整型:byte short int long —> 默认值:0
浮点型:float、double —> 默认值:0.0 、
布尔型:boolean —> 默认值:false
字符型:char —> 默认值:'\u0000'
引用数据类型:牵扯到内存关系的使用。
数组、类、接口 —> 默认值:null
5.运算符:
6.程序逻辑结构
continue:结束本次循环继续下一个循环
用private进行类属性的封装。
构造方法:实体类的有参构造和无参构造,构造方法不能加返回值,否则就跟普通方法没区别了。构造方法名字必须跟类名一致。
8.this关键字:
9.static关键字:
声明 static 属性
声明 static 方法
静态代码块
10.数组
声明并初始化数组:数据类型 数组名称 [] = new 数据类型 [长度];
int cc [ ] = new int [ 3 ];
数组的静态初始化:数据类型 数组名称 [] = new 数据类型 [] {数据1,数据2,……};
int cc [ ] = new int [ ] {1,2,3 };
通过数组的基本定义可以发现,在数组使用的过程中依然需要关键字 new 进行内存空间的开辟,同理,那么这里面也一定有内存的关系匹配。
11.二维数组:
12.string类特点分析
字符串严格意义上讲并不能算是一个基本数据类型,也没有说任何一门语言会缇欧刚有字符串这种数据类型,而 Java 里面为了方便开发者进行项目的编写,所以利用其 JVM 的支持制造了一种可以简单使用的 String 类,并且可以像基本数据类型那样进行直接的赋值处理。
类对象的两种实例化方式:直接赋值:String aa = "ddd";
构造方法实例化: String aa = new String("sss");
字符串比较:
21.继承:
实例化子类的同时也示例化了父类。 Java中不允许多重继承,允许多层继承。
进行继承关系定义的时候,实际上子类可以继承父类中的所有的操作结构,但是对于私有操作属于隐式继承,而所有的非私有操作属于显示继承
方法的覆写:当子类定义了与父类方法名称相同,参数类型和个数完全相同(跟父类方法一模一样)的时候,就称为方法的覆写。
22.final:
final 在程序之中描述的是种终端器的概念,在 Java 中使用 final 关键字可以实现如下的功能:定义不能够被继承的类、定义不能够被覆写的方法、常量。
23.多态性简介:
态性是面向对象中的第三大主要特征,多态性是在继承性的基础上扩展出来的概念,也就是说可以实现父子类之间的互相转换处理。
向上转型必须向上转型,不推荐使用。
抽象类:抽象类的主要作用在于对子类中覆写方法进行约定,在抽象类里面可以定义一些抽象方法以实现这样得约定,抽象方法指的是使用了 abstract 关键字定义的并且没有提供方法体的方法,而抽象方法所在的类必须为抽象类,抽象类必须使用 abstract 关键字来进行定义(在普通类的基础上追加抽象方法就是抽象类)。
24.包装类:
接口:可以定义为一个纯粹的抽象类 interface关键字