黑马程序员_Java基础(数据类型,数据类型转换,scanner语句总结)

来源:互联网 发布:stat是什么软件 编辑:程序博客网 时间:2024/06/05 08:52
------- android培训、java培训、期待与您交流! ----------

                                                         人生没有选择题,只有证明题,一直走在奋斗的路上!

数据类型

(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
(2)分类:
A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。
(3)基本数据类型
A:整数     占用字节数
byte 1
short         2
long 8
B:浮点数
float 4
double         8
C:字符
char 2
D:布尔
boolean 1
注意:
整数默认是int类型,浮点数默认是double。
长整数要加L或者l。
单精度的浮点数要加F或者f。
数据类型转换
(1)boolean类型不参与转换
(2)默认转换
A:从小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
(4)思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;
第一个是表示f1本身就是一个float类型的数据
第二个理解是将double类数据转换成float类型,再将值赋值给f2
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
第二句会出现问题,因为变量在进行相加的时候,先看数据类型,byte类进行计算时,要转换成int类型进行计算
常量相加时,先计算结果,看数据是否在赋值的变量范围内,如果不在才会报错。
C:下面的操作结果是什么呢?
byte b = (byte)130;
分析:
A:获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010

反码: 1 0000001

原码: 1 1111110
D:字符参与运算
是查找ASCII里面的值
'a' 97
'A' 65
'0' 48

System.out.println('a');
直接输出这个字符在ASCII里面的对应的值
System.out.println('a' + 1);
输出ASCII值与1相加的结果
E:字符串参与运算
这里其实是字符串的连接
System.out.println("hello"+'a'+1);
输出“helloa1”
System.out.println('a'+1+"hello");
输出98hello
System.out.println("5+5="+5+5);
输出“5+5=55”
总结:
字符串和其他类型做+运算时,结果是字符串类型,这里的+不是加法运算符,而是赋值运算符

(5)数据类型中可能遇到的问题
1: 在定义Long或者Float类型变量的时候,要加L或者f。
整数默认是int类型,浮点数默认是double。

byte,short在定义的时候,他们接收的其实是一个int类型的值。
这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。

2:byte值的问题
byte b1 = 127;
byte b2 = (byte)128; //-128
byte b3 = (byte)129; //-127
byte b4 = (byte)130; //-126

byte的范围:-128 ~ 127

128:10000000
-128:10000000 (这里的1即是符号位,也是数值位)

3:数据类型转换之默认转换
byte,short,char -- int -- long -- float -- double

long: 8个字节
float:4个字节

A:它们底层的存储结构不同。
B:float表示的数据范围比long的范围要大
long:2^63-1
float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

4:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
可以。因为java语言中的字符占用两个字节。

Java语言采用的是Unicode编码。
运算符
(1)算术运算符
A:包括:+, -, * ,/ , %, + +, --
B:+的用法:a:加法 b:正号 c:字符串连接符
C:/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
D:++和--的用法
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
放在操作数的后面:先参与操作,再自增或者自减
(2)赋值运算符
A:赋值运算符包括:=,+=,-=,*=,/=,%=等
B:=叫做赋值运算符,也是最基本的赋值运算符
例如:int x = 10; 把10赋值给int类型的变量x。
C:扩展的赋值运算符的特点
隐含了自动强制转换。
面试题:
short s = 1;
s = s + 1;
short s = 1;
s += 1;
分析:1默认为int类型,在与s进行运算时,s要自动类型提升转换为int 类型。而s + = 1,可以看成short s =(short)( s + 1);所以不会报错。
(3)比较运算符
A比较运算符包括::==,!=,>,>=,<,<=
B:无论运算符最终结果是boolean类型。
C:==与=是不同的,需要格外注意。
(4)逻辑运算符
A:逻辑运算符包括:&,|,^,!,&&,||
B:逻辑运算符用于连接boolean类型的式子
C:结论
&:有false则false
|:有true则true
^:相同则false,不同则true。
!:非true则false,非false则true
&&与&和| 和||之间的异同点
&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
(5)位运算符
A:^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
(6)三元运算符
A:格式
比较表达式?表达式1:表达式2;
B:执行流程:
首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。
键盘录入
格式:
A:导包
import java.util.Scanner;
位置:在class的上边
B:创建对象
Scanner sc = new Scanner(System.in);
C:获取数据
int x = sc.nextInt();
D:获取字符串
String str =sc.nextLine();


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我的手机号被别人绑定了快手怎么办 微信密码忘记了没绑定手机号怎么办 扣扣绑定银行卡忘记密码了怎么办 扣扣忘记密码了又换手机号了怎么办 微信订阅号里有删除后的信息怎么办 申请微信公众号邮箱已被占用怎么办 公众号验证没有对公账户怎么办 qq密码忘记了怎么办手机绑定没有 我的扣扣怎么申诉都找不回来怎么办 装修装的不好又没有签合同怎么办 日本免税的零食不小心拆了怎么办 闲鱼同意买家退货了买家不退怎么办 手机里淘宝钱付了不发货怎么办 百度云下载手机储存空间不足怎么办 苹果8的照片储存空间满了怎么办 为什么下载的软件已停止运行怎么办 苹果手机刷机忘记注册邮箱了怎么办 刺激战场模拟器注册已达上限怎么办 用模拟器玩刺激战场注册上限怎么办 微信解除实名认证后退款怎么办 苹果为什么qq收消息有延迟怎么办 qq忘记密码手机号也换了怎么办 扣扣空间圈人时照片服务错误怎么办 删了qq好友怎么找回来怎么办 苹果5s语音控制打开了怎么办 lv迷你水桶包肩带长了怎么办 在香港买个lv包包过海关怎么办 国际快递手表被海关查应该怎么办 把档案放到人才市场后报到证怎么办 皮表带带久了有异味怎么办 英语中用词不当和拼写错误怎么办 爬楼梯的购物车车轮坏了怎么办? 帮别人买东西不给我钱怎么办 老师念错名字有同学指出来你怎么办 老公婚前买的房子婆婆想霸占怎么办 我想查我的基金收益情况怎么办 儿童票买好了但大人退票了怎么办 没有享受到国家政策的农民怎么办? 股票涨了没抛然后一直跌怎么办 苹果手机放久了开不了机怎么办 部门要辞退你你不想走该怎么办