毛头小子初学Java

毛头小子初学Java

争取每日一更。初学者,所以笔记记得有不合理之处还望各位大佬看文章后给出宝贵的建议,大宝在此谢谢各位!

1.1Java 语言的历史与特点

What is Java?

Java首先是一种编程语言

  1. 它是一种面向对象的编程语言(oop)
    
  2. 它的语法与c和c++语言极为相似
    
  3. Java所用的语法十分简单
    

Java的特点

  1. 简单易学(呵。。。呵呵。。呵呵呵)
    
  2. 面向对象(跨平台)
    
  3. 平台无关性
    
  4. 安全稳定
    
  5. 支持多线程
    
  6. 提供了丰富的类库
    
  7. 易头秃(开个玩笑)
    

Java提供类以满足网络化、多线程、面向对象系统的需要

  1. 语言包(package)
    
  2. 实用程序包
    
  3. I/o包
    
  4. 网络包
    
  5. 图形用户界面包(windows用户界面包)
    
  6. More。。。。
    

Java与c++的对比(java 是c+±-·

1.无直接指针操作
2.自动内存管理
3.数据类型长度固定
4.不用头文件
5.不包含结构和联合
6.不支持宏
7.不用多重继承
8.无类外全局变量
9.无 goto(没有绝望)

Java的三种核心机制

1.Java虚拟机(Java virtual machine)
2.代码安全性检测(code security)
3.垃圾收集机制(garbage collection)(内存能够自动管理)

Java程序的编译与运行

毛头小子初学Java_第1张图片

源程序:什么什么。Java(文本文件)

源程序经过编译称为javac、C语言文本文件叫cc

经过Javac编译以后生成的目标文件(结果文件)叫class文件(类文件)

类文件里边有一些字节码(目标代码)(bytecode)

字节码并不是实际机器的最终执行码,他自己定义一套规则(就是这里边的一系列指令与这个领域平台无关,被称为Java的虚拟机指令。

目标代码(字节码)(bytecode)运行程序要使用Java的命令,需要Java命令调用虚拟机,(虚拟机:在系统(Windows,Linux)的具体的基础之上运行代码的中介)运行代码,最终转化成系统(Windows,Linux)上的代码。

C/C++直接编译成具体平台CPU的指令而Java是先变成与平台无关的指令然后用具体的虚拟机去执行。

虚拟机就相当于系统再建立一套程序

Java虚拟机(Java virtual machine)

定义:在一台计算机上由软件或者硬件模拟的的计算机。

Java虚拟机(JVM)读取并处理经编译过的字节码class文件

Java虚拟机规范定义了:

  1. 指令集
    
  2. 寄存器集
    
  3. 类文件结构
    
  4. 堆栈
    
  5. 垃圾收集堆
    
  6. 内存区域
    

Java运行环境(JRE):

JRE(the Java runtime environment):由虚拟机装载程序并调用相应的指令来具体执行。

 JRE=JVM(虚拟机)+API(lib/编程的库)

JRE运行程序时的三项主要功能:

  1. 加载代码:由class loader完成:()
    
  2. 效验代码:由bytecode(目标代码、字节码)verifier‘完成。(保证代码安全)
    
  3. 执行代码:由runtime interpreter完成、(解释与执行)
    

理解

1. 为何Java是跨平台的?

答:由于class文件是与平台无关的,只需把class文件,放到不同的系统就能有不同的虚拟机来执行,所以Java程序是可以跨平台的

2. 为何Java是安全的?

答:Java里边有代码的自动校验过程(bytecode verifier)

Java自动垃圾回收技术

  1. 垃圾回收(garbage collection、gc)
  2. 在C/C++等语言中由程序员负责回收无用内存
  3. Java语言自动垃圾回收
    1.  系统级线程跟踪存储空间的分配情况
      
    2.  在JVM的空闲时,检查并释放那些可被释放的储存器空间
      
    3.  由系统运行,程序员无须也无法精确控制和干预该回收过程
      

JDK(Java开发工具包)

JDK=JRE(Java运行环境)+tools(工具)

JRE(Java运行环境)=JVM(虚拟机)+API(lib、编程的库)
图片来源为 MOOC课程截图,大佬们不会怪罪我吧,我毕竟没有图片版权

你可能感兴趣的:(Java,java,Java,Java入门)