//今天说一下java的八大基本类型:
 // 数字类型:byte(8位)、short(16位)、int(32位)、long(64位)
 //浮点类型:float(32位)、double(64位)
 //字符类型:chart(16位)Unicode字符
 //boolean类型:只有2个值true和false。个人理解为是1位的,因为是有0和1表示的。
 //八大基本类型都有最大值和最小值。今天来看下他们分别代表的最大值和最小值
 System.out.println("byte最小值:"+Byte.MIN_VALUE);
 System.out.println("byte最大值:"+Byte.MAX_VALUE);
 //通过代码输出得知byte的取值在-128~127之间。这里要问为什么,为什么是-128~127的区间。
 //我想这个问题要完全明白只能找计算机的发明者们来解释了。以下的内容都是个人理解,有错误的地方还请大家在回复中指出
 //简单知道,计算机底层是二进制计算的。Byte是8位的,我们反推一下-128和127的二进制是:1111111(127)、-00000001(-128)
 //127的二进制加1的结果是:1111111+1=00000001
 //在讲二进制转换为十进制的过程:1111111 使用java.lang.Math的pow方法求2的次方十进制数相加
System.out.println( Math.pow(2,0)+"+"+Math.pow(2,1)+"+"+Math.pow(2,2)
        +"+"+Math.pow(2,3)+"+"+Math.pow(2,4)+"+"+Math.pow(2,5)+"+"+Math.pow(2,6)+"=127.0");
//结果为:1.0+2.0+4.0+8.0+16.0+32.0+64.0=127.0
 //所以00000001的值就是Math.pow(2,7)也就是2的7次方。这里有个问题就是Byte是8位的负数是-128可以理解了,但正数为啥是127那。
 //也就是说Byte正数的实际占位是7位二进制的1111111。是不是考虑到有0的存在,0也是正式的一位,而负数是由-1开的的。这个只是猜测。
 //关于为啥8位的正数只是占满二进制的7个位置,就不纠结了。只要知道8位区间为啥是-128~127就可以了。
 //所以对于数字类型类推:Byte(8位)的区间是-2的7次方(-2^7)到2的7次方减去1(2^7-1)
 //short(16位)的(-32768~32767)区间(-2^15)到(2^15-1)
 //int(32位)的(-2147483648~2147483647)区间(-2^31)到(2^31-1)
 //long(64位)的(-9223372036854775808~9223372036854775807)区间(-2^31)到(2^31-1)
 //上面说的都是数字类型,下面说下两种浮点类型float和double 浮点型是遵守IEEE 754标准。提到标准一定是有一群计算机界牛逼到牛逼
 //的人在一起制定。百度简单看来了下完全看不懂,涉及到高等数学。
 //通过java提供的方法
 System.out.println("Float最大值:"+Float.MAX_VALUE+";Float最小值:"+Float.MIN_VALUE);
 //Float最大值:3.4028235E38;Float最小值:1.4E-45
 System.out.println("Double最大值:"+Double.MAX_VALUE+";Double最小值:"+Double.MIN_VALUE);
 //Double最大值:1.7976931348623157E308;Double最小值:4.9E-324
 //我们可以看到在浮点型的最大最小值中有个E,这个E代表的含义是:1.4E-45就是1.4*10^-45;1.4E10就是1.4*10^10。
 //直白点说就是1.4E-3就是0.0014;1.4E3就是1400。E后边的是负数就是向小数点后移多少位;E后边的事正数就是向小数点前移多少位
 //这么说下来,boolean类型就是1位的了,只是0和1的值,0代表false,1代表true。
 //char类型是16位的Unicode字符
 System.out.println("Char最大值:"+(int)Character.MAX_VALUE+";Char最小值:"+(int)Character.MIN_VALUE);
 //Char最大值:65535(\uffff);Char最小值:0(\u0000);
 //Unicode是一张编码表,将全世界所有用到的字符类型都编入到Unicode表中,然后根据\u0000的编码位置查找对应的字符。
 //具体的请百度Unicode编码

java八大基本类型介绍的更多相关文章

  1. 一文详解 Java 的八大基本类型

    自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制. 作者 | Jeremy Grifski 译者 | 弯月,责编 | 郭芮 出品 | ...

  2. Android java传递string类型数据给C

    本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...

  3. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. Java泛型类与类型擦除

    转载自:http://blog.csdn.net/lonelyroamer/article/details/7868820 一.Java泛型的实现方法:类型擦除 前面已经说了,Java的泛型是伪泛型. ...

  5. 深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题(转)

    写在前面: Java SE5 提供了一种新的类型 Java的枚举类型,关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能 ...

  6. 深度分析Java的枚举类型—-枚举的线程安全性及序列化问题

    原文:深度分析Java的枚举类型--枚举的线程安全性及序列化问题 枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和clas ...

  7. Java 4- Java 变量类型

    Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ...

  8. [ JAVA编程 ] double类型计算精度丢失问题及解决方法

    前言 如果你在测试金融相关产品,请务必覆盖交易金额为小数的场景.特别是使用Java语言的初级开发. Java基本实例 先来看Java中double类型数值加.减.乘.除计算式实例: public cl ...

  9. Java enum枚举类型

    java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum En ...

随机推荐

  1. 《从零开始学Swift》学习笔记(Day 35)——会使用下标吗?

    原创文章,欢迎转载.转载请注明:关东升的博客 看下面的示例代码是不是使用过: var studentList: String[] = ["张三","李四",&q ...

  2. 《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift

    Swift 2.0学习笔记(Day4)——用Playground工具编写Swift 原创文章,欢迎转载.转载请注明:关东升的博客 用Playground编写Swift代码目的是为了学习.测试算法.验证 ...

  3. Oracle 逻辑体系

    Oracle 逻辑体系 主题 Oracle 逻辑体系 参考资料   Oracle 逻辑体系   表空间.模式.用户.段.区.块 Oracle中的数据逻辑上存储于表空间,物理上则存储于属于表空间tabl ...

  4. JFrame上添加、删除Jpanel后动态显示界面问题

    JFrame中动态添加或者删除JPanel后总是不正确显示需要的界面问题: 1.删除panel后还是显示之前的界面,新删除的panel在界面上并没有被删除: 2.删除panel1后添加新的panel2 ...

  5. SQLServer与ASP中DATEDIFF函数区别

    一.SQLServer: 格式: DATEDIFF(interval,startdate,enddate) interval参数: 年-yy,yyyy 季度-qq,q 月-mm,m 年中的日-dy,y ...

  6. 常用模块一(os模块、序列化模块(json和pickle))

    一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...

  7. 转载:Linux下查看/修改系统时区、时间

    一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" ...

  8. 开机提示memory size decreased怎么办?

    ytkah的办公电脑实在是hold不住,win7用2G的内存,基本是在等待中度过的,没有新的只能考虑加格内存了,采购嘛,需走一大堆流程,跟领导请示从其他硬件需求不是很高的电脑那边拔一根内存条吧,小C的 ...

  9. 使用Kotlin开发Android应用(II):创建新工程

    在基本了解什么是Kotlin以及Kotlin可以做什么之后,接下来就到了配置Android Studio并使用Kotlin开发Android apps的时候了.首次配置Android Studio需要 ...

  10. OVF and OVA

    最近测试的东西有关于ovf 和ova等相关用例,在网上找了点内容摘抄了下来. 一.什么是OVF文件 开源虚拟化格式OVF文件是一种开源的文件规范,它描述了一个开源.安全.有效.可拓展的便携式虚拟打包以 ...