Java数据类型没学会?因为姿势没用对!
小故事
大家好,我是node哥哥,江湖人称青哥,最近看那本很火的《Java从入门到入土》非常入迷,听说在各大书城的销量排行榜上稳居第一名?看来爱学习的小伙伴还是很多的呀!都说知识改变命运,Java成就人生,这么看来我当初下定决心学习Java的选择是多么的正确!

不过话说回来,这本书写的确实不错,但毕竟我刚入门,有一些小知识点还有点疑惑,比如刚刚学习的数据类型,这对于零基础的我来说还是有些难度的。
这天,我在CSDN上正无聊闲逛,看到一篇博客:【数据结构和算法05 ,红黑树 看完包懂~】 。说实话看到这样的文章我是非常不屑的,红黑树?是什么树?怎么一半红一半黑的?看完包懂?万一我懂一半呢?那不是难产了?哼!让我来我看看你是什么妖魔鬼怪。
小手轻轻一点,我进来了。一开始我是非常不以为然的,可是,越往下,我越吃惊…两分钟后,我差点跪下了!这写的太好了吧,怎么感觉比书里讲的还详细的多呢(虽然没看懂)!看看这满满的干货,这清新脱俗的文字,这满屏幕的【知识】,我怎么忍心错过呢?还不让他赶紧去我的收藏夹吃灰?看我关注、点赞、收藏,一波三连,把大佬安排的明明白白。
怀着激动的心情,我悄悄点开大佬的对话框。
我:大佬,在吗?
过了一小会,大佬居然回信了!
武哥:在~ 有什么事吗?
我:(不知道怎么组织语言)额..大佬…你真帅!太牛x了!
武哥:害!这不是公认的吗?
我:(一脑门黑线,敢情这大佬有点自恋啊,我只是商业吹捧一下,他还挺自居?)哈哈~大佬,是这样的,我是一个学习Java的小白白,请问你能带带我吗?
武哥:嗯…这个…也可以,我收费的哦
我:(心想果然是大佬,还收费)大佬,我非常喜欢Java,最近还买了一本书学习,书名是《Java从入门到入土》,我感觉这本书挺好,就是我有点小疑惑,想请教下学习的小问题,你看能不能开个后门?
武哥:那…行吧。看在你这么好学的份上,我就给你指点指点,你现在学到哪里了?
我:我刚学到Java基础呢,看到数据结构这地方有点小懵圈~
武哥:这好说,我当年学Java基础可足足花了大半年呢!基础非常扎实的哦,我可以带着你一起过一下这块的知识点。
我:真的吗?大佬!那太感谢你了!回头我请你吃饭!
武哥:小问题,小问题。我看你在也在合肥?
我:是呀~(有点慌,悄悄点开大佬的个人资料,莫非…)
武哥:哈哈,巧了!我也在呢!
我:啊哈?这么巧?那要不…(看来一顿饭跑不掉了,我哭…)
武哥:你加我个微信,我给你发个定位,咱们细聊。
我:(这就…面基了?才几分钟的交流?大佬都这么骚的吗?虽然心里不太愿意,但是身体却很诚实)emm…好的,我这就过去…
武哥:好,等你哦~
我打了一个激灵…内心有一丝丝的慌张!
半小时后,我按照武哥给的地址,打车过来了。
见到武哥,果然,不出我所料,骚气异常!
只见武哥梳一个大背头,还抹了点油,斜靠在车上45°仰望天空,点一根烟,带着无尽的沧桑和寂寞。
我:(硬着头皮上去打了个招呼)武哥?
武哥:(停下抽烟的动作,看了我一眼,眼神带着一丝迷离):Hello?你是node小哥哥吗?
我:嗯…是的(悄悄后退几步)
武哥:(大步走过来,一把搂住我的肩膀)走,我们去咖啡店里,喝杯咖啡,聊聊Java,如何?
我:(心想你都这样了,我还拒绝个屁啊!)好..的…
于是,武哥搂着我扭扭捏捏得去了星巴克…然后找了一个安静的小包间…
接下来的一幕估计你们能猜到了…
咳咳!正经点!我们是讨论学习去的!
什么?你不信?
那你就往下看看,干货预警!
干货来了
Java 数据类型有很多,本文主要从基本类型、包装类型、引用类型和缓存池四个方面来总结。
基本数据类型
基本数据类型有 byte、short、int、long、float、double、boolean、char,关于它们的分类,我画了个图。

接下来我主要从字节数、数据范围、默认值、以及用途等方面给大家总结成一个表格,一目了然。
包装数据类型
上面提到的基本类型都有对应的包装类型,为了方便读者查看,我也整了一个表格。
引用类型
在Java中,引用类型的变量非常类似于 C/C++ 的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Student、Dog 等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。所有引用类型的默认值都是null。一个引用变量可以用来引用任何与之兼容的类型。例如:
Dog dog = new Dog("旺财")。
数据类型转换
包装类型和基本类型之间如何转化呢?
Integer x = 2; // 装箱 调用了 Integer.valueOf(2) int y = x; // 拆箱 调用了 X.intValue()
基本类型之间如何转换呢?有两个点:
把大容量的类型转换为小容量的类型时必须使用强制类型转换。
把小容量的类型转换为大容量的类型可以自动转换。
比如:
int i =128; byte b = (byte)i; long c = i;
缓存池
大家思考一个问题:new Integer(123)
与Integer.valueOf(123)
有什么区别?
有些人可能知道,有些人可能不知道。其实他们的区别很大。
new Integer(123) 每次都会新建一个对象;
Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。
我写个demo大家就知道了
Integer x = new Integer(123); Integer y = new Integer(123); System.out.println(x == y); // false Integer z = Integer.valueOf(123); Integer k = Integer.valueOf(123); System.out.println(z == k); // true
编译器会在自动装箱过程调用valueOf()
方法,因此多个值相同且值在缓存池范围内的 Integer 实例使用自动装箱来创建,那么就会引用相同的对象。如:
Integer m = 123; Integer n = 123; System.out.println(m == n); // true
valueOf()
方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。我们看下源码就知道。
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
根据数据类型的不一样,这个缓存池的上下限也不同,比如这个 Integer,就是 -128~127。不过这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax=
参考自StackOverflow:
https://stackoverflow.com/questions/9030817/differences-between-new-integer123-integer-valueof123-and-just-123
OK,关于Java数据类型的小知识就分享到这了,虽然我还有点意犹未尽…
Java 的数据类型虽然简单,但是里面还是有很多小细节值得我们玩味的,希望这篇文章能给大家带来一些帮助。
以上是Java数据类型没学会?因为姿势没用对!的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。

H5开发需要掌握的工具和框架包括Vue.js、React和Webpack。1.Vue.js适用于构建用户界面,支持组件化开发。2.React通过虚拟DOM优化页面渲染,适合复杂应用。3.Webpack用于模块打包,优化资源加载。
