前两篇已经将开发环境搭建完成,如果你已经按之前的教程按部就班的完成了部署,那么世界上最优秀的编程语言之一和世界上最优秀的IDE之一已经出现在你的电脑上(此处应有掌声),如果你还没入门,或者正在台阶上踱步,可能你还不能理解这个“最优秀”的含义,没有关系,这顿美味需要我们来细嚼慢咽才能品尝到它的独特之处。

接下来,就让我们一起来正式揭开Java的面纱。

Java是一门简单、面向对象、高性能、安全性高、健壮性强、移植性好的语言(一本正经的胡说八道中)。Java的语法跟C++很像,如果有过C++学习经验的人,学习Java上手会容易很多,Java一开始很多特性都跟C++相同,比如基本的程序结构、类、语法规则等等,但是删除了其中很多复杂的东西,比如头文件,结构,联合,操作符重载、虚基类等等,看到这里,学过C++的你可能会觉得很高兴,终于不用跟那些奇奇怪怪的东西打交道了。别高兴的太早,因为,还有让你更高兴的(手动滑稽),那最头疼的指针操作部分,也去掉了,可以说是一个纯净简化版的C++,但也添加了很多自己的特性,没有了多重继承,取而代之的是接口和内部类,由于不允许直接操作指针,所以就不会因为对指针的一顿瞎操作而出现神奇的bug,当然,也少了很多寻找bug的乐趣(尴尬),Java在安全性能上是可以信任的,因为永远不会存取一个坏的指针,而造成内存分配的错误,也不存在内存泄漏问题。所有那些因为指针引起的安全隐患,都不存在的。

也许说了这么多,对于新手的你,看的云里雾里,不知所云,没关系,你只需要知道,Java上手并不难,只比绕操场跑上十来圈难那么一点点,但如果你只是想来散散步的话,那你可能没有机会享受到汗流浃背后的满足感了。

言归正传,Java可以写桌面、可以写Android、可以写服务器、可以写企业级业务、可以写互联网业务。如果你以后想在安卓开发、服务器开发、网站后台开发和维护上有所发展,那Java将是你不错的选择。如果只是想来膜拜一下这门常年位居编程开发语言排行榜榜首的语言,那也可以来看看,俗话说的好,技多不压身嘛,以后见了不会编程的朋友,还可以装个X说我也是学过Java的人(憋笑)。

简单介绍了Java的功能后,能坚持看到这说明你已经有点小心动,想要继续学下去,那就跟我一起来进行系统的学习吧。

要学习Java,自然要从基本的数据类型说起,那么,什么是数据类型?顾名思义嘛,就是不同的数据有不同的类型,就像人按性别分男女,按年龄分老中少,按性情分攻受(咳咳,这里只是为了举个栗子),在java里,基本的数据类型有四种,整数型,浮点型,布尔型和字符型。下面来一一介绍。

整型,自然就是用来存放整数的, 比如说:1,2,3,4,100,等等,一般的整数都可以用int型来存放和操作,整型还可以根据取值范围需求不同再细分成int型,short型,long型,byte型,这几个兄弟排个序,从大到小分别是long、int、short、byte。long型最大,占用8个字节(在java中,讨论最小的存储单元是bit,也就是位,byte是字节,跟位的换算是:1byte=8bit,1kb=1024bytes=2^10bytes),作为整型中的老大,占用8*8=64位,所以除去第一位用于储存符号位,其它63位可以用来表示数值大小,所以它的表示范围为:-2^63 — 2^63-1。大概是百亿亿的级别,所以要是用来存放你的银行卡余额的话,还是不要劳烦long型了(滑稽)。作为最常用的整数型老二,int型可谓是人尽皆知,几乎成了整型的代表人物,它只占用4个字节,取值范围为-2^31 — 2^31-1,比21亿稍微多一点。而老三short,顾名思义,比较“短”,不能跟18cm的long型相提并论,只占用2个字节,表示范围为-2^15 — 2^15-1,也就是-32768 — 32767,做小范围的加减乘除的话是够用的。最后介绍的老四,byte型,只占用一个字节,可谓是相当拮据,表示范围为 -128-127。所以存余额的话,byte,short型太短,long型太长,所以用int型最经济实惠。

初学编程的人可能会问了,好好的整数型,还分那么细干嘛。这你就不懂了吧,举个栗子,因为用于存放数据的内存空间是以位为基本单位,可以理解为很多很多相同的小盒子,相同的数据类型需要用同样大小的空间,不然程序就不知道数据的开始和结束位置,用数据头部来存放大小长度信息显然有些浪费空间,那么现在的问题是,一个整数,用多大的空间合适?你可能会觉得,都用同样大小的空间不就好了,那都用8个字节来存储,用来存放大数值的时候很好用,但是用来存放你的年龄的时候,仿佛浪费的空间就有点多了,就好比现在你有一个篮球,一个网球,一个足球,一个乒乓球,都需要用同样大小的盒子来单独存放,那规格自然只能按最大的来算,当你往那个大盒子里放一个乒乓球的时候,不觉得很浪费空间吗。所以为了避免这样不必要的浪费,设计多种整数型是有必要的。当然,也没有必要对于内存太过斤斤计较,如果不是在搞算法研究,不是对时间跟空间效率要求很苛刻的条件下,基本上都用int型就好了。毕竟一般情况,运行效果比运行效率更重要。

接下来说浮点类型,为什么叫浮点类型,自然是用来表示浮点数的(废话),那什么是浮点数,这。说来又要有一段文章了。在计算机中,表示小数有两种方法,一种叫定点,一种叫浮点。

以32位程序为例,定点的意思是,小数点固定在 32 位中的某个位置,前面的是整数,后面的是小数。小数点具体固定在哪里,可以自己在程序中指定。例如上面的例子,小数点在 23 bit 处。无论你是124.25,是0.5, 还是100, 小数点都在 23 bit 的位置固定不变。

浮点数是相对定点数而言的,浮点数的表示方法为:最高的 1 位是符号位 s,接着的 8 位是指数E,剩下的 23 位为有效数字 M。例如:

5 DEC = 101 BIN = 1.01 x 2^2

100 DEC = ‭01100100‬ BIN = 1.100100 x 2^6

0.125 DEC = 0.001 BIN = 1 x 2^-3

现在,小数点的位置就漂浮不定了。如果想了解关于浮点数的存储问题,可以看看这篇文章,https://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html

当然,新手的话建议先别看了,免得被吓跑了,你只需要知道,浮点型就是用来存取带小数点的数就可以了。

浮点数也分成两个类型,float和double,float占用四个字节,取值范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double占用八个字节,取值范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

你如果对于这两个类型傻傻分不清楚,那就只用double类型就好了,java里最常用的浮点类型就是double类型。

扯的有点多了,布尔型都等不及了,别担心,布尔型(boolean)是最简单的,只有真(true)跟假(false)两种状态。

最后就是字符型(char),用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加’ ‘,比如 ‘1’表示字符’1’而不是数值1。

好了,基本数据类型就介绍这么多了,总的来说,整型用来存放整数,浮点型用来存放小数,布尔型用来存放真假,主要用于逻辑判断,字符型用来存放单个字符,比如:’a’,’b’,’c’等等。Java中整数默认为int型,小数默认为double型。

最后再说一点,不同数据类型之间也是可以相互转换的。Java中也是有着弱肉强食的规则,谁占地多谁就大,一个整数型int跟一个浮点型double一起运算时,会自动转化为double型,这样就能无精度损失的进行数值运算了。下面是数据类型之间的合法转换:

那我非要进行“非法转换”怎么办,一个占用8字节的double型非要转换成占用4字节的int型该怎么办,那就只能用强制类型转换了,但这样可能会造成精度的丢失。具体情况暂时不多做介绍了,不然又要说半天才能说的完了。

好了,今天的内容到此结束,基本数据类型都看了个遍,如果还是有些不明白,也没有关系,一回生二回熟嘛。来日方长,日后再说吧。(溜了溜了)

java数据类型入门程序_「JAVA零基础入门系列」Day3 Java基本数据类型相关推荐

  1. java hbase 删除数据结构_「从零单排HBase 09」Hbase的那些数据结构和算法

    在之前学习MySQL的时候,我们知道存储引擎常用的索引结构有B+树索引和哈希索引. 而对HBase的学习,也离不开索引结构的学习,它使用了一种LSM树((Log-Structured Merge-Tr ...

  2. [免费专栏] Android安全之APK应用程序分析「附带Smali基础语法解析」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  3. 九宫怎么排列和使用_剪映零基础入门教程第三十七篇:一学就会系列之九宫格小程序配音...

    很多玩儿抖音的朋友都看过九宫格视频,但是并不是每个玩抖音的人都会制作这个九宫格视频,实际这个需要借助小工具来帮忙,而常用抖音的朋友们会对剪映更加熟悉一些,且九宫格视频在剪映内的制作方式则比较简单.那么 ...

  4. 如何解析lvx文档_建站零基础入门:手把手教你如何自助建站

    使用阿里云云服务器ECS搭建网站有多种方式,本文主要介绍自助建站的流程. 建站方式 使用ECS建站的方式如下表所示.请根据实际业务需求,选择适合您的建站方式. 自助建站步骤 1.选择服务器. 不同网站 ...

  5. sql数据库教程百度云_绘画自学零基础入门教程|五天学会绘画pdf百度云下载!...

    绘画自学零基础入门教程|五天学会绘画pdf百度云下载!画画是可以让人留存记忆的事情.我自己就很喜欢画画来记录生活中一些特别的日子.场景还有我的家人朋友们.有时候,比照片更有故事感和纪念意义-有空拿出来 ...

  6. python零基础入门教程视频下载-Python零基础入门学习视频教程全42集,资源教程下载...

    课程名称 Python零基础入门学习视频教程全42集,资源教程下载 课程目录 001我和Python的第一次亲密接触 002用Python设计第一个游戏 003小插曲之变量和字符串 004改进我们的小 ...

  7. simulink仿真及代码生成技术入门到精通_Simulink仿真零基础入门到精通实用教学教程 自学全套...

    Simulink仿真零基础入门到精通实用教学教程 自学全套,以教程文字为主,毕业论文和报告均可以借鉴. Simulink是电气工程必学的模型仿真专业工具软件,非常的实用.小编在全网中搜索都没有找到非常 ...

  8. 私钥经过哈希计算可以产生公钥_「区块链基础概念100」:公钥和私钥 | 027

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 投资区块链,猛戳:火星财经App下载 来源:学习区块链 原文标题:「区块链基础概 ...

  9. python编程入门课 视频教程-Python编程零基础入门课

    [课程简介] 本课程面向零基础小白,以Python最热门的应用领域基础为目标,设计强延展性的课程大纲.课程内容从Python的概念和安装开始,不仅讲授每一个Python本身的基础知识点,包括数据结构. ...

  10. 电脑入门完全自学手册_3DMAX零基础入门到精通的学习路线和教程

    没有美术基础可以学建模吗?毋庸置疑,只要肯学都是可以的!那么我们今天来说说零基础学习建模要着重注意什么.最高效最快速的入门学习方式:看知识兔视频课程,跟着知识兔老师操作,听知识兔老师讲解,初学者不要自 ...

最新文章

  1. C#和F#默认接口方法更新
  2. pandas KeyError [‘1‘] not found in axis 错误的解决方法
  3. 应用hibernate中的hql语句对日期的操作总结
  4. Java开发者写SQL时常犯的10个错误
  5. 用java画一个网格_用SolidWorks画一个空心挂钩,这种画法稍微有点麻烦
  6. hdu 5358(尺取法)
  7. 构造方法,this,super关键字
  8. springboot抑制log中的info信息
  9. Jquery 获取元素内容
  10. 网管,请别随意关闭默认共享
  11. PHP使用CURL使用问题
  12. 转 C#正则表达式小结 匹配
  13. Linux(ubuntu)系统键盘指法打字练习软件汇总
  14. ant design vue 中select默认选中(V2版本)
  15. photoshop印章效果制作
  16. ccxprocess用不用自启_你电脑上开机自启的软件都有哪些?
  17. mysql7.6安装_CentOS7.6离线安装MySql5.7
  18. 椭圆部分面积计算公式及微积分推导过程
  19. 微信小程序——章节自测七
  20. 软件开发人员 梦想最大的阻碍:毒、赌、黄

热门文章

  1. 外贸春节放假通知英文模板_可以直接用_最新版
  2. Offer收割机跟你聊聊如何准备校招No.41
  3. 第三章 测试驱动演示配置
  4. nginx反向代理node,解决前后端跨域问题
  5. 如何使用CAD看图软件来修改CAD图纸中的文字?
  6. 日报日报!Spark综合面试题总结
  7. 量化交易策略 - 均仓策略
  8. 大学计算机是开卷考试吗,高校期末考试实行“半开卷” 允许学生做“小抄”...
  9. CodeForces - 1213A
  10. 我的世界服务器加载材质包时显示缺少参数,【1.4.7~1.16】Sphax PureBDCraft [16x~512x]五边形材质包|3D支持|mod材质扩展...