您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

Java学习笔记(三):数据类型转换及运算符

来源:网络整理 浏览:314次 时间:2020-09-24
Java学习笔记(三):数据类型转换1.类型转换
1.自动类型提升:当byte short char在参与运算时会自动提升为int类型。    如果还有long、float、double类型参与运算,则会相应的提升为long、float、double类型/*例1 byte a=10;      byte b=20;      byte c=a+b;     编译会报错,因为s,b参与运算时提升为int类型,byte接收不了int类型  例2 byte a=10;      byte b=20;      long c=1L      byte d=a+b+c;报错,abc都提升为long,计算结果也为long,byte接受不了*/      *常量优化机制:在多个常量运算时,会先把结果计算出来,然后在看结果是否在数据范围内,在则不报错    如:byte r=3+4;//不报错,如果结果超过127则报错***优先级:byte → short,char → int → long → float → double    优先级高 → 优先级低:强转;int c =(int)17.2    优先级低 → 优先级高:自动转换;2.强制类型转换:丢弃多余字节,可能发生精度损失。    格式:byte c = (byte)a+b;//a,b为byte    *补充知识点1:定义 char ch = '我';    JAVA采用GBK编码就不会报错,因为其占两个字符;    如果使用UTF-8编码,一个汉字占用3个字节,char只能存储2个字节,故会报错;    *补充知识点2:操作大数字的时候,注意溢出问题    int money = 1000_000_000;    int years = 20;    int total = money*years;//-147836480,计算时数据已经溢出    long total = money*years;//结果也为-147836480,原因是,计算结果转换之前(int)money和(int)years已经完成计算,数据已经溢出    解决方法:    long total3 = money*((long)years);//计算前先把一个数转换成long3.字符参与运算    char ch ='a';    int r = ch+1;    运行结果为98。字符在参与运算时,会查找ASCII码表,用字符运算时就是这个字符编码的10进制值    常用:a 97; A 65; 0 48

2.运算符
1.+ 加号,有两层作用    第一个作用,起数学方面相加作用    第二个作用,起一个连接符的作用    拼接符:当加号的运算两边有任意一边是一个字符串,那么加号就会起连接符的作用,将两端内容拼接起来形成一个新的字符串    每次运算前都会看符号两边有没有字符串:    System.out.println(2+"22");//222    System.out.println(20+30+"22");//5022    System.out.println("22"+1+2);//22122. += 如果对short类型数据进行操作时超过范围,会自动进行数据转换3.区分 逻辑运算符 和 位运算符    逻辑运算符:与(&&) 或(||) 非(!)    位运算符:与(&) 或(|) 取反(~) 异或(^)        例题:最快计算2*8的方法        答:位运算。位运算直接和底层打交道,效率极高。(2<<3),2左移3位,结果16    三元运算符:x?y:z;    如果x为真,则结果为y,否则为z。

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com