复习-JavaGuide-基础

javaGuide基础1

转载自https://github.com/Snailclimb/JavaGuide (添加小部分笔记)感谢作者!

基础概念及常识 #

  • Java语言特点

    • 面向对象(封装、继承、多态)
    • 平台无关性(Java虚拟机)
    • 等等
  • JVM并非只有一种,只要满足JVM规范,可以开发自己专属JVM

  • JDK与JRE

    • JDK,JavaDevelopmentKit,包含JRE,还有编译器(javac)和工具(如javadoc、jdb)。能够创建和编译程序
    • JRE,Java运行时环境,包括Java虚拟机、Java类库,及Java命令等。但是不能创建新程序
  • 字节码,采用字节码的好处

    • Java中,JVM可以理解的代码称为字节码(.class文件),不面向任何处理器,只面向虚拟机
    • Java程序从源代码到运行的过程 ly-20241212141922068
      • java代码必须先编译为字节码,之后呢,.class–>机器码,这里JVM类加载器先加载字节码文件,然后通过解释器进行解释执行(也就是字节码需要由Java解释器来解释执行)
      • Java解释器是JVM的一部分
  • 编译与解释并存

    • 编译型:通过编译器将源代码一次性翻译成可被该平台执行的机器码,执行快、开发效率低
    • 解释型:通过解释器一句一句的将代码解释成机器代码后执行,执行慢,开发效率高
    • 如图 ly-20241212141922280
  • 为什么说 Java 语言“编译与解释并存”?

    这是因为 Java 语言既具有编译型语言的特征,也具有解释型语言的特征。因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行

  • Java与C++区别

    • 没学过C++,Java不提供指针直接访问内存
    • Java为单继承;但是Java支持继承多接口
    • Java有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存
  • 注释分为 单行注释、多行注释、文档注释 ly-20241212141922440

  • 标识符与关键字 标识符即名字,关键字则是被赋予特殊含义的标识符

  • 自增自减运算符 当 b = ++a 时,先自增(自己增加 1),再赋值(赋值给 b);当 b = a++ 时,先赋值(赋值给 b),再自增(自己增加 1)

  • continue/break/return

    • continue :指跳出当前的这一次循环,继续下一次循环。
    • break :指跳出整个循环体,继续执行循环下面的语句。
    • return 用于跳出所在方法,结束该方法的运行。
  • 变量

    • 成员变量和局部变量
      • 成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰
      • 从变量在内存中的存储方式来看,如果成员变量是使用 static 修饰的,那么这个成员变量是属于类的,如果没有使用 static 修饰,这个成员变量是属于实例的。而对象存在于堆内存,局部变量则存在于栈内存。
      • 从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而自动生成,随着方法的调用结束而消亡(即方法栈弹出后消亡)。
      • final必须显示赋初始值,其他都自动以类型默认值赋值
    • 静态变量:被类所有实例共享
  • 字符型常量与字符串常量区别

    ...