JAVA基础-基础数据类型和运算符

JAVA基础知识

JAVA简介

1995年由SUN公司开发的一门编程语言,随着互联网的兴起JAVA凭借自身简单、安全、完全面向对象、跨平台等特性得到了IT界的热烈追捧;迄今为止JAVA也成为了互联网的首选语言……

JAVA的跨平台性是基于JVM(JAVA虚拟机)来实现的,SUN公司针对不同的操作系统开发了不同的JVM,我们只需根据自己所用的操作系统安装对应的JVM,JVM会将java程序转化为当前操作系统所能理解的指令,然后操作系统再根据指令执行代码,从而实现一套java代码可在多平台上运行的跨平台性。

  • JVM (Java Virtual Machine)—java虚拟机,是java能跨平台的前提。
  • JRE (Java Runtime Environment)—java运行时环境,包含JVM+核心类库。
  • JDK (Java Development Kit)—java开发工具包,包含JRE+开发工具。

基础数据类型和运算

进制
  • 二进制:0~1,满2进1,1+1=10,在JDK1.7开始,允许程序中定义二进制,以0b/0B作为开头,如:0b00010,0B1001101
  • 八进制:0~7,满8进1,7+1=10,77+1=100,要求以0作为开头,如05
  • 十进制:0~9,满10进1,数字如果没有特殊标识,默认就是十进制
  • 十六进制:0~9,a~f,满16进1,9+1=a,f+1=10,要求以0x/0X作为开头,如:0x5,0Xaf12
进制的转换
  • 十进制转二进制,十进制数不断除以2,余数倒排,13/2=6...1,6/2=3...0,3/2=1...1,1/2=0...1;余数倒排为:1101
  • 二进制向十进制转换:从低位次开始,按位次乘以2的位次次幂,然后求和,1101=1*2^0+0*2^1+1*2^2+1*2^3=13
  • 十进制向其他进制转化:除以对应的进制,然后取余数倒排
  • 其他进制向十进制转化:从低位开始,按位次乘以进制的位次次幂,然后求和
  • 二进制向八进制转换:从低位次开始,每三位二进制划分为一组,产生一个八进制数字,最高位可能不足三位,补0,补足三位,然后产生一个八进制数字,如:1100110 一次分组为 001,100,110 = 0146
  • 八进制转二进制:八进制数每位数字用三位二进制表示,左右把二进制数顺序组合起来,如 0527 -->5 = 101,2=010,7=111;所有0527转换为二进制为 101010111
  • 二进制转十六进制:从低位开始,每4二进制用一个十六进制数表示,高位不足4位补0,如:110011011 --> 1011 = b,1001=9,0001=1;所以110011011转化为十六进制是0x19b,十六进制转换为二进制,每1位十六进制用4位二进制数表示,不够4为高位补0,如:0x2f6 --> 2 = 0010,f=1111,6=0110;所以0x2f6转换为二进制是 1011110110
练习题

1、102 * 11 结果为十进制数 162,请问原式是几进制运算?
2、什么情况下 21 * 3 = 51 等式成立?

数据类型

在计算机中,是以二进制形式来存储数据,每一位二进制在内存中称为是一“位”(bit,简写为b),8位 = 1字节(byte,简称为B),1024B = 1KB -> MB -> GB -> TB -> ZB -> YB ... 100Mb = 12.5MB(偷偷告诉你,百兆宽带,其实用的单位是Mb,所以网速最高只有12.5MB;还有在通讯行业为了计算方便,是按照千进制来计算流量,即:你开了3GB流量,其实只有3000MB,并不是3072MB)

  • 变量:数据类型 变量名 = 数据;
  • 基本数据类型:
数据类型所属分类类型名称存储容量取值范围
byte整数型字节型1 字节-2^7 ~ (2^7)-1 -128 ~ 127
short整数型短整形2字节-2^15 ~ (2^15)-1 -32768 ~ 32767
int整数型整形(java中默认整数类型)4字节-2^31 ~ (2^31)-1
long整数型长整形(需要在结尾加上l/L)8字节-2^63 ~ (2^63)-1
float浮点型单精度浮点型,结尾加上f/F4字节大概 -10^38 ~ 10^38
double浮点型双精度浮点型,java默认浮点类型8字节大概 -10^308 ~ 10^308
char字符型字符型(默认使用utf-16编码)2字节0 ~ 65535
boolean布尔型布尔型true / false
  • 引用数据类型:数据—[] 、类—class 、接口— interface …
运算
算数运算符

+ - * / % ++ --
注意:++在前,先自增后参与后续运算 ;++在后,先将值取出来参与运算然后再自增,赋值运算再最后。%取余运算,若%左边是正数取余结果也是正数,若%左边是负数,取余结果为负数。

赋值运算符

= += -= *= /= %= &= |= ^= <<= >>= >>>=

关系运算符

== != > < >= <=

逻辑运算符

| & ! ^ || &&
^运算,异极true,同极为false

  • true ^ true = false
  • false ^ false = false
  • true ^ false = true
  • false ^ true = true
位运算符

<< >> >>> ~ & | ^
注意:位运算只针对整数的补码进行计算,正数的原反补三码一致
<< :左移,将数据转化为补码之后,按照指定的位数移动,移出的数据舍弃,低位空出补0,最后将结果转化为十进制显示,在一定范围内,左移就是乘以2的几次方
>> :右移,将数据转化为补码,按指定的位数向右移动,移出的数据舍弃,高位次空出,正数补0,负数补1,最后将结果转化为十进制显示;正数右移,越移越小,最小到0,;负数右移,越移越大,最大到-1;在一定范围内,右移几位就是除以2的几次方
>>> :无符号右移,将数据转化为补码后,按照指定的位数向右移动,移出的数据舍弃,高位次空出,无论正负一律补0,最后转化为十进制显示;负数无符号右移后会变成正数
~ :取反,将数据转化为补码,无论高低位一律是1变0,0变1,计算出来的救过是补码,转化为原码之后再变为十进制来显示,对一个数取反就是对这个数的相反数减一
& :将数据转化为补码,进行按位与运算,将1看作true,将0看作false进行计算,再将结果转化为十进制显示,正数&负数结果一定是正数(0&1=0)
| :将数据转化为补码,进行按位或,将计算结果转为十进制显示,负数|任何数=负数,奇数|任何数=奇数,0|任何数=原数
^ :将数据转化为补码,进行安慰亦或,将结果转化为十进制显示,可用于交换值,x=x^y;y=x^y;x=x^y;

例如:
byte b = 127 ;
0111 1111 — 原码
0111 1111 —反码
0111 1111 — 补码
负数的反码是在原码的基础上,最高位不变,其余为0 <-> 1 (0变1,1变0),负数的补码是在反码的基础上+1
例如:
byte b = -5;
1000 0101 —原码
1111 1010 —反码
1111 1011 —补码
计算机底层是基于补码的运算,运算结果也是补码,java中规定用 -0 来表示当前类型的最小值。
例如:
在这里插入图片描述

三元运算符

逻辑表达式 ?表达式1 :表达式2
逻辑表达式结果为true执行表达式1,为false执行表达书2;

运算符的优先级

~ >(++ --) 算术 > (<< >> >>>) > 关系 > 逻辑 > (& | ^) > 三元 > 赋值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值