Java基础知识

先写到一起,后续记得分篇!

Java 基础知识点

访问修饰符

  • public: public意味着可以从任何地方访问该类、属性和方法。一个.java文件中只能有一个public类。
  • protected : protected 可以修饰内部类、方法、属性。protected 修饰的方法和属性可以被同包中的类、子类访问;可以被不同包的子类访问,不可以被不同包的类访问。
  • default: 当不写具体的修饰符时,就是default。在本包下的类、子类都是可以访问的;在不用包下的类、子类都是不可以访问的
  • private: private 修饰类时,不可以修饰外部类,可以修饰内部类. 修饰的方法在本包中的其他类、子类是无法访问的。在不同包中更不能访问了。

Java的三大特性

封装

继承

每个类都继承自超类Object。所有对象都具有以下方法:

  • clone(),用来克隆和复制任何对象
  • equals(),用来确定两个对象是否相等
  • hashCode(),为对象提供唯一的哈希码
  • toString(),用来获取对象当前状态的描述

多态

Java内存管理

Java的内存区要分为3个区:方法区(又觉静态存储区)堆区栈区

常量池

Java的栈与堆

java使用两个不同的内存区域:栈和堆。当程序执行时,项目会被添加到堆栈中或从堆栈中删除。而堆中的对象会一直保留到应用程序完成为止。


  1. 栈用于存储基本类型对象引用
    Java中的代码是在函数体中执行的,每个函数主体都会被放在栈内存中,比如main函数,main()就会被压入到栈内存中。如果main()里面调用了其他函数,例如add(), 就会继续压入到栈内存中,当add()函数执行完毕后,就会出栈被销毁。然后是main()出栈被销毁。

  2. 堆用于存储对象本身。例如我们使用关键字new创建一个对象时,这个对象就被放在堆上。
    堆是由**垃圾收集器(GC)**自动管理的,当对象不再被引用时,GC会自动回收其占用的内存。
  1. 共享性
    堆是可以共享的,意味着所有的线程共享相同的堆空间。因此在多线程中访问和修改对象时要小心维护线程安全。
    栈是不可以共享的,每个线程有自己独立的栈空间。用于存储该线程的方法调用栈、局部变量等。

垃圾收集器

设计模式

函数式编程

lambda表达式