zoukankan      html  css  js  c++  java
  • java基础随记 持续完善中

    Java基础

    JDK、JRE、JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些

    JDK(Java Development Kit)

      JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。

      JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。

      JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

    Java Runtime Environment(JRE)

      是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

      JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。

      与大家熟知的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。

    JVM(java virtual machine)

      就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。

      也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

      只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。

      JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

    三者实现探究

    JDK = JRE + Java开发工具(javac.exe编译,java.exe执行,javadoc.exe说明文档)

    JRE = JVM + Java核心类库

    为什么要配置path环境变量?如何配置?

    希望Java开发工具(javac.exe、java.exe)在任何文件路径下都可以执行成功

    JAVA_HOME = bin的上一级目录

    path = %JAVA_HOME%in

    常用命令行操作有哪些?

    windows常用命令行命令

    应用程序 = 算法(正确与否) + 数据结构(存储问题,效率)

    Java语言的特点

    1. 面向对象性:

      两个要素:类、对象

      三个特征:封装、继承、多态

    2. 健壮性:

      去除了C语言中的指针

      自动垃圾回收机制 --> 仍然会出现内存溢出、内存泄漏问题

    3. 跨平台性:

      write once,run anywhere : 一次编译,到处运行(JVM)

    标识符

    1. 标识符:凡是自己可以定义名字的地方都叫标识符,比如:类名、变量名、方法名、接口名、包名...

    2. 标识符的命名规则:--> 如果不遵守编译不通过

      • 由26个英文字母大小写,0-9,_或$组成
      • 数字不可以开头
      • 不可以使用关键字和保留字,但可以包含关键字和保留字
      • Java严格区分大小写,长度无限制
      • 标识符不能包含空格
    3. Java中名称命名规范:--> 如果不遵守编译可以通过

      • 包名:多单词组成时所有字母小写
      • 类名、接口名:多单词组成时,所有单词首字母大写
      • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写
      • 常量名:所有字母大写,多单词时单词用下划线连接
    4. 注意1:起名字时,为提高阅读性,要尽量有意义,“见名知意”

      注意2:Java采用unitcode字符集,因此标识符也可以使用汉字声明,但不建议使用

    基本数据类型之间的运算规则

    前提:不包含boolean类型

    1. 自动类型提升

      结论:当容量小的数据类型变量于容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

      说明:这里的容量大小指的是,表示数的范围的大和小,比如:float容量要大于long的容量

      byte 、char、short --> int --> long --> float --> double

      特别的:当byte、char、short三种类型做变量运算时,结果为int型

    2. 强制类型转换:自动类型提升的逆运算

      • 需要使用转换符:()

      • 注意点:强制类型转换,可能导致精度损失。

      整形常量默认为int ,浮点型常量默认为double型

    String类型变量的使用

    1. String属于引用数据类型,翻译为:字符串
    2. 声明String类型变量时,使用一对“”;
    3. String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
    4. 运算的结果仍为String类型
  • 相关阅读:
    Linux Kernel Makefiles Kbuild en
    Android 源码结构分析
    Linux Charger IC 驱动移植总结
    Battery Charging Specification Revision 1.2 中文版本
    OpenCV 3.4.2 Windows系统下的环境搭建(附带opencv_contrib-3.4.2)
    OpenCV 经纬法将鱼眼图像展开
    shell 循环结构
    OpenCV之Mat类使用总结
    shell 条件结构之 if 语句使用总结
    OpenCV Error: Unspecified Error(The Function is not implemented)
  • 原文地址:https://www.cnblogs.com/bky-min/p/12880929.html
Copyright © 2011-2022 走看看