「6」数据类型

1、Java数据类型

  ●Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

    ●JVM内存管理分为三大块:栈内存(调用方法时,在方法中声明的一些基本类型)、堆内存(new出来的对象,引用类型)、方法区(静态变量、常量、类的信息)。

    ●JVM会把整型默认为int类型(不超范围的可以自动转换成小类型,long需要末尾加l或L),带小数的默认为double类型(float需要末尾加f或F)。小数为零点几的可以省略零,也可以后面加eXX,代表乘以10的XX次方。数值前面加上括号,里面写上类型可实现强制类型转换。

    ●字符型char必须用单引号括起来(也可直接使用数值或十六进制的Unicode字符),在java中字符char类型使用的是占两字节的Unicode字符编码UTF-16(’\u0000’)。

  ●Java对于整数有三种不同的表现形式

    ●十进制:0-9,满10进一

    ●八进制:0-7,满8进一,以0开头

    ●十六进制:0-9,A-F,满16进一,以0x开头

  ●进制的基本转换

    ●十进制转二进制:除2取余数(小数为乘2取整数)

    ●二进制转十进制:乘2的幂数(小数为2的-1次方、-2次方)

    ●八进制、二进制互转:一位变三位、三位变一位

    ●十六进制、二进制互转:一位变四位、四位变一位

  ●负数的二进制表现形式

    ●对应的正数二进制取反加一

  ●数值转换练习:

    练习1:将二进制数1101.101转换为十进制数。(13.625)

    练习2:将十进制整数105.625转换为二进制整数。(1101001.101)

    练习3:将1011101001.110101B转换为十六进制数(2E9.D4)

2、基本类型转换

  ●语法

    ●自动类型转换(隐式转换):

      在某种条件下,系统自动完成类型转换也称隐含转换(Implicit casting)

      ●两种类型兼容

      ●目标类型大于源类型

      ●对于表达式,如果一个操作数为double型,则整个表达式可提升为double型

    ●强制类型转换(Explicit Casting)(显式转换):

      在一定条件下,程序员手动完成类型转换

      ●两种类型兼容

      ●一般目标类型小于源类型

  ●要点

    强制类型转换会丢失精度

  ●示例代码

    1、自动类型转换:

      int i = 10;

      double d = i;

    2、强制类型转换

      double d = 10.0;

      int i = (int)d;

  ●总结:byte<short(char)<int<long<float<double

  ●示例

    ●去年Android手机所占的市场份额是10,今年增长的市场份额是19.8,求今年所占的份额。

      int before = 10;                  //Android手机市场份额

      double rise = 19.8;            //增长的份额

      int now = before + rise;   //现在的份额      ← 编译出错,不能完成自动类型转换

      更改为int now = before + (int)rise;         //现在的份额      ←强制类型转换

时间: 2024-10-12 23:31:18

「6」数据类型的相关文章

「数据结构」和「数据类型」两个概念的本质是什么,区别与联系是什么?

数据结构:相互之间存在一种或多种特定关系的数据元素的集合. 数据类型:是指一组性质相同的值得集合及定义在此集合上的一些操作的总称. 网友观点:数据类型是数据的一种分类,是按照数据结构来分类的.数据类型的出现是为了把数据分成所需内存大小不同的数据. 数据结构强调结构,即元素间的关系:数据类型强调类型,即作用于元素的合法操作. 「数据结构」和「数据类型」两个概念的本质是什么,区别与联系是什么?

大数据和「数据挖掘」是何关系?---来自知乎

知乎用户,互联网 244 人赞同 在我读数据挖掘方向研究生的时候:如果要描述数据量非常大,我们用Massive Data(海量数据)如果要描述数据非常多样,我们用Heterogeneous Data(异构数据)如果要描述数据既多样,又量大,我们用Massive Heterogeneous Data(海量异构数据)--如果要申请基金忽悠一笔钱,我们用Big Data(大数据) 编辑于 2014-02-2817 条评论感谢 收藏没有帮助举报作者保留权利 刘知远,NLPer 4 人赞同 我觉得 大数据

非关系型数据库中的「关系」实现

Knowledge Dependence:阅读文本前,你需要了解基本的关系型数据库与非关系型(NoSQL)数据库的概念和区别,以及 MongoDB(Mongoose)的简单实践. ? 这两三年来,伴随着大数据(Big Data)的空前火热,无论是在工程界还是科研界,非关系型数据库(NoSQL)都已经成为了一个热门话题. 相比于传统的关系型数据库,非关系型数据库天生从理念上就给数据存储提供了一种新的思路.而在实际应用中,它往往更轻巧灵活.扩展性高,并且更能胜任高性能.大数据量的场景. 值得一提的是

「译」一起探讨 JavaScript 的对象

「译」一起探讨 JavaScript 的对象 原文地址:Let's explore objects in JavaScript 原文作者:Cristi Salcescu 译文出自:阿里云翻译小组 译文链接:github.com/dawn-teams/- 译者:灵沼 校对者:也树,眠云 一起探讨 JavaScript 的对象 对象是多个属性的动态集合,它有一个链接着原型的隐藏属性(注:__proto__). 一个属性拥有一个 key 和一个 value . 属性的 key 属性的 key 是一个唯

Java的参数传递是「按值传递」还是「按引用传递」?

Java 编程语言中最大的困惑之一就是: java 是按值传递还是按引用传递.我在面试中经常会问面试者这个问题,但还是有很多面试者对这个问题的理解不是很正确. 有很多面试者是这样理解的: 如果传递类型为基础数据类型,则按值传递, 如果传递类型为类,则按引用传递. 这样的理解正确吗?他们甚至还可以写出示例代码来验证他们的想法,让我们来一起看一看大多数人是如何验证"基础类型按值传递,非基础类型按引用传递"这个想法的: 基础类型数据作为参数传递 /** * 基础类型数据作为参数传递 * @A

AC日记——「HNOI2017」单旋 LiBreOJ 2018

#2018. 「HNOI2017」单旋 思路: set+线段树: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #define maxtree maxn<<2 int val[maxtree],tag[maxtree],L[maxtree],R[maxtree],mid[maxtree]; int op[maxn],ki[maxn],bi[maxn],cnt,size,n,ch[maxn]

「随笔」基于当下的思考

马德,说好的技术blog,变成日记本了... 下午的时候莫名其妙的感到很颓废,因为自己的不够强大感到忧虑和危机感十足.现在每每行走在技术的道路上,常觉得如履薄冰,如芒在背. 上大学之前和现在的心态其实差别挺大的,视野的开阔远远不止局限于自己的脚下.不过,这里的「上大学之前」只是一个时间描述词,并不觉得大学是最适合学习的地方,我很失望. 世界上的人无论性别,区域,宗教,兴趣爱好,总可以在互联网上找到志趣相同的人,总是可以不断打破自己的常识与惯性思维.总是有在相同领域比自己更强的人,挺好的. 关于知

「Unity」与iOS、Android平台的整合:3、导出的Android-Studio工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

开放的智力8:实用「成功学」

可实现的「成功学」 现在我想为这里的年轻人介绍一种可实现的「成功学」.希望这个我自创的理论,可以改变很多人的一生. 当我们评价一个事情值不值得去做.应该花多少精力去做的时候,应该抛弃单一的视角,而是分两个不同的维度来看,一是该事件将给我带来的收益大小(认知.情感.物质.身体方面的收益皆可计入),即「收益值」:二是该收益随时间衰减的速度,我称为「收益半衰期」,半衰期长的事件,对我们的影响会持续得较久较长. 这两个维度正交以后就形成了一个四象限图.我们生活.学习和工作中的所有事情都可以放进这个图里面