java 程序运行同时拥有 编译型语言和解释型语言的特点

程序运行流程:

源程序 .java文件 --> Java 编译器--> 字节码 .class 文件 --> 类装饰器 --> 字节码校验器 --> 解释器--> 操作系统平台


数据类型

  1. 基本数据类型

    • 整数类型

      1. byte 1个字节,8位
      2. short 2个字节,16位
      3. int 4个字节, 32位
      4. long 8个字节, 64位
    • 浮点类型
      1. float 4个字节, 32位
      2. double 8个字节,64位
    • char类型
      1. 2个字节, 16位
    • boolean类型
      1. true
      2. false
  2. 引用数据类型

    • 接口
    • 数组

字节

计算机内存的最小存储单元是字节(byte),一个字节就是一个8二进制数,即8个bit。它的二进制表示范围从0000000011111111,换算成十进制是0255,换算成十六进制是00~ff

举例:

定义int a = 1; short b = 9;

在计算机内存中分别表示为:

00000000 00000000 00000000 00000001

00000000 00000011

为什么byte类型的区间是 -128 - 127之间呢?

一个byte 在计算机内存中是 8位。

则定义区间为:

10000000 ~ 01111111 -> -128 ~ 127

(这里涉及到计算机基础知识:原码、反码、补码 的知识。)

简易记住 各类型区间的范围的方法:-2^(8*字节数) ~ 2^(8*字节数)-1

位运算

对于正数来讲:

int a = 9;

在计算机内存中表示为: 00000000 00000000 00000000 00001001

a = a << 2; 代表 : 00000000 00000000 00000000 00100100

则a = a * 2 * 2 = 36;

a = a >> 2; 代表 : 00000000 00000000 00000000 00000010

则a = a / 2 / 2 = 2;

位运算是按位进行与、或、非和异或的运算

两个整数进行位运算,实际上就是按位对齐,然后依次对每一位进行运算

与 &: 两个数的同一位,都为1时,结果才为1

或 |: 两个数的同一位,有一个为1时,结果为1

非 ~: 01 互换

异或 ^:如果两个数不同,结果为1,否则为0

    public static void main(String[] args) {
int i = 167776589; // 00001010 00000000 00010001 01001101
int n = 167776514; // 00001010 00000000 00010001 00000010 int p = 167776512; // 00001010 00000000 00010001 00000010
int q = 167776591; // 00001010 00000000 00010001 01001111
int m = -167776590; // 11110101 11111111 11101110 10110010
int o = 79; // 00000000 00000000 00000000 01001111
System.out.println((i & n) == p); // 与 true
System.out.println((i | n) == q); // 或 true
System.out.println(~i == m); // 非 true
System.out.println((i ^ n) == o); // 异或 true
}

运算优先级

在Java的计算表达式中,运算优先级从高到低依次是:

  • ()

  • ! ~ ++ --

  • * / %

  • + -

  • << >> >>>

  • &

  • |

  • += -= *= /=

    括号在第一;不等取反自加减;乘除取模排第三;加减高于位移符,与1或2加减乘除等

java 程序运行机制的更多相关文章

  1. Java程序运行机制

    Java程序运行机制 编译型(compile) 它有一个负责翻译的程序(编译器),将我们写的 Java 源代码转为计算机可执行的代码 举个例子:把一本中文书翻译成英文书 应用:操作系统.C.C++ 解 ...

  2. 02 基础 卸载JDK 安装JDK Java程序运行机制

    基础 JDK:Java Development Kit(Java开发者工具 包含JRE和JVM) JRE:Java Runtime Environment(java运行时环境,包含JVM) JVM:J ...

  3. 基础知识《零》---Java程序运行机制及运行过程

    Java运行机制 Java虚拟机(Java Virtual Machine):Java虚拟机可以理解成一个以字节码为机器指令的CPU:对于不同的运行平台,有不同的虚拟机:Java虚拟机机制屏蔽了底层运 ...

  4. 1、Java语言概述与开发环境——Java程序运行机制

    Java语言是一种特殊的高级语言,它既有解释型语言的特性,也具有编译型语言的特征,因为Java要经过先编译后解释两个步骤. 一.高级语言的运行机制 计算机高级语言按程序的执行方式可以分为编译型和解释型 ...

  5. Java程序运行机制及开发环境

    Java既是编译型语言,又是解释型语言 java源文件首先需要通过javac编译生成后缀名为.class的字节码文件(与平台无关,只面向JVM),然后使用Java虚拟机将字节码解释成特定平台上的机器码 ...

  6. 5.Java程序运行机制

    一.编译型和解释型语言区别 计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以任何的高级语言编写的程序都必须转换成计算机语言,也就是机器码.而这种转换的方式有两种: 编译 ...

  7. 2.Java程序运行机制

    1.编译型:compile,把所有东西翻译好,若有更新需要重新全部翻译.执行速度够快,对操作系统要求比较低.开发操作系统时用到编译型语言,例如c/c++...运行时需编译整个程序 2.解释性:运行一个 ...

  8. Java的运行机制

    Java程序运行机制 编译型(操作系统 c/c++) 解释型(网页 不追求速度) 程序运行机制

  9. java入门(1) 程序运行机制及运行过程

    首先我们来看一下java程序在底层是怎么工作的: JAVA有两种核心机制: Java虚拟机(Java Virtual Machine): 1.java虚拟机可以理解成一个以字节码为机器指令的CPU. ...

  10. 第一个java程序以及java的运行机制

    课堂要点: 编写第一个java程序以及理解java的运行机制. 1.基本命令介绍: javac命令: 编译java文件得到.class字节码文件 -encoding 参数:指定编译的编码 java命令 ...

随机推荐

  1. 启动JAVA服务

    # -*- coding: utf-8 -*- import re import sys from subprocess import Popen, PIPE import os import tim ...

  2. Python request模块 携带cookie

    # _*_coding:utf-8 _*_ import time import requests import json import sys import random import string ...

  3. 循环for in 和for of

    for in 和for of都是前端循环工具 我平时用for in比较多一点 但是今天来看一下两者的区别 先声明一个对象和一个数组 分别使用for in和for of分别查看得到的结果 var arr ...

  4. Leetcode48 旋转图像

    48. 旋转图像 难度中等432 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵 ...

  5. 关于Docker容器内不能ping通外网

    先在主机重启docker服务 systemctl stop docker systemctl start docker 然后再开启容器,进入容器 https://blog.csdn.net/qq_42 ...

  6. CCF 202012-1 期末预测之安全指数

    #include <iostream> //#include <bits/stdc++.h> #include <string> using namespace s ...

  7. Leetcode本地阅读器开发--01界面设计一

    返回项目声明及目录:Leetcode本地阅读器开发--总声明 整个界面设计如下:后续可能会不断优化和加入新功能 1.启动后界面 2.进行具体题目搜索 3.进行分类搜索 本节主要介绍程序界面的绘制: 1 ...

  8. 前端vue框架上手记录

    ---恢复内容开始--- Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-se ...

  9. Day09-方法

    方法 一.何谓方法 java方法是语句的集合,他们在一起执行一个功能 方法是解决一类问题的步骤的有序集合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则: 方法的本意是功能 ...

  10. Debug --> 使用USTC-TK2016工具对USTC-TFC2016数据集进行处理

    文件介绍: https://blog.csdn.net/u010916338/article/details/86511009?spm=1001.2101.3001.6661.1&utm_me ...