JAVA基础知识总结

 一、java概述

1.java包含三种技术架构:

  • javaEE是开发企业环境下的应用程序,即web程序开发;
  • javaSE是桌面应用程序开发;
  • javaME是电子消费产品和嵌入式设备,如手机应用;

2.java安装环境

  • jdk是java开发和运行环境,包括了开发工具和jre;
  • jre是java程序的运行环境,包含了所需的类库和JVM;
  • 环境变量配置包括:JAVA_HOME=%安装路径%\Java\jdk;CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;path=%JAVA_HOME%\bin

3.javac命令和java命令

  • java分为两个部分,一个是编译,一个是运行;
  • javac负责编译部分,将.java编译成.class文件;
  • java负责运行部分,启动jvm加载运行所需的类库,并对class文件进行执行;
  • 文件被执行的起点是main函数;

4.java内存

  • 寄存器:给CPU使用;
  • 本地方法区:运行时本地系统平台中的内容,分版本,在不同操作系统中不一样;
  • 方法区:保存着,类、静态变量、静态方法、常量、普通方法,线程共享的,大小不固定,jvm动态调整,垃圾回收期自动回收;
  • 栈内存:存储局部变量( 函数中定义的变量,函数上的参数,语句中的变量 ),先进后出,存取速度比堆快,线程私有,当数据运算完成,内存自动释放;
  • 堆内存:存储数组和对象,即封存多个数据的实体,new对象时,从中开辟一段空间用于存放,动态分配,先进先出,存储速度慢,是所有线程共有的,而且每个实体都有内存首地址值,都有默认默认初始化值,使用垃圾回收机制管理;

二、java语法

1.变量

  • 变量是内存中的一个存储空间,用于存储数据,该空间可重复使用;
  • 变量空间的开辟三要素包括数据类型、变量名称、变量初始值;
  • 变量的作用域是从定义变量开始,到变量所在大括号结束;
  • 变量的生存周期是从定义位置存活在内存中,到达所在的作用域后从内存中消失;

2.数据类型

  • 基本数据类型:byte、short、int、long、float、double、char、boolean
  • 引用数据类型:数据、类、接口;
  • 数据类型级别:byte\char\short->int->float->long->double;
  • 强制类型转换:将一个高级别数据赋值给低级别变量,可强制转换;

3.运算符号

  • 算数运算符:+、-、*、/、%;
  • 赋值运算符:=、+=、-=、*=、/=、%=;
  • 比较运算符:==、equals,运算后返回true/false;
  • 逻辑运算符:&、|、^、!、&&、||;
  • 位运算符:&  |  ^   <<  >>   >>>(无符号右移),操作二进制;
3.1常用运算符:
  • &是两边为true则为true,否则为false,且两边都参与运算;
  • &&是短路与,左边为false右边不参与运算;
  • |是两边为false则为false,否则为true,且两边都参与运算;
  • ||是短路或,左边为true,右边不参与运算;

4.语句

  • if用于单个数据进行比较判断;
  • switch 用于一个值与多个值进行比较判断;
  • do...while\wihle\for均用于集合或数组进行循环;
  • 返回值包括break、continue、return,break是结束当前整个循环,continue是结束本次循环,继续下次循环,return是结束所有循环,退出当前方法;

 5.函数

  • 函数定义格式如下图:  

  • 函数返回值没有时,返回值类型用关键字void表示,有返回值使用return;
  • 函数的作用:用于定义功能,用于封装代码提高复用性;
  • 主函数:保证该类独立运行,它是程序入口,被JVM调用;
  • 函数重载:在一个类中,如果两个及以上同名函数,参数的个数或者类型不同;

 6.数组

  • 用于存储同类型数据的容器;
  • 用于封装数据,对数据进行编号;
  • 表现形式:元素类型[] 变量名 = new 元素类型[元素的个数];元素类型[] 变量名 = {元素1,元素2...};元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};

三、面向对象

1.特点

  • 将复杂的事情简单化;
  • 将以前过程中的执行者变成指挥者;
  • 负荷现在人们思考的习惯;

2.对象和成员

  • 当对方法只有一次调用时,可使用匿名对象,当出现多次调用,则必须给对象命名;
  • 成员变量对应事物的属性,成员函数对应事物的行为,它们均可在类中定义;
  • 属性存储数据,为安全需私有化,对外提供公共方法;

3.访问权限

  • public:权限最大,可公共访问,被修饰的类、方法、属性,支持跨类访问、跨包访问;
  • protected:权限次之,保护访问权限,被修饰的属性、方法,只能被类本身及其子类访问;
  • default:默认访问权限,只允许在同类或同包访问,外包所有类均不可访问,接口例外;
  • private:访问权限最小,私有访问,被修饰的属性、方法,只能被该类的对象访问,不能跨包访问,子类也不能访问;
修饰符 同类 同包 子类 全局
public
protected
default
private

4.成员变量和局部变量

  • 成员变量直接定义在类中,局部变量定义在方法、参数、语句中;
  • 成员变量在本类中有效,局部变量在所属大括号中有效,括号结束,变量失去作用域;
  • 成员变量存在堆内存,随对象一起产生或消失,局部变量存在栈内存中,随所属区域的运行而存在,消失而释放;

5.成员变量和静态变量

  • 成员变量属于对象,静态变量属于类;
  • 成员变量存于堆内存,静态变量存在于方法区;
  • 成员变量的生命周期与对象同步,静态变量的生命周期与类同步;
  • 成员变量只能被对象调用,静态变量能被对象、类调用;
  • 成员变量是对象的特有数据,静态变量是对象的共享数据;

6.构造函数

  • 用于对象创建时,对对象进行初始化;
  • 函数名称和类名称相同;
  • 不需要定义返回值类型;
  • 没有具体返回值;
  • 类中没有定义构造函数,该类会自动生成一个空参数的构造函数;
  • 同一个类,可以有多个构造函数,但参数需不同,因此是以重载方式提现;
6.1构造函数和一般函数
  • 两个函数定义格式不同;
  • 构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次;
  • 一般函数,是对象创建后,需要调用才执行,可以被调用多次;
6.2构造函数和构造代码块
  • 构造函数是给对应的对象进行初始化,具有针对性;
  • 构造代码块是给所有的对象进行初始化,即所有的对象都会调用一个代码块,只要对象建立,就会调用这个代码块;
 6.3对象创建内存变化步骤
  1. 先将硬盘中类文件加载进内存;
  2. 执行main方法,在栈内存开辟main方法的空间,然后在栈区分配一个变量P;
  3. 在堆内存开辟实体空间,分配一个内存首地址,即new;
  4. 在该实体空间中进行属性的空间分配,并进行默认初始化;
  5. 对空间属性进行显示初始化;
  6. 对实体的构造代码块初始化;
  7. 调用实体对应的构造函数,进行构造函数初始化;
  8. 将首地址赋值给P,P变量引用该实体,即指向该对象;

7.对象特征

7.1抽象abstract
  • 抽象是将一类对象的共同特征,总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象的哪些属性和行为,并不关注这此行为的细节是什么;
  • 研究事物的静态特征,形成对象的属性;
  • 研究事物的动态特征,形成方法或函数;
  • 事物抽象后形成的结果,即创建的类class;
  • 类和对象之间可以相互转变,通过new的方式;

特点

  • 抽象方法所在的类要标识为抽象类,类和方法都有abstract修饰;
  • 抽象方法只定义方法声明,不定义方法实现;
  • 抽象类不可以被创建对象,即不能实例化;
  • 只能通过子类继承父类,并覆盖父类中所有抽象方法后,子类才能实例化,否则子类还是抽象类;
  • 抽象类中有构造函数,可以定义非抽象方法,也可以不定义抽象方法;
  • abstract不能和final、private、static共存;
7.2封装
  • 封装是隐藏对象的属性和实现细节,仅仅对外提供公共访问方法;
  • 封装的好处是将变化隔离,便于使用,提高重用性,安全性;
  • 封装的原则是将不需要对外提供的内容隐藏起来,把属性隐藏,提供公共方法对外访问;
7.3继承extends
  • 继承是从已有类中继承信息创建新类;
  • 子类可以继承父类的属性和方法;
  • 提高了代码的复用性;
  • java只支持单继承,且保留了多重继承;
  • 单继承中一个类只有一个父类, 多继承中一个类可以有多个父类;
  • 查阅父类中的内容,可以知道该体系的基本用法,创建最底层子类的对象,可以使用父类和子类的所有功能
7.4多态
  • 多态是允许相同或不同子类型的对象对同一消息作出不同响应
  • 重载:同一个动作作用在同一个对象上拥有不同的解释 overload
  • 狭义的多态指重写,重写是指同一个动作作用在不同的对象上拥有不同的解释 override
  • 多态的好处:提高程序扩展性;
  • 多态的提现:父类引用或者接口的引用指向自己的子类对象;
  • 多态的弊端:当父类引用指向子类对象时,只能访问父类中具备的方法,不能访问子类中特有的方法;
  • 多态的前提:必须要有关系,继承或实现,会有覆盖操作;

多态在子父类中成员上的提现:

  • 成员变量,编译运行看=左边;
  • 成员函数,编译看=左边,运行看=右边;
  • 静态函数,编译运行看=左边;

8.关键字

8.1this
  • this代表对象,是所在函数所属对象的引用;
  • 哪个对象调用了this所在的函数,this就代表哪个对象,就是哪个对象的引用;
  • 还可以用于构造函数的调用;this.调用成员属性和方法;this()调用本类中对应参数的构造函数;
  • 用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行,否则编译失败;

8.2static
  • static是一个修饰符,用于修饰成员变量或成员函数;
  • 想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰;
  • 被静态修饰的成员,可以直接被类名所调用,类名.静态方式;
  • 静态随着类的加载而加载,而且优先于对象存在;
  • 静态方法只能访问静态成员,不可以访问非
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值