第二章 java语言中的数据与运算符
来源:互联网 发布:skype business mac 编辑:程序博客网 时间:2024/05/06 19:57
2.1 数制
在使用电脑时会遇到文字、图像、声音等信息,电脑是如何识别这些数据呢?首先,这取决于计算机底层硬件是如何识别数据的,计算机机底层硬件只能识别0和1,这种只能1和0两个数字符号的组合被称为二进制。如计算机处理128,会将其转化为10000000.这样就显得太麻烦,后来就引进了八进制、十六进制。
二进制 逢二进一
八进制 逢八进一 八进制数据前面有一个0的前缀,容易与二进制产生混淆,尽量不适用
十六进制 逢十六进一,前面有一个0x的前缀
2.2 数据类型
Java语言是一种强数据类型的语言,在声明变量时,必须将变量定义为一种数据类型。java中的数据类型包括基本数据类型和对象类型。Java程序中有8大基本类型,4种整形、1种字符型、2种浮点型、1种布尔型。
- 字节型 ==byte== 用一个字节来表示整数值,它的范围介于-128~127之间。无论采用哪种进制表示,系统会自动转化为十进制。
public class ByteJunit{ public static void main(String[] args){ byte x =22; byte y = 022; byte z = 0x22; //输入语句省略。。。 }}//输入结果x =22y = 18z = 34
短整型 ==short== 用两个字节表示整数型,它的范围介于-32768~32767之间
整数型 ==int== 用四个字节表示整数型,它的范围介于-2^32 ~ 2^32之间
长整型 ==long== 用八个字节表示整数型,唯一不同的是数值后面需要加一个L表示,不区分大小写,如long = 23L
字符型 ==char== 占两个字节 字符型数据只能表示单个字符,使用单引号,如 char = ‘a’
单精度浮点型 ==float== 占四个字节,有效数字最长7位,包括整数和小数部分,每个浮点型的数值后面需要加F,不区分大小写。
双精度浮点型 ==double== 占8个字节,有效数字最长15位,包括整数和小数部分,每个浮点型的数值后面需要加D,不区分大小写。
==boolean== 表示是真假,有两个值true和false
为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。
Java 为每个原始类型提供了包装类型:
- 原始类型: boolean,char,byte,short,int,long,float,double
- 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double
这里涉及到自动装箱/拆箱机制,
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
值得注意是如果整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象
2.3 变量
变量就是在程序运行中值可以变化的量,前面说到Java是一门强数据类型的语言,在程序设计中就必须为声明的变量分配一个数据类型,随后在声明变量的名字,行尾的分号是必须的。
int a;byte b,c;
变量的分类从作用范围来分,一般分为全局变量和局部变量,全局变量在类的整个范围内都有效,局部变量就是在类中的方法函数内或某个子类有效。作为全局变量,无需初始化,系统自动给变量赋值,除了字符型数据被赋值为空,布尔类型被赋值为false,其他一律赋值为0或0.0,值存放在堆中,随着对象的销毁而销毁;而局部变量必须进行初始化赋值,否则编译时报错,值放在栈中,随着方法调用结束而销毁;
从所属范围来分,可以分为类变量和成员变量,类变量就是用关键字“static”修饰的全局变量,她是属于类的,而成员变量时属于对象本身的。类变量不会随着类对象的变化而变化。
==static==:表明一个成员变量或者是成员方法可以在没有实例的情况能被访问。修饰成员变量和成员方法。
1. 随着类的加载而加载
2. 既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
3. 静态的内容在方法区的静态区
4. 注意在静态方法中没有this对象
5. 所有的该类的实例共享一个变量
6. Java中static方法不能被覆盖(重写),因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关。
2.4 常量
常量就是程序从开始到结束都不变的量,不可更改,在程序中使用关键字“final”来修饰,常量名一般大写。
final int BC= 20;
如果要声明一个类常量,则要这样声明
static final BC = 3O;
final:
1. 修饰类:表示该类不能被继承;
2. 修饰方法:表示方法不能被重写;
3. 修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。
2.5 运算符
运算符就是在变量或常量在进行运算时,需要用到的符号。
2.5.1算术运算符
算术运算符包括:+、-、*、%、/、++、–,当使用运算符结合在一起时,首先会将两个操作数转化为相同类型的数据,低精度向高精度自动转换。注意 ++a 指 a的值先自增1,在参与运算;a+ 指先参与运算,再自增1,–a 同理。
2.5.2关系运算符
关系运算符就是指两个操作数之间的关系,包括>、<、>=、<=、==、!=
2.5.3逻辑运算符
逻辑运算符有3种,与(&&)、或(||)、非(!),分别是并且、或者、相反的意思,结果都是一个布尔结果。
2.5.4位运算符
位运算符只要针对二进制进行运算,它包括,与(&)、或(|)、非(~)、异或(^)
public class Data{ public static void main(String [] args){ int a =129; int b =128; int c =2; // a的二进制 10000001 b的二进制10000000 // a&b 两个位都是1,结果才是1 二进制结果为10000000 即128 // a|b 两个位有一个1,结果就是1 二进制结果为10000001 即129 // ~c 如果位为0,结果1,否则,反之。注意非运算就是取相反的位值,而且取反 //是针对二进制所有位置而言的。什么意思呢,我们来详解下,int类型占4个字节, //每个字节8位,对于2来说,标准的二进制应该是32位 0000000000000000000010 //二进制非运算后11111111111111111111101,最高位表示符号,1为负数,然后 //负数的二进制是它的绝对值取反在加1,结果是00000000000000000011,最高位是 //1,表示负数,所以结果是-3, // a^b 相同则为0,不同则为1 ,二进制的结果为00000001,即1 }}
2.5.5移位运算符
移位运算符也是针对二进制的位,包括左移(<<),右移(>>>),带符号的右移(>>),左移就是向左移n位,相当于乘上2的n次方;右移就是向右移,相当于除以2的n次方;带符号的右移,向右移动指定的位数。如果是正数则在高位补0,负数则在高位补1
2<<2 = 2*2^2 = 816>>>2 =16/2^2 = 416>>2 = 00010000->00000010 = 4-16>>2 =11101111->11111011 = -4
- 第二章 java语言中的数据与运算符
- 黑马程序员 一 java语言中的数据与运算符
- java系统学习(一) --------java语言中的数据与运算符
- 学习java语言中数据与运算符总结
- C语言第二章:运算符
- Java语言入门教程(八):Java语言中的运算符与流程控制
- Java中的&与&&运算符
- C语言--第二篇类型、运算符与表达式
- 第二章 变量、数据类型与运算符
- 第二章 类型、运算符与表达式
- 第二章 表达式与运算符
- 第二章 Java语言基础2 (关键字、运算符、进制、变量类型)
- java与c语言中的取模运算
- 第二章 java基础(加运算符)
- (C语言教程)第二章: 数据类型、运算符、表达式
- C语言教程---第二章: 数据类型、运算符、表达式
- C语言教程第二章: 数据类型、运算符、表达式
- C语言教程第二章: 数据类型、运算符、表达式
- Math方法
- filter,Listener和JavaBean的简介
- js 伪造static静态变量
- java、android、ios、js数据传递加密算法之AES加密
- 软件测试项目实例_餐饮系统(初稿,后续待整理!)
- 第二章 java语言中的数据与运算符
- 最简单的方式上传到git
- 互联网时代的区域电商思维
- 3小时搞定数据可视化大屏,升职加薪有望了
- 浏览器缓存
- 微信支付签名工具类---Signature
- ######02.【根据表关系 写实体】,【直接凭业务逻辑 和页面显示信息,写不出:体现实体之间的依赖关系 的属性。】
- Python——map(),reduce(),filter()函数
- 结构体数组