1、前言

首先提出一个问题在 Java 中 String 属于那种数据类型?

我的一个朋友是这么说的,「what?是不是有很多疑惑,int、double、String 不都是经常一起使用的么,应该都是同一种数据类型吧,基本数据类型?」

大家认为呢?「老公你快说句话啊!」

对于初学者而言可能没有对数据类型没有很强的意识,没有特别的注意到这里,都会认为 int、double、String 基本上都是经常使用的,都差不多,应该都属于基本数据类型。最后还会给自己打气(小声bb:恩是的没错!)。

那到底是不是这样呢?哎,等一等莫着急,且继续往下看,真相只有一个,且听正文详叙。

2、正文

数据这个词我们并不陌生,互联网中无时无刻不产生数据,只不过数据展示到计算机显示器上的表现形式都各不相同;例如:数字、文字、音频、视频等都是属于数据。

数据是一个抽象的概念,并且缺乏分类,不能表达明确事物的意义。

数据类型则是程序设计语言用来描述不同事物的,不同的程序设计语言对应的数据类型都有所相同(大致分类相同),也有所不同(关键字不同)。

在 Java 中数据类型分为了内置数据类型和扩展数据类型两大类, 内置类型就是 Java 语言本身提供的基本数据类型,比如,整型数,浮点数,字符,布尔值等等。

而扩展类型则是 Java 语言根据基本类型扩展出的其他类型,Java 要求所有的扩展类型都必须包括在类定义里面,这也是 Java 被叫做面向对象编程语言的原因。

同时内置数据类型和扩展数据类型也会被称为基本数据类型引用数据类型。

2.1、基本数据类型

Java 的基本数据类型有八种

「我的妈呀!这么多,我咋就知道三个呢!」,那个朋友说到。

我继续说道:「别吵,听我的,都听我的」。八种基本数据类型分别为:byte、short、int、long、float、double、char、boolean;好吧,再细化一下,大体上分为三类:数值型、字符型、布尔型。而数值型还可以分为整数和浮点数,整数包括:byte、short、int、long;浮点数包括:float、double。字符型包括:char。布尔型包括:boolean。这就是 Java 的基本数据类型,「朋友若有所思…」基本数据类型的存储原理是:基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面。

int intNum = 1;
double doubleNum = 1.11;

注意:

使用 f/F 后缀显式表示 float 类型;

使用 d/D 后缀显式使用 double 类型;

小数后边没有标明 f/F 则默认是 double 类型。

2.2、引用数据类型

Java 的引用数据类型有五种;其分别为:类、接口、枚举、注解、数组。

引用类型的底层结构和基本类型差别较大,主要是在创建对象上有所不同。

引用类型的数据创建对象时需要通过关键字 new 创建对象,创建的对象将会保存在堆中,然后将该对象赋值给一个引用,也就是这个引用将会指向该对象堆中的地址,而这个引用则存储在栈中。

下边以 Student 类为例展示引用类型的数据在内存中的存储原理:

Student student = new Student(1001,"looper");

3、总结

那么瞎 bb 了这么多,String 到底属于什么类型呢?

String str1 = "looper";
String str2 = new String("looper");

怎么基本数据类型和引用数据类型都涉及到了???

总的来说 Java 中规定了 String 不属于基本数据类型,只是代表一个类,属于引用类型

因为对象的默认值是 null,所以String的默认值也是 null。

但是怎么 String 也可不用 new 的形式来创建对象呢?

那是因为 Java 有字符串常量池机制

所以不用 new 关键字创建对象时,会在常量池中创建对象。

String 类也是一个比较特殊的类后边还会有详细的叙述。

欢迎各位讨论(老公你说句话啊!)

感谢支持与点赞!

boolean类型默认值_【Java基础】还在问String属于什么数据类型相关推荐

  1. boolean类型默认值_「软帝学院」Java的基本数据类型

    Java的基本数据类型 Java的两大数据类型: · 内置数据类型 · 引用数据类型 内置数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型 ...

  2. Java 中 Boolean 和 boolean的默认值和修改默认值

    默认值 boolean 是 Java 的基本数据类型,默认值是false: Boolean 是 Java 的一个类,默认值是 null 使用推荐 根据阿里巴巴开发手册,在字段中推荐使用Boolean作 ...

  3. 解决easyui combobox赋值boolean类型的值时,经常出现的内容显示的value而不是text的bug...

    版本:EasyUI 1.7.0 在用easyui写项目时,碰到一个combobox的奇葩bug.代码如下: <div><select class="easyui-combo ...

  4. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  5. Java基础面试16问

    来自三太子敖丙的Java基础面试16问 原文地址 ** 说说进程和线程的区别? ** 进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率. 由 ...

  6. Java基础学习 100 问

    Java基础学习 100 问 来源: 赢在面试( [Java知音](javascript:void(0)

  7. java中常量有初始化值吗,Java基础_变量、常量

    变量:可以变化的量 .分为基本类型(八大)和引证类型(其他). JAVA是一种强类型的语言,每个变量都有必要声明其类型. JAVA变量是JAVA程序中最基本的存储单元. type varName [ ...

  8. logback property 默认值_看完这篇文章还不会给spring boot配置logback,请你吃瓜

    每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定. 放弃不难,但坚持很酷~ 一.logback日志框架 logback 是一个开源的日志组件,由三个部分组成:logback-core,logba ...

  9. java xss 默认值_一台 Java 服务器可以跑多少个线程?

    原标题:一台 Java 服务器可以跑多少个线程? 转自:简书,作者:新栋BOOK 一台Java服务器能跑多少个线程?这个问题来自一次线上报警如下图,超过了我们的配置阈值. 京东自研UMP监控分析 打出 ...

最新文章

  1. 在centos上使用openswan搭建IPSec***
  2. torch uint8 筛选数据
  3. 数据库迁移——自动迁移Enable-Migrations
  4. JS学习之Node类型
  5. Git commit后,本地代码丢失解决方法
  6. Android Studio 下使用git -- 个人,本地版本控制
  7. 动态规划uva1347
  8. java项目描述_111个知名Java项目集锦(包括url和描述)
  9. 原因好消息: 自己主动算法设计推箱子游戏(三)
  10. Cannot read property 'scrollWidth' of null
  11. 零基础用阿里云服务器搭建网站的步骤
  12. 计算机基础知识500字以上,计算机心得体会500字(精选6篇)
  13. 积分墙为什么要做反作弊
  14. matlab识别不出rep,请教:MATLAB中遗传算法如何处理REP等函数的未识别
  15. 东北大学——考研复试——计算机网络——2014年
  16. 互联网思考悲伤之后 如何重新定位移动互联网方向
  17. hardware用u盘起动_u盘启动dos最简单的的小方法
  18. 不知道如何分析选择基金、股票?Python来教你
  19. TensorFlow学习笔记12----Creating Estimators in tf.contrib.learn
  20. 猿创征文 | DevOps运维的10个日常使用工具分享

热门文章

  1. bzoj 3209 花神的数论题 —— 数位DP
  2. Spring MVC自动为对象注入枚举数据
  3. 笔记(2015.8.1)
  4. Python_Python处理JSON文件
  5. mssql-sqlserver入门必备知识收集
  6. Zabbix 3.0入门到企业实战阅读目录
  7. win10 64位 安装TensorFlow
  8. EasyUI +MVC +EF实现增删改查
  9. (5)ES6解构赋值-函数篇
  10. python psutil 进行系统管理 no.2