Loading

01-概述

1. 常用DOS命令

  • dir : 列出当前目录下的文件以及文件夹
  • md : 创建目录
  • rd : 删除目录
  • cd : 进入指定目录
  • cd.. : 退回到上一级目录
  • cd: 退回到根目录
  • del : 删除文件 // 若后面跟着文件目录,则会删除该目录下的文件
  • exit : 退出 dos 命令行
  • echo javase>1.doc:将javase写出到1.doc

2. 计算机编程语言介绍

3. Java的3个版本

  • JavaSE (Java Standad Edition):标准版,定位在个人计算机上的应用
  • JavaEE (Java Enterprise Edition):企业版,定位在服务器端的应用
  • JavaME (Java Micro Edition):微型版,定位在消费性电子产品的应用

4. Java特性和优势

  • 跨平台/可移植性
    • 这是 Java 的核心优势。Java 在设计时就很注重移植和跨平台性;其源代码被编译成一种结构中立的中间文件格式。只要有 Java 运行系统的机器都能执行这种中间代码。Java 源程序被编译成一种与机器无关的字节码格式,在 Java 虚拟机上运行。
    • 比如:Java 的 int 永远都是 32 位。不像 C++ 可能是 16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
  • 安全性
    • 强类型语言,其类型检查比 C/C++ 要严格 // int i = 6.1; [c: √] [java: ×]。
    • 提供了垃圾回收机制,有效避免了内存泄漏问题。
    • 禁止非法内存访问,在没有授权的情况下是不能访问内存的。所有这些措施,使得开发人员不再担心内存的崩溃。
  • 面向对象
    • 支持继承、重载、多态等面向对象的特性。
    • C 是纯面向过程的语言;C++ 语言是面向过程和面向对象混合的语言。
  • 简单性
    • Java 就是 C++ 语法的简化版,指的就是将 C++ 的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。
  • 高性能
    • Java 语言本身发展中通过虚拟机的优化不断提升运行效率。
    • 比如,通过 JIT(JUST IN TIME) 即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用
  • 分布式
    • Java 是为 Internet 的分布式环境设计的,因为它能够处理 TCP/IP 协议。
  • 多线程
    • Java 多线程的简单性是 Java 成为主流服务器端开发语言的主要原因之一。
  • 健壮性
    • 吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)
    • 如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理

5. Java应用程序的运行机制

  • 计算机高级语言的类型主要有 [编译型][解释型] 两种
  • Java 语言是两种类型的结合
    • Java 首先利用文本编辑器编写 Java 源程序,源文件的后缀名为 .java
    • 再利用编译器(javac) 将源程序编译{字节码文件},字节码文件的后缀名为 .class
    • 最后利用虚拟机JVM(解释器,java) 解释执行
      • Java 的源代码和字节码是与机器无关的,但 JVM 是与机器有关的。
      • 装有不同 OS 的机器上,需要有专门为该 OS 开发的 JVM,JVM 是与机器有关的。
  • Java 核心机制 —— 垃圾回收
    • 不再使用的内存空间应回收(垃圾回收)
      • 在 C/C++ 等语言中,由程序员负责回收无用内存。
      • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况,并在 JVM 空闲时,检查并释放那些可被释放的存储空间。
    • 垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。
    • Java 程序还会出现内存泄漏和内存溢出问题吗?Yes

6. JVM、JRE和JDK

JVM (Java Virtual Machine)

  • JVM 就是一个虚拟的,用于执行字节码的"虚拟计算机"。也就定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
  • JVM 负责将 Java 字节码解释运行,边解释边运行 // 速度就会受到一定的影响
  • Java 虚拟机是实现“跨平台”的核心机制
    • 不同的操作系统有不同的虚拟机
    • Java 虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,随处运行"。


JRE (Java Runtime Environment):含 JVM、库函数、运行Java应用程序所必须的文件

JDK (Java Development Kit):包含 JRE,以及 编译器(javac.exe) 和 调试器等用于程序开发的文件

如果只是要运行 Java 程序,只需要 JRE 就可以。JRE 通常非常小,其中包含了 JVM。如果要开发 Java 程序,就需要安装 JDK。

7. 环境变量Path的配置

7.1 引入 Path

  • 背景
    • 在 DOS 的任何目录下我们都可以运行 OS 自带的命令
    • 而想要在 DOS 下运行用户自己的程序,则必须进入到该程序所在目录下才能运行。
  • Path
    • Path 环境变量是在 OS 中一个具有特定名字的对象;如果我们想要在 DOS 的任何目录下都可以运行自己创建的程序,则需要设置 OS 自带的环境变量 Path。
    • 它告诉 OS,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应到哪些目录下寻找,以最先找到的为准
  • Java & Path
    • 编译一个 [Java 源文件],需要使用 javac.exe 程序;而运行一个[字节码文件],则需要使用 java.exe 程序
    • 应将"bin文件夹"设置为Path环境变量的属性值

7.2 设置 Path 的步骤

  • 右键计算机 → 属性 → 高级系统设置
  • 新建 JAVA_HOME 变量(用于说明JDK的安装目录)
  • 修改系统环境变量Path,在最前面追加 %JAVA_HOME%\bin

7.3 classpath 配置问题

  • ".class" 文件的加载路径(不必)
  • JRE 会自动搜索当前路径下的类文件及相关 jar 包
  • java.lang 包是 Java 语言的核心,不用 import

8. 第1个Java程序

8.1 常见错误

  • 常见问题-1:提示"javac不是内部或外部命令……"
    • 出错原因:Path 变量配置错误导致没有找到 javac 命令
    • 解决方案:参考<环境变量 Path 的配置>
  • 常见问题-2:文件夹中可以看到 Hello.java 文件,在编译时出现"javac 找不到文件……"
    • 出错原因:可能是操作系统显示设置的问题,隐藏了文件的扩展名
    • 解决方案:去掉"隐藏已知文件夹类型的扩展名"复选框中的对勾,看到文件的实际名称为 Hello.java.txt,将后缀后 .txt 去掉
  • 常见问题-3:NoSuchMethodError:main
    • 出错原因:找不到 main 方法,应该是 main 方法书写有误
    • 解决方案:检查 public static void main(String [] args){} 是否有误

8.2 总结

  • Java 对大小写敏感,如果出现了大小写拼写错误,程序无法运行
    • 如果你在 Window 环境下,“javac hello.java”是会编译成功的,但“java hello”一定会报错
    • 编译时找源文件属于 Window 层面的,而 Window 不区分大小写
    • 解释运行字节码文件(通过找类名),是属于Java 层面的,而 Java 严格区分大小写
  • 不包含 main 方法的类,无法直接运行
  • public class Hello
    • 关键字public 被称作访问修饰符(access modifier),用于控制程序的其它部分对这段代码的访问级别
    • 关键字class 的意思是类;Java 是面向对象的语言,所有代码必须位于类里面
    • 一个源文件可以包含多个类 class,但源文件名 必须 和 其中定义的 {public 的类名} 相同
  • 一个源文件中至多只能声明一个public的类(源文件名只能有一个),其它类的个数不限。正确编译后的源文件,会得到相应的字节码文件,编译器为每个类生成独立的字节码文件,将字节码文件自动命名为类的名字且以“.class”为扩展名
  • 在 Java 中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 由于编译器忽略空格,所以花括号风格不受限制 // 在写括号、引号时,一定是成对编写,然后再往里插入内容
  • main 方法是 Java 应用程序的入口方法,它有固定的书写格式:public static void main(String[] args)
  • Java 中每个语句必须以分号结束,回车不是语句的结束标志,所以一个语句可以跨多行。

9. API

  • API 全称:Application Programming Interface,是程序语言提供的类库
  • API文档:针对于提供的类库如何使用,给的一个说明书 // 文档注释
posted @ 2020-03-21 18:04  tree6x7  阅读(203)  评论(0编辑  收藏  举报