Java之内存基础运行

  1. java 程序:

    1. JDK:负责把 .java 文件编译成 .class 文件
    2. JRE:负责把 .class 文件翻译成 c 语言文件,交给操作系统执行
      1. JDK中包含一份完整的一份 JRE 文件
    3. 所有语言的程序最终被编译成 c 语言
    4. java 文件在内存中运行,开辟一块内存(实际是足够大的数组)
      1. 数组特性:空间必须连续
  2. 开辟的内存空间:

    主要分为五块区域
    1. 每块区域在数组中都会有边界

    2. 本地方法栈:

      1. 高级语言都有本地方法栈

      2. 作用:把自定义的方法翻译成操作系统本身的方法

      3. java 是由 java 开发团队自定义的 c 语言写的,调用操作系统时,需要把自定义的c 语言转换成操作系统的 c 语言,才能调用操作系统

    3. 程序计数器:

      1. 监控线程的开始和结束,入栈和出栈

      2. 每开启一个线程都有一个程序计数器负责监控

    4. 堆:存放对象和变量等

    5. 栈:

      1. 特点:先进后出,后进先出

      2. 方法的执行:

        1. 方法执行时会创建一个子栈

        2. 将方法从从方法去拷贝一份压入栈中执行

      3. 注意:只有栈顶的方法处于运行状态,其余方法处于停止运行状态

      4. 每次的方法调用都是独立的,里面的变量也是独立的

        1. 随着方法被调用,方法内部不断创建该变量

      5. 调用链:是由栈结构控制(先进后出)

      6. 线程:在栈中一条线的调用过程就是一个线程

      7. 栈中可以有多个线程

        1. 进程:一个独立的程序的运行,一个进程是由多个线程组成的

        2. 线程:组成进程的重要元素

        3. 句柄:有多少个变量

      8. 变量只有在声明的时候入栈,修改的时候直接在栈中修改即可

      9. 调用不同对象的方法,在该对象的堆区内拷贝一份入栈

    6. 方法区:存放类信息(从硬盘到内存中)

      1. 类常量池:存放类中所有信息(静态的方法和变量都是存放在静态常量池的地址)

      2. 静态常量池:存放类中的 staic 修饰的方法和变量

  3. Java 回收机制

    1. 在变量没有被引用的情况下,将会被自动回收

    2. 不会产生 C/C++ 语言中没有释放内存,内存泄漏的情况

  4. 驱动程序:

    1. 每个硬件都有配套的驱动程序

    2. 每个硬件不能同时调度

      1. 同时调度电压会被干扰

    3. 由 c 语言或汇编语言编写

操作系统:

  1. 计算机存储: 

    1. 计算机中所有文件存储在硬盘上
      1. 硬盘只能存储文件
    2. 内存中存放的是各种变量和函数
    3. 内存和 CPU 中:用电容存储
      1. 电容:
        1. 电容一边存储正电荷一遍存储负电荷,中间会有电压阻隔,电压消失后,正负极融合
    4. 机械硬盘中:用磁颗粒存储
      1. 机械硬盘和固态硬盘的区别
        1. 固态硬盘存在上限,读取上限后,将会出现数据丢失,而机械硬盘却没有读取寿命上限,大公司都是用机械硬盘
        2. 硬盘断电后数据不丢失
      2. 磁颗粒:
        1. 磁颗粒是一个圆盘,表面有磁颗粒,磁颗粒上有一层保护膜,手碰即小时
        2. 磁颗粒 N 面朝外就是1,S 面朝外就是 0,磁头读取磁颗粒的数据时会切割磁感线,会产生电流,传输数据
  2. 计算机语言识别:
    1. 计算机除 c 语言外,其他语言都不能直接识别,需要配置翻译环境
    2. 脚本语言:
      1. 每台电脑都自带脚本语言,只有脚本语言具有攻击性,脚本语言每台电脑都能识别
    3. 每个语言擅长点不一样,针对的方向也不一样。在实际开发中,要的是开发速度快,而不是运行速度快
  3. 计算机:
    1. 有一些软件不需要安装只需要配置环境即可,性能最好
  4. Linux 系统:
    1. 免安装自带文件夹:

      1. LICNSE:收费版本中存放的是密钥

      2. bin:脚本文件  ---> 启动  / 关闭 / 重启脚本

      3. conf(config):配置文件

      4. lib:函数库

      5. logs:运行日志

      6. webapps:存放网站

        1. 每一个网站即为一个文件夹

    2. .exe文件需要安装,性能较差

  5. tomcat:

    1. 作用:运行网址

    2. .bat:windows 下运行

    3. .sh:在Linux 下运行

    4. 由于操作系统执行的文件需要修改权限,不用操作系统的文件不需要修改

  6. 防火墙:

    1. 限制 IP 访问频率

    2. 负责打开和关闭端口

    3. 防火墙开启后,可访问8080端口

  7. 端口:

    1. 区分不同上网程序

    2. 电脑有六万多端口,默认不打开

    3. 每个程序都需要一个单独的端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值