• 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%in

    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文档:针对于提供的类库如何使用,给的一个说明书 // 文档注释
  • 相关阅读:
    andorid自己定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
    MTK Camera驱动移植
    云计算VDI相关职位招聘
    Android内存泄露之开篇
    关于ping以及TTL的分析
    STL之关联容器的映射底层
    STL非变易算法
    自己主动更新 -- 版本比較(2)
    activiti自己定义流程之Spring整合activiti-modeler5.16实例(四):部署流程定义
    合并多个文本文件方法
  • 原文地址:https://www.cnblogs.com/liujiaqi1101/p/12540623.html
Copyright © 2020-2023  润新知