操作数

变量、数据类型和运算符

徘徊边缘 提交于 2020-02-10 23:10:06
常用Java数据类型 int(整型)、double(双精度浮点型)、char(字符型)、String(字符串型) 变量声明及使用的语法 数据类型 变量名 = 值 变量命名规则 1.变量必须以字母、"_"或"$"符号开头 2.变量可以包括数字,但不能以数字开头 3.除了"_"或"$"符号以外,变量名不能包含任何特殊字符 4.不能使用java语言关键字 常用算术运算符 +(加法运算符,求操作数的和) -(减法运算符,求操作数的差) *(乘法运算符,求操作数的乘积) /(除法运算符,求操作数的商) %(取余运算符,求操作数相除的余数) 数据类型转换 (1)自动数据类型转换 (2)强制数据类型转换 boolean类型的值 true(真)、false(假) 关系运算符 >(大于) <(小于) >=(大于等于) <=(小于等于) ==(等于) !=(不等于) 来源: https://www.cnblogs.com/daixiumei/p/6906290.html

Java虚拟机之栈帧

给你一囗甜甜゛ 提交于 2020-02-08 15:27:13
简述 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构。它是虚拟机运行时数据区中的虚拟机栈的栈元素。 栈帧存储了方法的 局部变量表 、 操作数栈 、 动态链接 和 方法返回地址 等信息。 总的来看,其结构大概如下图黄色区域那样。 在单个线程中,每一个调用方法jvm都会为其分配一个栈帧。上图中,main方法中包含一个栈帧,然后在main方法里面调用了computer()方法,然后这个computer()方法也会含有自己的栈帧。另外每个栈帧内部都含有自己的局部变量表、操作数栈、动态链接、方法返回地址等信息。 局部变量表 局部变量表是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。在Java程序编译为Class文件时,就在方法表的Code属性的max_locals数据项中确定了该方法需要分配的最大局部变量表的容量。在方法执行时,虚拟机是使用局部变量表完成参数变量列表的传递过程,如果是实例方法,那么局部变量表中的每0位索引的Slot默认是用于传递方法所属对象实例的引用,在方法中可以通过关键字“this”来访问这个隐含的参数,其余参数则按照参数列表的顺序来排列,占用从1开始的局部变量Slot,参数表分配完毕后,再根据方法体内部定义的变量顺序和作用域来分配其余的Slot。局部变量表中的Slot是可重用的,方法体中定义的变量

Intel 8086 常用汇编指令表

我的梦境 提交于 2020-02-08 14:22:43
一、数据传输指令   它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.   1. 通用数据传送指令.     MOV  传送字或字节.     MOVSX 先符号扩展,再传送.     MOVZX 先零扩展,再传送.     PUSH  把字压入堆栈.     POP  把字弹出堆栈.     PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.     POPA  把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.     PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.     POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.     BSWAP 交换32位寄存器里字节的顺序     XCHG  交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)     CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )     XADD  先交换再累加.( 结果在第一个操作数里 )     XLAT  字节查表转换.         ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即         0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )   2.

2020.02.08面试题10道

时光毁灭记忆、已成空白 提交于 2020-02-08 09:56:14
1.Java里的传引用和传值的区别是什么? 传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。 2.如果去掉了main方法的static修饰符会怎样? 程序能正常编译。运行是会抛出NoSuchMethodError异常。 3.如何将String类型转化成Number类型? Integer类的valueOf方法可以将String转成Number。下面是代码示例: String numString = "1000" ; int id = Integer . valueOf ( numString ) . intValue ( ) ; 4.什么是Java虚拟机? Java虚拟机是能移植到不同硬件平台上的软件系统。 5.Java的访问修饰符是什么? 访问权限修饰符是表名类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。他们包含:public:所有类都可以访问;protected:同一个包内以及所有子类都可以访问;默认:同一个包内可以访问;private:同一类中才可以访问。 6.&操作符和&&操作符有什么区别?(重点) 当一个&表达式在求值时,两个操作数都会被求值。当&&表达式求值的时候,先计算第一个操作数,如果它返回true才会计算第二个操作数。如果第一个操作数取值false,第二个操作数就不会被求值。 7.声明变量和定义变量有什么不同?

JavaScript 运算符

笑着哭i 提交于 2020-02-06 09:46:13
赋值运算符 赋值运算符用于为变量指定变量值,与 Java、C 类似,JavaScript 也使用“=”作为赋值运算符。 //将变量str 赋值为 JavaScript var str = "JavaScript " ; //将变量 pi 赋值为3.14 var pi= 3. 14 ; //将变量赋值为 true var visited= true ; 除此之外,也可使用赋值运算符将一个变量的值赋给另一个变量。 即如下代码也是正确的 //将变扯 str 赋值为 JavaScript var str = "JavaScript " ; //将变批 str 的值赋给 str2 var str2 = str ; 赋值语句本身是有值的,赋值语句的值就是等号(=)右边被赋的值。 因此 ,赋值运算符支持连续赋值,通过使用多个赋值运算符 ,可以一次为多个变量赋值 ,如下代码 是正确的 //为 b, c,d 赋值,四个变量的值都是 var a= b = c = d = 7 ; //输出四个变量的值 alert ( a + ' \n ' + b + ' \n ' + c + ' \n ' + d ) ; 赋值运算符还可用于将表达式的值赋给变量,如下代码也是正确的: //为变量 x 赋值为 12.34 var x = 12 . 34 ; //将表达式的值赋给y var y= x + 5 ; //输出

《Java核心技术》 (《Core Jave》) 阅读笔记

旧时模样 提交于 2020-02-06 03:07:22
不得不说Sun公司核心技术丛书《Java 核心技术》 卷I 和卷II 是两本非常好的理解Java的丛书,在深入学习Java并领悟《Thingking In Java》着本书之前,《Java 核心技术》是个不错的学习选择。下面把自己的阅读笔记总结下。其中只写了最近用到的章节,其余章节如果用到之后再阅读。 《Java 核心技术 I》 1. 第3章:Java基本的程序设计结构 Java是一种强类型语言,一共有8种基本类型,4种整型、2种浮点型、1个char和1个boolean 数值类型之间的转换,当两个操作数进行二元操作时,比如加减乘除余操作,先将两个操作数转换为同一种类型,然后再进行计算     如果两个操作数中有double类型,则将另外一个非double类型转为double类型     否则,如果两个操作数中有float类型,则将另外一个非float类型转为float类型     否则,如果两个操作数中有long类型,则将另外一个非long类型转为long类型     否则,都转换为int类型 介绍了Scanner输入、printf格式化输出java.util.Arrays类对于数组的操作 2. 第4章:Java基本的程序设计结构 在类之间的常用三种关系     依赖(uses-a)、聚合(has-a)和继承(is-a) 4.2

变量与常量及运算符

大城市里の小女人 提交于 2020-02-06 00:05:57
变量(Variable):   变量可以理解为可以改变的一个值。   百度百科中这样说明变量:     变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象。    Java中的变量一般分为以下前两种(严格的讲分为三种):     1.局部变量:指在方法或语句块内部定义的变量。     2.实例变量(又叫“成员变量”或“全局变量”):指在方法外部,类的内部定义的变量。     实例变量在使用前必须要先初始化(就是必须赋值),如果不初始化,则Java会自动的初始化为该类型的默认初始值(数值型:0或0.0、字符型:16位的0、布尔值:false)。     3.类变量(被static修饰的变量)     示例: package com.lxj.cnblogs; /** * 测试变量 * @author 刘小将 * */ public class TestVariable { boolean flag = false; //这是一个全局变量 static String str = "Abc"; //这是一个类变量 public void function() { int a = 1; /

javascript权威指南笔记--javascript语言核心(二)

十年热恋 提交于 2020-02-05 08:49:26
1. 函数作用域 :在函数内声明的所有变量在函数体内始终是可见的。这意味着在变量声明之前甚至已经可用。    *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部。   function test(o) {     var i = 0;     if(typeof(o) == "object") {       var j = 0;       for(var k=0; k<10; k++) {         console.log(k);//0-9       }       console.log(k);//10     }     console.log(j);//0   }   var scope="global";   function() {     console.log(scope);//undefined     var scope = "local";     console.log(scope);//"local"   }   因为函数内变量scope的声明被提前,相当于:   var scope = "global";   function(){     var scope;     console.log(scope);     scope = "local";     console.log(scope);   

operator介绍

社会主义新天地 提交于 2020-02-05 05:47:09
operator是C++的关键字,它和运算符一起使用,表示一 个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。 一、为什么使用操作符重载? 对于系统的所有操作符,一般情况下,只支持 基本数据类型和标准库中提供的class,对于用户自己定义的class,如果想支持基本操作,比如比较大小,判断是否相等, 等等,则需要用户自己来定义关于这个操作符的具体实现。比如,判断两个人是否一样大,我们默认的规则是按照其年龄来比较,所以,在设计person 这个class的时候,我们需要考虑操作符==,而且,根据刚才的分析,比较的依据应该是age。那么为什么叫重载呢?这是因为,在编译器实现的时候,已经为我们提供了这个操作符的基本数据类型实现版本,但是现在他的操作数变成了用户定义的数据类型class,所以,需要用户自己来提供该参数版本的实现。 二、如何声明一个重载的操作符? A: 操作符重载实现为类成员函数 重载的操作符在类体中被声明,声明方式如同普通成员函数一样, 只不过他的名字包含关键字 operator ,以及紧跟其后的一个c++预定义的操作符 。 可以用如下的方式来声明一个预定义的==操作符: class

Java SE学习总结 Day (3)

一曲冷凌霜 提交于 2020-02-05 04:20:26
Day 03开篇: " 今天是java基础主要学习了强制转换,运算符中的算术运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,等。 " 知识点反馈: 今天的知识点总结的思维导图 一.强制类型转换 1.注意: (1) boolean类型不参与任何形式的转换 。 (2)基本数据类型当中,是没有字符串类型的,字符串类型是一个类属于引用数据类型【除了4类8种基本数据类型,其余的都引用数据类型】 2.怎么去定义一个字符串? String str =new String(""); String str = "内容"; String也是不参与任何形式的转换的 但是,String可以通过”+”的运算符,将任何数据都拼接成为一个字符串内容. 如果左边的数据是字符串,则后面的数据全部都是字符串 字符串和任意数据任何形式的拼接,其结果都是字符串,只不过要明确字符串是在前还是在后。 3.面试题: (1)请问下面的代码有没有问题? double d = 12.3567; float f = d; Double占8个字节,而float占用4个字节,4个字节的空间不能存储8个字节的空间,可能会造成数据溢出,JVM不允许,需要强制转换 (2)请问下面的代码有没有区别? Float f1 = (float)12.345; Float f2 = 12.345F; 有,f1是在声明变量的时候