最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

java 系列教程:(2)数据类型和运算符

[复制链接]
跳转到指定楼层
楼主
发表于 2018-1-22 15:40:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一、常量与变量#
直接量

生活中用到的数值,例如:

整数数值:1,23,454 等;

小数数值:3.14,2.3e4 等;

字符型数值:‘a’,‘b’ 等;

布尔型数值: 用来表示真假值,true 、false。

String类型:用双引号括起来的多个字符序列,“move all", ”哈哈“。

null类型:null

变量:是一个保存数据的内存区域的名字。系统在变量定义时为其分配内存空间。

java语言是个强类型语言,所有变量必须显示声明类型。

当数据不确定时,应用。

声明变量语法:

file

type:数据类型

varName:变量名

如:int i;

两种变量声明方式:

file

file

常量:代表程序运行过程中不能改变的值,也就是说,第一次赋值后,不能再赋值。

常量一般都大写

声明常量的语法:

1
final type varName;

file

所有常量、变量必须先声明,后使用

二、变量分类#
按作用域:成员变量和局部变量 ——讲对象的时候讲

局部变量

代码块内有效

代码块 {}

file

方法体内有效 —— 讲方法的时候讲

按数据类型:

基本数据类型:包括整形(byte、short、int、long)、浮点型(float、double)、布尔类型(boolean)、字符型(char)

引用数据类型:包括类、接口、数组类型以及空类型

file

三、基本数据类型#
整数型:包括字节型(byte),短整型(short),整型(int),长整型(long), 它们有符号整数

浮点型:包括浮点型(float),双精度型(double),它们代表有小数精度要求的数字

字符型:包括字符型(char),它代表字符集的符号,例如字母和数字

布尔型:包括布尔型(boolean),它是一种特殊的类型,表示真/假值

(一)整数类型

file

bit:位

    一个二进制数据0或1,是1bit;
byte:字节

    一个字节等于8位。
其中定义long类型时,要在整数常量后增加L或l,建议用L,容易区分,如

long value = 103432544354356L;

file

1、整数字面量表示

十进制:默认的,逢10进1

如:int i= 125;

八进制:整数之前加数字0来表示,逢8进1

如:int j = 071;

十六进制:整数之前加“0x”或“0X”,其中10~15分别以a~f表示(不区分大小写),逢16进1

如:int i = 0xa;

二进制(新加的):整数之前加“0b”或“0B”,逢2进1

如:int j = 0b101;

十进制转二进制方法

这是一个连续除以2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

如:十进制的6转成二进制 110

file

二进制加法0b11+0b10 = 0b101,加法方式逢二进一

十进制的30,转换成二进制、八进制、十六进制

file

二进制转十进制方法

用二进制数值乘以2的幂次依次相加

如:二进制110转换成十进制6

20 0 + 21 1 + 22 * 1 = 0 + 2 +4 = 6

file

八进制、十六进制与十进制互转原理与二进制一样

将之前十进制的30 转换成其他进制,再转换回十进制

代码示例:

file

(二)浮点型

浮点型有两种:double 和 float

double:双精度浮点数,一个double类型的数值占8个字节、64位

float:单精度浮点数,一个float类型的数值占4个字节、32位

file

浮点字面量表示:标准记数法或科学记数法

double pi = 3.14;

double sd =5e-12;

double r = 8E2;

浮点字面量默认是双精度。字面量后面加F或f 表示单精度

float f = 1.1f;

如果要精确计算浮点数(保留几位小数),则要用BigDecimal类(常用于计算金额)

代码示例:

file

(三)字符型

类型:char

占2个字节

字符型常量的三种表现形式

1、直接通过单个字符来指定字符型常量,例如:‘a'、'1'等

2、通过转义字符表示特殊字符型常量,例如:’\n‘、'\t'等

3、直接使用Unicode值来表示字符型常量,格式是'\uXXXX',其中XXXX代表一个十六进制的整数

  范围是'\u0000'~'\uFFFF',共可以表示 65535个字符
java语言常用的转义字符

file

除此之外,char类型的值可以直接作为整数类型的值来使用,表数范围0~65535

如:char value = 99;

转义字符示例:

file

运行结果

file

file

(四)布尔型

布尔型只有一个boolean类型,用于表示逻辑上的“真” 或 “假”,不能用 0 或者 非0 代表。

true 真
false 假
如:boolean flag = true;
boolean应用流程控制

1 if条件控制语句
2 while循环控制语句
3 do循环控制语句
4 for循环 控制语句
5 三目运算符(? :)中使用

四、类型转换#
在java程序中,不同的基本类型的值 经常需要进行相互转换。

类型转换分为自动类型转换和强制类型转换

(一)自动类型转换

当把一个表数范围 小的数值或变量直接赋给另一个表数范围大的变量时,系统可以进行自动类型转换。

自动向范围大的类型转换 ,混合运算时转成最大的范围类型。

如同将小瓶水倒入大瓶没有问题一样

file

byte、short 不能自动转换成char

char不能自动转换成byte、short

代码示例:

file

file

如同将大瓶子中的水倒入小瓶子,两种结果

①大瓶子中的水 ≤ 小瓶子中的水,小瓶子能承下(强转没问题)

②大瓶子中的水>小瓶子中的水,水溢出(强转会发生截断(按模取余)或者可能溢出)

能强转成功的前提:类型大的数值小于类型小的最大取值范围。

注意:在编程中要尽量避免由于强转导致的非预期结果

代码示例:

file

五、运算符#
知识点:

算术运算符

位运算符

赋值运算符

关系运算符

逻辑运算符

三目运算符

运算符优先级

(一)算术运算符

file

file

file

file

表达式类型的自动提升

当一个算术表达式中包含多种数据类型的值时,整个算术表达式的数据类型将发生自动提升。

Java 定义了如下提升规则:

1)所有的byte 类型、short 类型和char 类型将被提升到int 类型。

2)整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。

file

(二)位运算符

位运算符用来对二进制位进行操作,如果操作数不是二进制,必须转换成二进制后再做位运算

原码:一个整数转换成二进制就是原码,最高位是符号位 0 表示正数 ,1 表示负数

单字节的5的原码为:0000 0101;

          -5的原码为:1000 0101;
反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反

单字节的5的反码为:0000 0101;

         -5的反码为:1111 1010;
补码:正数的补码就是其原码;负数的反码+1就是补码

单字节的5的补码为:0000 0101;-5 的补码为1111 1011

在计算机中,正数是直接用原码表示的,负数用补码表示

如果是个十进制负数的位运算

① 需要先把负数的二进制数算出(补码) 负数的原码,除符号位按位取反,再加1

② 然后位运算

③ 再把位运算结果算出原码,(补码转原码 → 补码减1得反码,反码除符号位按位取反得原码)

④ 再将原码转换成十进制

位运算在编程过程中基本用不上

file

file

file

file

file

file

file

file

file

(四)关系运算符

关系运算符决定值和值之间的关系,返回布尔型变量

file

用基本数据类型来做关系运算

file

file

file

file

file

file

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛部落-海牛博士,http://hainiubl.com/topics/150
楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-8 04:08

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表