字节码和变量声明

执行hello.py文件后:

#_*_ coding:utf-8 _*_

import mm

print ‘你好,世界!‘

多出来一个文件

使用软件打开后,显示的就是字节码!

注意:如果内容相同,那么.pyc的优先级高,如果不同,则由.py开始执行编译

变量定义的规则:

1、变量名只能是字母、数字或下划线的任意组合

2、变量名的第一个字符不能是数字

3、以下关键字不能声明为变量名

[‘and‘,‘as‘,‘assert‘,‘break‘,‘4‘,‘‘]

变量的赋值

>>>name1 = ‘huwei‘

>>>name2 = name1

>>>name2

‘huwei‘

>>>name1= ‘123‘

>>>name2

‘huwei‘

时间: 2024-11-07 12:03:22

字节码和变量声明的相关文章

java类文件结构(字节码文件)

[0]README 0.1)本文部分文字描述转自 "深入理解jvm",旨在学习类文件结构  的基础知识: 0.2)本文荔枝以及荔枝的分析均为原创: 0.3)下面的截图中有附注t*编号,不关乎博文内容: [1]类文件概述 1)各种不同平台的虚拟机与所有平台都统一使用存储格式--字节码,他是构成平台无关性的基石: 2)时至今日,商业机构和开源机构已经在 java语言外发展出一大批在 jvm 上运行的语言,如 Groovy, JRuby, Jython,Scala等: 3)实现语言无关性的基

JVM字节码格式

字节码格式 字节码是JVM的机器语言.JVM加载类文件时,对类中的每个方法,它都会得到一个字节码流.这些字节码流保存在JVM的方法区中.在程序运行过程中,当一个方法被调用时,它的字节码流就会被执行.根据特定JVM设计者的选择,它们可以通过解释的方式,即时编译(Just-in-time compilation)的方式或其他技术的方式被执行. 方法的字节码流就是JVM的指令(instruction)序列.每条指令包含一个单字节的操作码(opcode)和0个或多个操作数(operand).操作码指明要

JVM之字节码——Class文件格式

如同讲汇编必先讲计算机组成原理,在开始字节码之前,我们先了解一下JVM的主要构成. 在JVM的内部,主要由如下几个部分构成:     1.数据区 方法区:存放类定义信息.字节码.常量等数据,在Sun HotSpot JVM中,这块也称为Perm Gen. 堆:创建的对象信息将放入堆中,堆内部如何实现各虚拟机各不相同,对于Sun HotSpot JVM来说又分为Young Gen和Tenured Gen,更详细描述参见<[Java性能剖析]Sun JVM内存管理和垃圾回收 > Java 栈:对于

[jvm解析系列][八]方法表集合,Code属性和Exceptions属性,你的字节码存在哪里了?

根据我们第五章的总构图来看,这一章我们正该讲到方法表集合: 大家可能注意到在java中声明一个方法和声明一个变量很相似,public int a = 0;和public int a(){};于是在方法表集合中和字段表集合也很相似. 一个方法表的结构应当和下图一样: 对比字段表应该发现几乎是一样的.access_flags里的可选项略有不同而已. access_flags: 这样以来我们把方法表和字段表对比来看应该很好理解了.对于属性表又是一大块内容.上次我们说到了属性表的结构 并且说了在字段表中

Java协程框架-Kilim字节码剖析

前面几篇文章从代码层面介绍了Kilim的基本原理,但是对于其中的一些细节,比如Task的执行状态如何管理等问题从代码上依然得不到答案,本文即再深入到字节码层面来解答. 1.  Kilim字节码改写前后的代码有什么区别? 这里还是先上Kilim官方文档中的一张图,这张图清晰的展现出原始的代码与经Kilim改写后的协程代码. 可以看出左边的原始代码,与我们常见的函数相比有所不同,这里显示声明抛出Pausable异常.实际上这个异常在运行期间不会抛出,它的实际作用类似于注解,使得Kilim能够识别哪些

Java字节码 小结

Reference javap 基本使用方法 深入理解java字节码 从Java代码到字节码 Java字节码.class文件案例分析 字节码 核心概念 Class文件是8位字节流,按字节对齐.之所以称为字节码,是由于每条指令都仅仅占领一个字节.全部的操作码和操作数都是按字节对齐的. 数据结构 Java虚拟机规范中规定.Class文件格式採用一种相似C语言结构体的伪结构来存储,它仅仅有两种数据类型 无符号数(基本数据类型) 主要用于描写叙述数字.索引引用.数量值.或UTF-8编码构成的字符串: u

从字节码和JVM的角度解析Java核心类String的不可变特性

1. 前言 最近看到几个有趣的关于Java核心类String的问题. String类是如何实现其不可变的特性的,设计成不可变的好处在哪里. 为什么不推荐使用+号的方式去形成新的字符串,推荐使用StringBuilder或者StringBuffer呢. 翻阅了网上的一些博客和stackoverflow,结合自己的理解做一个汇总. 2. String类是如何实现不可变的 String类的一大特点,就是使用Final类修饰符. A class can be declared final if its

java字节码指令集

字节码指令集 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成. 对于大部分为与数据类型相关的字节码指令,他们的操作码助记符中都有特殊的字符来表明专门为哪种数据类型服务:i代表对int类型的数据操作,l代表long,s代表short,b代表byte,c代表char,f代表float,d代表double,a代表reference. 加载和存储指令: 将一个局部变量加载到操作栈的指令包括有:

实例详解:反编译Android APK,修改字节码后再回编译成APK

本文详细介绍了如何反编译一个未被混淆过的Android APK,修改smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk无论输入什么样的用户名和密码都可以成功进入到第二个Activity. 有时难免要反编译一个APK,修改其中的若干关键判断点,然后再回编译成一个全新的可用的apk,这完全是可实现的.若要完成上述工作,需要以下工具,杂家后面会把下载链接也附上.这些软件截止本文发布时,经过杂家确认都是最新的版本. 1.APK-Multi-Toolv1.0.11.zip 用它