java基基

1. java数据类型

  1. 基本数据类型(Primitive data type)
    1. 整型(四种)

      • 字节大小分别为1字节、2字节、4字节、8字节
      • 有四种表示形式:十进制、8进制(0开头)、2进制(0b开头)、16进制(0x开头)
      • 默认为int,如果要表示long型,需要在后面加上l或者L
    2. 浮点型(两种)

      • 字节大小分别为4字节、8字节
      • 浮点型默认为double型,双精度,表示为float型需要加上f或者F后缀
      • 有两种表示形式,十进制、科学计数法,这两种类型还是不适用于不产生精确计算,因为像0.1这样的小数无法精确表示。0.1f!=0.1。如果要精确计算,使用java math下的BigDecimal或者BigInteger。
    3. 字符型char

      • char在内存中占2字节,用单引号'A'表示字符常量
      • 可用于转义
      • 可用十六进制表示,eg:'\u0061'
    4. boolean型

      • 两种值:true、false
      • 在内存中使用1位,bit。不可以用1或者0来替代

类型
类型转换

  1. 引用数据类型(reference data type)
    引用数据类型大小统一为4个字节,保存的是引用对象的地址。

2. java数组

java数组

3. java面向对象编程

  1. 名词

    1. java 面向对象特性:封装、继承、多态,封装了数据和功能。面向过程特性:封装,只封装了功能。
    2. 类:class,对具体事物的抽象,是同一类对象的模板;对象:Object,具体的事物。
    3. 类规则:一个.java文件中有且只有一个public class,可以有多个class,类名需要和文件名保持一致,类中有属性(不初始化就会使用默认值)、方法、构造器,可以用UML图表示类。
    4. 面向对象的内存分析:java虚拟机的内存可以分为三个区域:栈(Stack)、堆(heap)、方法区(method area)
  2. Stack

    1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)
    2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)
    3. 栈属于线程私有,不能实现线程间的共享!
    4. 栈的存储特性是“先进后出,后进先出”
    5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间!
  3. Heap

    1. 堆用于存储创建好的对象和数组(数组也是对象)
    2. JVM只有一个堆,被所有线程共享
    3. 堆是一个不连续的内存空间,分配灵活,速度慢!
  4. method area

    1. JVM只有一个方法区,被所有线程共享!
    2. 方法区实际也是堆,只是用于存储类、常量相关的信息!
    3. 用来存放程序中永远不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)
  5. 构造器(constructor)

  6. 垃圾回收机制

    原理:new创建对象,对象置为null释放对象。
    过程:寻找无用对象,释放无用对象。
    方法:
    引用计数法:堆(Heap)中的每个对象有一个引用计数器,引用依次加1,引用值为null,减一,当为0时即为无用对象。缺点:循环引用的无用对象无法识别 
    引用可达法:
    分代垃圾回收机制  

  7. 内存泄漏

    创建大量无用对象
    静态集合类的使用:List、HashMap、vector
    各种连接对象未关闭
    监听器的使用

  8. 对象创建的实质过程

    分配空间,将成员变量全部赋值为0或空
    属性值的显示初始化
    执行构造函数
    返回对象的地址给相关变量
    这就是可以使用this的原因,在执行构造函数前已经分配好了空间,this可以指代当前对象,也因此this不能用于静态。

  9. static--静态初始化块

  10. 传值:值传递、引用传递,具体可以看相关

  11. 包:管理类(同名类), com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。

  12. import语句,当导入同名类,需要在前面加上包名和类名。如果选择导入.*,会降低编译速度,不会降低运行速度。静态导入:导入指定类的静态属性

4. 面向对象的特性

面向对象的特性

5. 面向接口编程

面向接口编程

6. java异常

java异常

posted @ 2021-08-27 23:23  不知道说什么才好  阅读(112)  评论(0编辑  收藏  举报