Java 概述
Java 是什么
- Java 是计算机编程语言
- Java 是一种网络程序设计语言
- Java 是一种计算机语言开发平台(JVM 和 Java API)
为什么要学习 Java
- Java 是最流行的编程语言
- Java 涉及桌面级的开发、网络开发、嵌入式开发等
Java 的特点
1. 简单性
- 没有指针
- 没有 C++ 复杂
- 继承了 C 和 C++ 的大部分特性
2. 面向对象
很多语言都号称是面向对象语言,但是 Java 才是一门纯粹的面向对象语言。
* 继承
* 多态
* 封装
3. 健壮性和自动内存管理
拥有垃圾回收机制
4. 安全性
- Java 是一门强类型语言,其中定义的每一个数据都有一个严格固定的数据类型;并且当数据间进行传递时,要进行数据类型匹配,任何不能匹配的结果都会报错。
- Java 屏蔽指针,从而不能直接对内存进行操作,进而大大提高了内存的安全性。
5. 跨平台性
一门语言的跨平台性的优劣体现在该语言程序跨平台运行时修改代码的工作量。Java 是一门完全跨平台语言,它的程序跨平台运行时,对程序本身不需要进行任何修改,真正做到“一次编写,到处运行”。
数组
浅拷贝:
array1 = array2;
深拷贝:
System.arraycopy(fromArray,fromIndex,toArray,toIndex,length);
参数传递
- 在各种程序设计语言中,参数传递一般有两种,一种是“传值”,另一种是“传地址”。
- Java 的参数传递方法都为传值调用
- 基本类型的参数传递:参数得到的都是基本类型变量的拷贝
- 对象类型的参数传递:参数得到的都是对象引用的拷贝,同样也是传值,不是传引用。参数跟原来的对象引用都指向同一个对象,对对象的操作都改变实际的对象,但是对参数的操作却并不能影响原来的对象引用,它们之间是一个拷贝的关系。
抽象类和接口
- 一个类可以实现多个接口,但是只能继承一个抽象类。
- 抽象类可以没有抽象方法,即可以有已经实现的方法;但是有抽象方法的类一定是抽象类。
- 接口中定义的方法必须全部为抽象方法,实现接口的类必须重写所有的方法,否则为抽象类,它的子类必须实现接口中定义的方法。
- 在抽象类中定义的方法,它们的修饰符可以是 public 、 protected 、 private ,也可以是默认值;但是在接口定义中的方法全是 public 。
- 抽象类可以有构造函数,接口不能。两者都不能实例化,但是都能通过它们来存放子类对象或是实现类的对象。可以说它们都可以实现多态。
静态内部类和非静态内部类
内部类访问宿主类:
- 非静态内部类可以调用其宿主类的所有变量和方法,并且像宿主类的其他非静态成员那样直接引用它们。
- 静态内部类可以直接调用其宿主类的静态变量和静态方法;对于非静态变量和非静态方法的调用则必须通过生成宿主类的对象来访问。
宿主类访问内部类:
- 静态内部类的静态变量可以直接用“内部类名.变量名”,对于非静态变量则要生成它的对象,利用对象来访问。
- 非静态内部类不包含静态变量,所以宿主类访问非静态内部类的变量需要生成内部类的对象来访问。