专栏首页黑泽君的专栏Java语言中:在数据类型的讲解中补充的几个小问题

Java语言中:在数据类型的讲解中补充的几个小问题

============================================================================= 1:在定义Long或者Float类型变量的时候,要加L或者f。   整数默认是int类型,浮点数默认是double。   byte,short在定义的时候,他们接收的其实是一个int类型的值。   这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。 例如:     byte a = 50;  //其实50是int类型的。     short b = 100;   //其实100是int类型的。 ----------------------------------------------------------------------------- 2:byte值的问题:即默认是有符号的。   byte b1 = 127; //127   byte b2 = (byte)128; //-128   byte b3 = (byte)129; //-127   byte b4 = (byte)130; //-126   ......   byte b4 = (byte)255; //-1   byte b4 = (byte)256; //0   byte b4 = (byte)257; //+1 ---------------------------------------   byte b1 = -128; //-128   byte b2 = (byte)-129; //+127   byte b3 = (byte)-130; //+126   byte b4 = (byte)-131; //+125   ......   byte b4 = (byte)-255; //+1   byte b4 = (byte)-256; //0   byte b4 = (byte)-257; //-1 --------------------------------------- 所以有个规律是:在任何范围内,如果给个较大的值,在截取的时候,当比最大值还大的时候,又会绕回去从最小的开始。 所以有个规律是:在任何范围内,如果给个较小的值,在截取的时候,当比最小值还小的时候,又会绕回去从最大的开始。 ---------------------------------------   byte的范围:-128 ~ 127   128: 1000 0000   -128:1000 0000 (可以这样认为:这里的1即是符号位,也是数值位。)   其实1000 0000表示-0。   其实实际上byte的范围是 -127,-126,-125,...,-1,-0,+0,+1,...,+125,+126,+127   但是呢我们一般认为的是0不分正负的,所以为了区别以及为了超过范围数还能绕回去,叫做数据的回环!,就上面那样做了。 ----------------------------------------------------------------------------- 3:数据类型转换之默认转换:   byte,short,char --> int --> long --> float --> double           默认转换 但是呢?     long: 8个字节     float:4个字节 为什么long会在前面呢? --------------------------------------- 原因是:     A:它们底层的存储结构不同。所有的整数是按照1010...去存储的,但浮点数是按照科学计数法的表示的,所以存储的有效数字位以及次幂。     B:这样就导致了float表示的数据范围比long的范围要远远大。       long:-2^63 ~ 2^63-1       float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 >> 2^63-1 --------------------------------------- Java浮点类型常量有两种表示形式:     十进制数形式,     如:3.14         314.0     科学记数法形式, 如:3.14e2    3.14*10^2   Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。   所谓的有效数字:具体地说,是指在分析工作中实际能够测量到的数字。所谓能够测量到指的是包括最后一位估计的不确定的数字。 例如:对于一个近似数,从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。 ----------------------------------------------------------------------------- 4:面试题:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?   可以。因为java语言中的字符char占用两个字节。   Java语言采用的是Unicode编码。(Unicode是全球语言统一编码) =============================================================================

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何实现VMware下Ubuntu系统和Windows系统文件之间的复制和粘贴?

      2、在linux中使用 samba服务 ,这样可以与windows共享,复制就不是问题了。

    黑泽君
  • 如何判断一个程序是否会有线程安全问题?

    黑泽君
  • 大数据技术之_19_Spark学习_03_Spark SQL 应用解析小结

    ========== Spark SQL ========== 1、Spark SQL 是 Spark 的一个模块,可以和 RDD 进行混合编程、支持标准的数据...

    黑泽君
  • Websocket HandShake Sec-WebSocket-Accept 生成策略

    先阅读http://tools.ietf.org/html/rfc6455 规范,然后实践。 思路如下:     服务端先获得请求头部的Sec-WebSock...

    囚兔
  • C# 热敏打印机 Socket 网络链接 打印 图片 (一)

    跟着阿笨一起玩NET
  • Android App包瘦身优化实践

    随着业务的快速迭代增长,美团App里不断引入新的业务逻辑代码、图片资源和第三方SDK,直接导致APK体积不断增长。包体积增长带来的问题越来越多,如CDN流量费用...

    美团技术团队
  • CTF逆向--安卓篇

    题目(来源:Jarvis-OJ): Androideasy DD Android Easy DD - Android Normal FindPass Smali...

    安恒网络空间安全讲武堂
  • Android-加解密

    不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可...

    android_薛之涛
  • 为何 C# 的指针不是可空类型

    在 C# 里面的指针实际上使用 int32 或 int64 存储,在 C# 里面的指针需要开启不安全代码才能使用,这里的指针是一个结构体,而结构体是存在值的

    林德熙
  • 原 (手工)base64加密解密

    魂祭心

扫码关注云+社区

领取腾讯云代金券