首页 > 其他 > 详细

01-概述

时间:2020-03-21 18:39:57      阅读:63      评论:0      收藏:0      [点我收藏+]

1. Java基础知识图解

技术分享图片

2. 常用DOS命令

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

3. 计算机编程语言介绍

技术分享图片

4. Java的3个版本

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

技术分享图片

5. 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++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)
    • 如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理

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

  • 计算机高级语言的类型主要有 [编译型][解释型] 两种
  • Java 语言是两种类型的结合
    • Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为 .java
    • 再利用编译器(javac) 将源程序编译{字节码文件},字节码文件的后缀名为 .class
    • 最后利用虚拟机JVM(解释器,java) 解释执行
      • Java的源代码和字节码是与机器无关的,但JVM是与机器有关的
      • 装有不同OS的机器上,需要有专门为该OS开发的JVM,JVM是与机器有关的

7. Java 核心机制 —— 垃圾回收

  • 不再使用的内存空间应回收(垃圾回收)
    • 在C/C++等语言中,由程序员负责回收无用内存
    • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况,并在JVM空闲时,检查并释放那些可被释放的存储空间
  • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预
  • Java程序还会出现内存泄漏和内存溢出问题吗?Yes

8. JVM、JRE和JDK

a. JVM (Java Virtual Machine)

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

技术分享图片
技术分享图片

b. JRE (Java Runtime Environment)

包含 JVM、库函数、运行Java应用程序所必须的文件

c. JDK (Java Development Kit)

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

d. 三者关系

技术分享图片

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

9. 环境变量Path的配置

a. 引入 Path

  • 背景
    • 在DOS的任何目录下我们都可以运行OS自带的命令
    • 而想要在DOS下运行用户自己的程序,则必须进入到该程序所在目录下才能运行
  • Path
    • Path环境变量是在OS中一个具有特定名字的对象;如果我们想要在DOS的任何目录下都可以运行自己创建的程序,则需要设置OS自带的环境变量Path
    • 它告诉OS,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应到哪些目录下寻找,以最先找到的为准
  • Java & Path
    技术分享图片

    • 编译一个 [Java源文件],需要使用javac.exe程序;而运行一个[字节码文件],则需要使用java.exe程序
    • 应将"bin文件夹"设置为Path环境变量的属性值

b. 设置Path的步骤

  • 右键计算机 → 属性 → 高级系统设置
    技术分享图片

  • 新建 JAVA_HOME 变量(用于说明JDK的安装目录)
    技术分享图片

  • 修改系统环境变量Path,在最前面追加 %JAVA_HOME%\bin
    技术分享图片

c. classpath配置问题

  • ".class"文件的加载路径(不必)
  • JRE会自动搜索当前路径下的类文件及相关jar文件

10. 第1个Java程序

技术分享图片

a. 常见错误

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

b. 总结

  • 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中每个语句必须以分号结束,回车不是语句的结束标志,所以一个语句可以跨多行

11. API

  • API 全称:Application Programming Interface,是程序语言提供的类库
  • API文档:针对于提供的类库如何使用,给的一个说明书 // 文档注释

01-概述

原文:https://www.cnblogs.com/liujiaqi1101/p/12540623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!