1. Java的特点
- 面向对象:
对现实世界的一种抽象,把相关的数据和方法组织为一个整体看待
面向过程一般是顺序性的完成一系列动作,面向对象不用严格按照顺序来执行每个动作 - 相较于C++,摒弃了多继承、指针、内存管理等概念,不用手动管理对象的生命周期
- 框架多,功能强大,简单易用
- 静态语言
在编译期间就可以知道数据类型,在运行前就能检查类型的正确性,类型确定后就不能再更改
静态语言有:
相对应的动态语言,没有任何特定的情况需要指定变量的类型,比如:
动态语言能提高程序员的编码效率,更少的代码来实现功能,静态语言让硬件执行的更高效
静态比动态执行效率高,速度更快
- 平台独立性和可移植性
一次编写,到处运行
已经编译的java程序可以在任何带有JVM的平台运行,如:在windows平台下编写代码,拿到Linux平台下运行
切换平台不需要再次编译
- 容易实现多线程
Java是高级语言,对用户屏蔽很多底层实现细节(如Java实现多线程) - 具有高性能
- 具有健壮性
强类型机制,异常处理,垃圾的自动收集
GC(垃圾回收)
- 容易开发分布式项目
支持Internet应用的开发,还有net api,提供了用于网络应用编程的类库
2. Java开发环境
JDK是开发人员使用
JRE是运行环境
JDK包含JRE
JRE中包含JVM
3.Java 基本语法:
略
4.Java面向对象
4.1Java类的描述:
属性:类中的变量
行为:类中的方法
4.2重载(overload):
构造器也可以重载
4.3封装:
如:
使用private
4.4四种访问修饰符:
4.5this和super:
关键字
this表示的当前对象,可以调用方法、调用属性和指向对象本身
三种用法:
1.指向当前对象
2.修饰属性,最常见的是在构造方法中使用this
3.和构造函数一起使用,充当一个全局关键字
super是指向父类的一个引用
4.6继承:
继承的关键字是extends
Father是父类
Son是子类
继承双方拥有共性的特征
4.7方法的重写:
4.8多态:
方法的重写和重载都是多态的体现
4.9组合:
5.高级类特性
5.1Object类:
5.2基础类型转换:
==操作符与equals方法的比较:
==:
equals:
但是
最典型的是String
S1==S2 False
S1.equals(S2) True
5.3包装类:
包装类的主要作用:
5.4Static:
类属性:
类方法:
工具类指在之后的代码中会多次使用的
修饰的成员,被所有对象共享,多用于计数
每次new Chinese,count都会+1
5.5单例设计模式:
设计模式:
设计模式就是在实际编程中,逐渐总结出的一些解决问题的套路
单例:
单例设计模式一般用于new对象太费劲(运行一次new需要巨大的时间和内存),没有频繁new对象的必要
单例模式实现方式:
饿汉式:
懒汉式:
饿汉式在类内部创建对象,之后每次创建的都是内部创建的instance
懒汉式在类内部为null,第一次调用时创建,之后每次创建都是第一次创建的instance