Java学习第二天

1、UML 看李刚Java疯狂讲义第29-36页。( 本笔记是跟着李刚老师学的,部分内容摘自李刚老师讲义,版权归李刚老师所有^_^

2、Java中,除了8个基本数据类型(boolean、byte、char、short、int、long、float、double)外,其余的一切都是对象。




3、Java是一门强类型语言(即每个变量或表达式都有一个在编译时就确定的类型),所有变量必须先声明后使用,从而可以保证程序更加健壮、安全,并可以在编译阶段发现源代码中的错误。



当把任何基本数据类型和字符串通过“+”运算时,基本类型就会转换成字符串,例如10+"hello",打印出10hello,
"hello"+3+5,打印出hello35,
3+5+"hello",打印出8hello(3+5计算结果转换为字符串,因为在表达式从左到有计算,但3+5时还没有字符串参与运算)

强制类型转换(从右到左)是,如果浮点数转换为整数,则自动舍弃小数部分。例如 int a = (int)32.88,则a=32;如果把一个较大整数强制转换为一个较小整数,则会发生数据溢出。例如  int a= 233;byte b = (byte)a,则b=-23。

 

基本类型数据类型的自动提升

当一个算术表达式中包含多个基本类型的值时,整个算术表达式的类型将自动提升。Java规定一下提升规则:

a、所有的byte、short、char类型自动提升为int类型。

b、整个算术表达式的类型自动提升到与表达式中最高类型变量的类型一致。

例如:

byte b = 10;
b = b+1;
//上一句出错,因为此时右侧的b自动提升为int类型,左侧的b还是byte类型,数据范围不满足
b+=1;//ok,因为这种方式b不会自动类型提升
char c0 = 'a'+1;//Ok 对于字符型变量,如果左侧为char变量,如该例子c0,右侧变量即便提升为int,也可以正常运行。
char c1 = b+1;//Error。如果包含了别的类型,由于不能转换为char。原因在b。
int a=10;
char c=1;
float f=.215;
float result=a+b+c+f+f/a;//ok,因为表达式结果与级别最高的类型f一致。

int inta=100,intb=3;
int intresult = inta / intb;//Ok,因为表达式结果和最高类型一致(int),把结果截取整数部分赋值给intresult

自加(++)自减(--)运算:只能对变量进行,不能用于表达式。另外,对于一个表达式中仅仅只有自加或自减操作,则操作符在前后结果一样。例如++a;a++;结果一样,不产生影响。但 int a; int b; a=(++a)+b;int c = (a++)+b;则有影响,因为表达式不仅仅只包含自加自减操作。

==逻辑运算符:如果比较的连个操作数都是数值型,即便它们的类型不一样,只要值相等,就返回true。例如10==10.0(true); 'a'==97(true).若果两个操作数为引用类型,比较的是引用(即地址),只有两个引用指向同一个对象时,才为true。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值