java基础知识总结

一Java概述

Java三种技术架构:

JAVAEE:开发企业环境下的应用程序,主要针对web开发;

JavaSE:完成桌面应用程序的开发,是其他两者的基础;

JavaME:开发电子消费产品和嵌入式设备,如手机中的程序。

1、JDK:Java的开发和运行环境,Java的开发工具和jre;

2、jre:java的运行环境,Java运行的所需的类库+JVM(JAVA虚拟机);

3、 配置环境变量:对Java_home、classPATH

4、javac命令和java命令做什么事情

javac:复制的是编译的部分,当执行java时,会启动java的编译器程序。对指定扩展名为.java文件进行编译,生成jvm能识别的字节码(class文件) ,也是java的运行程序。

java:负责运行的部分。会启动JVM加载运行所需的类库,并对class文件进行执行。

一个文件要是被执行,必须要有一个执行的起始点,这个起始点就是main函数。 

二java语法基础

1、关键字:java语言赋予特殊含义的单词

2、保留字:还没有赋予特殊含义,准备日后要使用的单词。

3、标识符:程序中的自定义名词。如:变量名、函数名、类名等

注意事项:数字不能开头,不能使用关键字。

4、常量:程序中的不会变化的数据

5、变量:在内存中的一个存储空间,用于存储常量数据。

作用:方便于运算。因为有些数据不确定。

特点:变量空间可以重复使用

变量三要素:数据类型、变量名称、变量的初始化。

变量的数据类型:

1):基本数据类型:byte/short/int/long/float/double/char/boolean

2):引用类型:数组、类、接口

3):级别从低到高 byte/char/short->int->float->long->double

自动类型转化:从低到高系统自动转化;

强制转化:从高到低 

6、函数

函数的作用

1):用于定义功能

2):用于封装代码提高代码的复用性

注意:函数中只能调用代码,不能定义函数。

主函数:保证该类的独立运行,他是程序的入口,他直接被JVM调用 

函数定义名称的作用

1):为了对该功能进行标示,方便调用

2):为了通过名称可以明确函数的功能,增加代码的阅读性。 

7、重载:在一个类中,如果出现两个或者两个以上的同名函数,他们的参数个数,参数类型不同 

8:数组:定义一个数组

String[] a = new String[10]

String[] a = {1,2,3}; 

String[] a = new String[]{1,2,3}; 

 9:java分了5片内存

寄存器、本地方法区、方法区、栈、堆 

三、面向对象

1、对象体现:过程就是函数,对象就是将函数等一些内容进行封装。

2、匿名对象:对方法只进行一次调用的时候,可以使用匿名函数,多次调用成员必须给对象起名字。 

 3、成员变量与局部变量

局部只在自己的作用域有效,成员变量再类中有效。

局部变量存在于堆内存中,局部变量存在于栈中年 

4、构造函数

与类同名,没有返回值和返回类型

注意事项:一个类中如果没定义构造函数,该类会自动生成空参数的构造函数;如果定义了构造函数,默认构造函数就没有了 。

构造函数与一般函数的区别

构造函数在创建对象时就被调用,用于初始化,而且初始化动作只有一次

一般函数创建对象后调用时才执行,可以被调用多次。 

 5、面向对象特征(封装、继承、多态、抽象)

1):封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。

作用:代码复用性高,方便使用

 this:代表对象 

注意:this调用构造函数,必须定义在构造函数的第一行。因为构造函数适用于初始化的,所以初始化动作一定要执行。

static:关键字,是一个修饰符,用于修饰成员。

静态修饰的成员可以直接被类名所调用。静态随着类的加载而加载,优先于对象存在。

静态方法只能访问静态成员,不可以访问非静态成员。 

静态代码块:可以完成类的初始化,静态代码块随着类的加载而执行,而且只执行一次,和主函数同类时优先主函数执行。 

注意:静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块,构造函数,构造代码块 

 

生成java帮助文档:javadoc -d 文件夹名 -author -version*.java 

 2):继承:提高了代码的复用性,让类与类之间产生了关系,提供了另一个特征多态的前提

子父类出现之后,类中的成员都有了那些特点

1:成员变量

当两个出现相同属性时,子类类型的对象,该调用该属性,值是子类的属性;

如果想调用父类中的属性值,需要使用关键字super

2:成员函数

当子父类中出现了相同方法时,建立子类对象会运行子类中的方法(重写)

3:构造函数

发现子类构造函数运行时,先运行了父类的构造函数(因为子类的所有构造函数中的第一行有一个隐藏的语句super()) 

如果父类中没有空参数的构造函数,那么子类的构造函数内必须通过super语句指定要访问的父类中的构造函数

如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。

 细节:子类覆盖父类时,必须要保证,子类方法的权限要大于等于父类方法权限。覆盖时,要么都是静态,要不都是动态

final:特点

这个关键字是一个修饰符,可以修饰类,方法,变量。

被final修饰的类或者方法或者变量不能被继承 

 

3):抽象类

抽象方法只能定义在抽象类中,抽象方法和抽象类必须由abstract关键字修饰

抽象方法只能定义方法声明,并不定义方法实现。

抽象类不可以被创建对象,只有通过子类继承抽象类并覆盖抽象类中的全部抽象方法后,该子类才可以实例化,否则子类也是一个抽象类 

 

抽象类中有构造函数,不能和final、private、static共存 

四、设计模式

设计模式一共有23种设计模式

1、单例模式:解决的问题是保证一个类在内存中的对象唯一性。runtime()就是例子 

一般三种创建方式: 懒汉式、饿汉式、双重锁方式

 

posted on 2018-08-03 16:09  ttke  阅读(186)  评论(0编辑  收藏  举报