关于JAVA的一些基础知识

  1. 关于Java数组
    数组可以分为动态数组,和静态数组。
    数组的变量只是一个引用变量,数组的对象保存在堆内存中的连续内存空间,数组引用保存在栈内存中,对数组的初始化只是在内存中创建一个数组对象。对于数组变量来说,不需要进行所谓的初始化
    引用变量实际上是一个指针,只要程序通过引用变量来访问属性或者调用方法,引用变量就会由他所引用的对象代替
    数组中的多维数组,实际上是一维数组

  2. Java变量
    Java中的变量大体分为成员变量和局部变量
    局部变量包括:1,形参:方法签名中定义的局部变量,2,方法中的局部变量 ,他随方法的消失而消失。 3,代码块中的局部变量。
    局部变量的作用时间很短,存储在栈内存中。
    在类体中定义的变量叫做成员变量 而成员变量有分为类成员和示例成员。static关键字把实例成员变为类成员,类成员在内存中只需要一块内存空间,实例变量则是创建一次分配一次。还有一个问题是在于static修饰的对象,在内存回收的时候叫做强引用,不管什么时候被强引用的对象都不会被内存回收

  3. 父类构造器
    只要在程序中创建Java对象,最先调用最顶层的父类的初始化操作。super显式调用父类构造器,根据传参来确定调用那个父类构造器
    this 显式的调用本类重载的构造器
    子类访问父类的类变量可以直接用父类名或者super来调用

  4. final修饰符
    final能够修饰变量:被修饰的变量被赋予初值后,不能进行更改
    final可以修饰方法,修饰的方法不能重写
    final 能够修饰类,被修饰的类不能派生子类
    而在final修饰的变量只能在三个位置指定初始值
    1,定义final实例变量时指定初始值
    2,在非静态初始化块中为final实例变量指定初始值
    3,在构造器中为final实例变量指定初始值

  5. set和map的关系
    set是一种集合元素无序,不可重复的集合,map是有多个key,value对组成的集合,但是map集合本质上是一个关联数组,map中的key具有set的特征,向map中添加数据时,使用put 方法

  6. Java的内存回收
    Java对于对象的引用分为:强引用,软引用,弱引用,虚引用。
    对象的状态转换 :创建后—可达状态——-可恢复状态——不可达状态
    强引用:创建对象,并把对象赋予给引用变量,被强引用的对于绝不会被回收
    软引用:当内存空间不够时,系统回收 softreference
    弱引用:不管内存是否足够总会被系统回收 weakreference
    虚引用:跟踪对象被垃圾回收的状态

  7. 内存管理的技巧
    1 尽量使用直接量
    2,尽量少使用static变量
    3,避免在循环中创建对象
    4,考虑使用软引用

  8. 基本数据类型
    整数类型(byte (一个字符)short(两个字符)int(四个字节)long(八个字节)
    字符类型(char (两个字节)
    浮点类型(float(四个字节) double(八个字节)
    布尔类型(Boolean(一位)
    其中一个字节占八位 byte 的表数范围:(-2)七次方–(2)七次方-1 其他同理

  9. Java的运算符
    1,赋值运算符
    += +=y 相当于 x=x+y
    -= x=x-y
    *= x=x*y
    。。。。
    2,逻辑运算符
    && 短路与 前面为false 后面就不在继续进行,必须两个都为true 才返回true
    & 不短路与 不会短路
    || 短路或 和短路与相似
    ! 非 如果操作数为true就返回false

  10. 循环结构
    while 先判断循环条件在直接循环体中的内容
    do while 先执行do 中的内容,在判断循环条件
    for 循环 对于多次循环,先执行外层循环,然后把内层循环执行,直到内层循环不在执行,放回外层循环。

  11. 递归方法
    一个方法体内调用他自身,被称为方法递归,方法递归包含了一种隐式循环他会重复执行某段代码
    递归一定要向已知方向递归

你可能感兴趣的:(java)