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

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

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

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

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

简单介绍了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型最经济实惠。

详细说明 :

byte:

byte 数据类型是8位、有符号的,以二进制补码表示的整数;

最小值是 -128(-2^7);

最大值是 127(2^7-1);

默认值是 0;

byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

例子:byte a = 100,byte b = -50。

short:

short 数据类型是 16 位、有符号的以二进制补码表示的整数

最小值是 -32768(-2^15);

最大值是 32767(2^15 - 1);

Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

默认值是 0;

例子:short s = 1000,short r = -20000。

int:

int 数据类型是32位、有符号的以二进制补码表示的整数;

最小值是 -2,147,483,648(-2^31);

最大值是 2,147,483,647(2^31 - 1);

一般地整型变量默认为 int 类型;

默认值是 0 ;

例子:int a = 100000, int b = -200000。

long:

long 数据类型是 64 位、有符号的以二进制补码表示的整数;

最小值是 -9,223,372,036,854,775,808(-2^63);

最大值是 9,223,372,036,854,775,807(2^63 -1);

这种类型主要使用在需要比较大整数的系统上;

默认值是 0L;例子: long a = 100000L,Long b = -200000L。

"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

初学编程的人可能会问了,好好的整数型,还分那么细干嘛。这你就不懂了吧,举个栗子,因为用于存放数据的内存空间是以位为基本单位,可以理解为很多很多相同的小盒子,相同的数据类型需要用同样大小的空间,不然程序就不知道数据的开始和结束位置,用数据头部来存放大小长度信息显然有些浪费空间,那么现在的问题是,一个整数,用多大的空间合适?你可能会觉得,都用同样大小的空间不就好了,那都用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类型。

float:

float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;

float 在储存大型浮点数组的时候可节省内存空间;

默认值是 0.0f;

浮点数不能用来表示精确的值,如货币;

例子:float f1 = 234.5f。

double:

double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;

浮点数的默认类型为double类型;

double类型同样不能表示精确的值,如货币;

默认值是 0.0d;

例子:double d1 = 123.4。

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

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

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

boolean:

boolean数据类型表示一位的信息;

只有两个取值:true 和 false;

这种类型只作为一种标志来记录 true/false 情况;

默认值是 false;

例子:boolean one = true。

char:

char类型是一个单一的 16 位 Unicode 字符;

最小值是 \u0000(即为0);

最大值是 \uffff(即为65,535);

char 数据类型可以储存任何字符;

例子:char letter = 'A';。

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

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

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

三 java的基本数据类型_JAVA基础(三)--JAVA基本数据类型相关推荐

  1. java三大特性 继承_java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  2. java的技术定义_java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  3. java单引号转义_Java基础入门——Java语言基础(上)

    本篇我们开始进入Java的学习,首先在学习如何编写Java语言前要先了解Java程序的基本结构. 一.Java程序的基本结构 一个Java程序的基本结构大体可以分为包.类.main()主方法.标识符. ...

  4. java知识串讲_java基础之Java知识串讲

    一.JDK个版本之间的区别: 1.JDK1.5的新特性: 泛型ArrayList list = new ArrayList();-->ArrayList list = new ArrayList ...

  5. java case switch面试_Java基础篇——Java中switch case语句用法及注意事项面试题9期

    本文主要说一说关于switch case语句用法及注意事项,应对面试官的提问.希望可以帮助那些对switch存在错误和各种细节问题的"码友". switch-case注意事项 sw ...

  6. java视频教程千峰_java基础教程-Java开发入门视频教程-千锋教育视频资源库

    第1节 - Java由来及语言特点 点击播放 第2节 - Java的执行机制及第一个应用程序 点击播放 第3节 - 类的阐述及Package相关 点击播放 第4节 - Java的编码规范 点击播放 第 ...

  7. Java好学吗?零基础入门Java,三个就业方向实现月入过万!

    Java好学吗?零基础入门Java容易吗?据统计,这是很多人学习前最常问也是最关心的问题之一. 不可否认,大家在开始接受新事物的时候都会陷入困境,但学习是循序渐进的,零基础入门Java到底难不难,只有 ...

  8. 机械转行java自学经历,零基础学java,血泪总结的干货

    机械转行java自学经历,零基础学java,血泪总结的干货 1.我为什么转行 2.转行之路 3.面试之路 自学路上的网站 Java教程 实践项目一站式学习 bilibili 自学书籍 <Java ...

  9. java 随机句子_Java基础三(Scanner键盘输入、Random随机数、流程控制语句)

    1.引用类型变量的创建及使用 2.流程控制语句之选择语句 3.流程控制语句之循环语句 4.循环高级 ###01创建引用类型变量公式 * A: 创建引用类型变量公式 * a: 我们要学的Scanner类 ...

  10. java 打印三维数组_Java基础第三天_数组

    1.定义一个函数,函数功能是动态提取int[]中元素的最大值. 2.定义一个函数,从数组中查询指定的元素首次出现的位置. 3.定义函数,完成冒泡排序,大数下沉. 4.折半查找. 5.阐述 6.定义一个 ...

最新文章

  1. AI提高药物发现效率 | ML,Supercomputers and Big Data
  2. 关于Nginx的limit_conn模块的思考
  3. 美团2020年全年财务报告:疫情期间网络营销之下的美团选择进军社区团购
  4. 【原创】new和delete
  5. PHP文件打开读取操作
  6. 解决Unable to create group (name already exists)
  7. java EE中JPA介绍
  8. vs 选定内容没有属性页_从智能单品,到全屋智能:2019中国智能家居发展白皮书【附82页PPT】...
  9. Javascript中操作cookie
  10. 微软官方解读 Win11 操作系统
  11. [Swift]LeetCode306. 累加数 | Additive Number
  12. paip.提升安全性--------用户密码控件方案总结
  13. Window平台编译log4cpp使用方法记录 (一)
  14. HiJson工具(查看Json)
  15. ⭐️ vue项目使用微信表情;vue引入微信表情emoji;vue中使用微信表情包emoji;
  16. idea创建yml配置文件不是绿色
  17. 如何控制cpu资源使用?
  18. 牛客网—Java练习题
  19. vb.net 随窗口改变,缩放控件大小以及保持相对位置
  20. 云端是一个软件平台,拥有丰富的资源。在云端使用软件,无需安装,一点,下载,直接使用。

热门文章

  1. moment.js使用方法总结
  2. 流式 Isotype control 流式细胞仪control组
  3. I2C E2PROM通信
  4. 修改信息显示服务器升级,无感门禁监控管理软件升级37条新功能
  5. 浙江大学举办的计算机考试,关于举办计算机技术和软件工程硕士复习班的通知-硕士招生-浙江大学计算机科学与技术学院中文站...
  6. 基于MATLAB的视频运动目标跟踪与检测定位系统
  7. 【BiLSTM数据预测】基于matlab双向长短时记忆BiLSTM数据预测【含Matlab源码 1824期】
  8. 整站优化部分关键词排名卡在第二页上不去的原因
  9. android粗字体下载,Android中粗字体
  10. Java基础之02 动态代理模式172 173 类加载器原理分析