java开发环境理解

java基础

  1. java的特性
    1.简单性(java底层是使用c++编写的,java指针已经封装了,而且只支持单继承)
    2.面向对象
    3.健壮性(GC机制,自动垃圾回收,不用c++需要手动回收内存)
    4.多线程(支持多个线程同时并发执行,也提供了多线程环境下的安全机制)
    5.可移植性(一次编译,到处运行,这归功与JVM,JVM屏蔽了操作系统之间的差异,在不同版本下的操作系统,都可以运行)
    在这里插入图片描述

  2. JDK,JRE,JVM三者之间的关系
    (1)JDK: java开发工具箱
    (2)JRE:java运行环境
    (3)JVM:java虚拟机
    JDK包括JRE,JRE包括JVM
    JDK和JRE有单独的安装包,JVM没有,不开发不需要JDK,只需要JRE就行了

  3. java的加载与执行的理解
    .java文件经过编译器(javac)编译成.class文件,在虚拟机上运行
    在windows上编译成字节码文件,也可以在linux执行(一次编译,到处运行)
    注意:字节码文件不是二进制文件,如果是二进制文件,就不需要JVM了,因为操作系统可以直接执行二进制文件,不同的系统上的JVM把字节码文件翻译成不同系统能够识别的二进制文件,然后给操作系统执行,再和硬件平台进行交互
    在这里插入图片描述

  4. java程序从开发到最终运行经历了什么?
    编译期:(可以在windows上)
    第一步:在硬盘中新建.java文件
    第二步:使用编译器打开.java文件
    第三步:编写符合语法规则的.java文件
    第四步:保存之后,使用javac编译器(安装JDK之后自带)编译.java文件
    第五步:如果符合java语法规则,编译会通过,会生成字节码文件。如果不符合语法规则,编译器不会通过.不会生成字节码文件,并且一个java源文件是可以生成多个.class文件的
    运行期(JRE在起作用):(可以在不同的操作系统上运行。windows或者linux都行,不用管编译器是什么系统上运行的)
    第六步:如果是在Linux上运行,需要将Windows上的.class文件拷过去,不需要拷贝源代码,真正运行的文件是.class文件
    第七步:使用JDK自带的一个命令/工具:java(负责运行的命令/工具),执行字节码文件
    第八步:下面的就全部交给java虚拟机了,然后JVM对字节码进行解释(解释器负责将字节码文件进行解释为二进制文件)
    第九步:JVM会将生成的二进制文件交给操作系统,操作系统会执行二进制码,然后和硬件进行交互
    注意:javac,负责编译.java文件 java负责运行.class文件

  5. 环境变量
    环境变量包括环境变量和系统变量
    系统变量:范围比较大,系统变量会让计算机所有用户都起作用
    用户变量:范围比较小,这个变量只会作用于当前用户
    怎么修改环境变量:win7用半角的分号(;)分割,win10直接新增
    配置jdk的环境变量:找到jdk的bin目录,然后加到path路径(因为可执行文件javac.exe和java.exe都在bin目录下)
    dos命令默认先从用户变量找,然后去环境变量(建议配置到环境变量)
    还有一个方法就是把javac.exe和java.exe文件放到windows/system32目录下
    DOS命令
    查看编译器的版本 javac -version
    查看虚拟机的版本 java -version

  6. path环境变量的作用
    就是给windows操作系统指路的,告诉windows操作系统去哪儿找这个命令,path环境变量中有很多很多路径,路径和路径之间用半角;分割,path=a;b;c;d…,path是环境变量的名字,a;b;c;d…,是环境变量path的值

  7. “java HelloWorld"的执行原理和过程,java HelloWorld敲完回车,都发生了什么?
    第一步:先会启动JVM(java虚拟机)
    第二步:JVM启动之后,JVM会去启动"类加载器 classloader”
    类加载器的作用:记载类的,本质上加载器负责去找"类"对应的"字节码"文件
    假设是"java HelloWorld"那么类加载器会去硬盘上搜索:HelloWorld.class文件
    第三步:如果类加载器找不到对应的字节码文件,会报错(找不到该类)
    类加载器如果找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM中,JVM启动"解释器"将字节码文件解释为"10101010001…"这种的二进制码,操作系统执行二进制码和硬件交互
    默认情况下,类加载器去硬盘找字节码文件的时候,默认从哪儿找???
    默认情况下类加载器(classloader)会从当前路径下找.

  8. classpath是一个环境变量,是给谁指路的?
    是给类加载器指路的.
    classpath环境变量不属于windows操作系统,是隶属于java的,是java特有的
    classpath=A;B;C;…
    配置classpath:大小写无所谓,但是必须是classpath,
    配置了classpath之后,类加载器不会从当路径下去找了,只会从配置的classpath路径下去找
    所以配还不如不配

  9. java13新特性
    在dos命令窗口,java+路径.java 可以直接运行,不用生成.class文件

  10. 注释
    // 单行注释
    /*
    多行注释
    /
    /
    *
    *javadoc注释,这里的命令可以被javadoc.exe命令解析提取并且生成到帮助文档中
    */

  11. 关于java程序
    public 的类可以没有 但必须如果有的话,public 修饰的类名必须和源文件名相同,且只能有一个public修饰的类。
    一个java源文件中可以定义多个class类
    public的类不是必须的,可以没有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值