Java基础
(复习记录Java一些基础知识,到面向对象程序设计一些代码语法规范)
环境
JDK、JRE和JVM
JRE=JVM+JavaSE标准类库
JDK=JRE+开发工具集(例如Javac编译工具)
Java程序执行过程
.java源文件 -编译器-> .class字节码文件 -解释器-> 程序执行
常量与变量
float类型变量定义的数据必须在后面加f或F说明,Java中浮点数默认是double类型
'u0016' Unicode编码,'u'开头
final定义常量,类似c++中从const
Java运算符
&&与,有一个false则后面不执行,&则都要计算
||或,有一个true则后面不执行,&则都要计算
Java语法之循环、数组与方法
遍历数组写法
int[] a={33,22,11,45,74,56};
for (int n:a){
System.out.print(n+" ");
}
包package
定义包
导入包
static定义静态属性和静态方法
在类中
普通代码块每次创建对象时调用
{
name="xxx";
}
静态代码块只执行一次
static{
name="xxx";
}
继承
第一行构造方法初始化super()和this()不能同时出现
Object类
Object类是所有类的父类
final修饰类
单例模式
package com.singleton;
//饿汉式:创建对象实例的时候直接初始化
//空间换时间
public class SingletonOne {
//1. 创建类中私有构造
private SingletonOne(){
}
//2. 创建该类型的私有静态实例
private static SingletonOne instance = new SingletonOne();
//3. 创建公有静态方法返回静态实例对象
public static SingletonOne getInstance(){
return instance;
}
}
package com.singleton;
//懒汉式:类内实例对象时并不直接初始化,直到第一次调用get方法时才完成初始化的操作
//时间换空间
public class SingletonTwo {
//1. 创建私有构造方法
private SingletonTwo(){
}
//2. 创建静态的该类实例对象
private static SingletonTwo instance = null;
//3. 创建公有静态方法返回静态实例对象
public static SingletonTwo getInstance(){
if(instance==null)
instance=new SingletonTwo();
return instance;
}
}
多态
instanceof运算符,判断对象类型是否一致
类型转换
向上转型、隐式转换
向下转型、强制类型转换
抽象类abstract
抽象类不能被实例化,防止编写无意义的代码
可以通过向上转型,指向子类实例
抽象方法
不允许包含方法体
父类中声明抽象方法,子类中必须实现该抽象方法
如果子类中不想实现抽象方法,则子类必须也声明为抽象类
接口
定义 interface
实现 implements
通过接口来描述不同类型具有相似行为特征,从而建立关系后以接口引用指向实现类的方式,来描述不同类型对于接口行为的表现
接口中方法权限默认public
当类实现接口时,需要去实现接口中的所有抽象方法,否则需要将该类设置为抽象类
接口中可包含常量,默认public static final 使用 接口名.常量 访问
default 修饰接口中默认方法,可以带方法体
static 修饰接口中静态方法,可以带方法体,接口中的静态方法只能通过接口名来调用
接口名.super.接口中默认方法名 //调用接口中的默认方法
成员内部类
内部类在外部使用时,无法直接实例化,需要借由外部类信息才能完成实例化
静态内部类
方法内部类
匿名内部类
应用场景:一个类的实例只使用一次
将类的定义与类的创建放到一起完成