编程技术是改变世界的力量。
本站
当前位置:网站首页 > 后端语言 > 正文

java学习笔记2——java数据类型总结

gowuye 2024-04-04 11:52 2 浏览 0 评论

如果有写的不对的地方,欢迎评论指正,相互学习相互进步,谢谢!

有其他语言基础的这里不再重复累赘,就记录一些java独特的地方

一、java的数据类型

类型二进制位数默认值对应的封装类
byte80Byte
short20Short
int40Integer
long80Long
float40.0Float
double80.0Double
char2空格Character
booleanfalseBoolean

二、整型

byte的取值范围为-128~127(-2的7次方到2的7次方-1)

short的取值范围为-32768~32767(-2的15次方到2的15次方-1)

int的取值范围为(-2147483648~2147483647)(-2的31次方到2的31次方-1)

long的取值范围为(-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-1)

基本上int型的参数就已经可以满足我们日常编程需求了,在这里需要注意的是如果定义了一个long型的参数,就需要加一个L,例如:

long i=100L;//这里个人建议用大写的L,因为小写的l和1差不多,不易分辨1

三、浮点型

学过计算机原理的应该都知道,这两个类型的区别在于精度不同,double比float精度更高,范围更大

单精度:float 3.402823e+38 ~ 1.401298e-45

(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)

双精度:double 1.797693e+308~ 4.9000000e-324

这里在使用float的时候,和long一样,需要在后面加F,比如:

float f = 100F;//个人建议这里也大写,养成良好的编程习惯1

四、字符型

char是按照字符存储的,在代码中用引号,不管英文还是中文,固定占用占用2个字节,用来储存Unicode字符。范围在0-65536。例如:

char s=‘码’;1

char可以存储中文,那个问题来了:

为什么char型的可以存储utf-8的字符呢?

首先,GBK的汉字是两个字节的,而utf-8是三个字节的。在java的内部存储中,都是以unicode为主,一个汉字转化为unicode是两个字节,当汉字进行存储后,java会把汉字转化成unicode编码,这样子就可以存储进去了。而utf-8,GBK只不是过外在软件的编码格式,并不是内部存储的格式。

其实在存储汉字的时候,utf-16的效果要比utf-8优秀,因为utf-16只需要2byte的大小就行。


五、布尔型变量

布尔型变量还有true和false两种,在C语言中可以用1表示true,0表示false,但是在java中是不允许的。


六、String

很多人会把String当成是java的基本来类型之一,其实并不是。String是一个应用数据类型,是java中的一个类。String类型的参数用双引号表示。例如:

String s="12345";1

七、强制类型转化

1、自动类型转化:

byte–>short–>int–>long–>float–>double

例如:

int a = 5;long b=a;//这是成立的,反过来byte b=a;就不成立了,需要强制类型转化12

2、强制类型转化:

例如:

int a = 8;byte b=(byte)a;//强制类型转化是在参数前用括号加上数据类型进行转化12

但是这种方法并不是全部情况都使用,需要看情况而定,因为这样子

1、会损失精度 。2、容易超出取值范围出错。


八、java引用类型

java有5种引用类型,分别是类,接口,数组,枚举,注解,这里不过多介绍


九、封装类

java的八大数据类型都有对应的封装类。

在实际编程中,基本使用的是基本数据类型来存储数据,这主要是因为如果用封装类,对于程序的开销就会变大,而这在实际中是完全没有必要的。

那为什么还要设置类呢?因为在java中,泛型类包含了预定义的集合,在这里使用的是对象类型,无法直接使用基本数据类型,所以定义了封装类,提供这些基本数据类型的包装容器。而且封装类中提供了有用的方法,可以对进行数据的操作。这里不做过多介绍


十、拆箱装箱(Autoboxing and unboxing)

举了例子:

Integer a = 100; //这是自动装箱(编译器调用的是valueOf(int i))
int b = new Integer(100);// 这是自动拆箱

我觉得可以粗浅的理解成,进行赋值的时候,根据定义参数的类型进行基本数据和包装类的自动转换。比如第一行,定义为integer类,后面为int值,就自动封装为integet类,值为100,拆箱也是,将integer类取值赋值给int的b。

大致了解一下,具体详解大家可以看一下调用valueof方法的源码,可以发现integer的装箱会有点不同。这里便不详细解释了。

相关推荐

PHPMailer远程命令执行漏洞分析

摘要:PHPMailer是一个强大的PHP编写的邮件发送类,但近日被爆出远程命令执行漏洞,该漏洞实际上是什么,有何种影响,本文对该漏洞进行了分析及验证方法,并给出防护方案。0x00漏洞概要PHPMa...

「安全漏洞」DedeCMS-5.8.1 SSTI模板注入导致RCE

漏洞类型SSTIRCE利用条件影响范围应用漏洞概述2021年9月30日,国外安全研究人员StevenSeeley披露了最新的DedeCMS版本中存在的一处SQL注入漏洞以及一处SSTI导致的RCE...

回顾使用PHP原生发送电子邮件(终)文件附件

FileAttachments文件附件Fileattachmentsworkjustlikemixedemail,exceptthatadifferentcontenttyp...

php-fpm.conf & php.ini 安全优化实践

0x01关于php其历史相对已经比较久远了,这里也就不废话了,属弱类型中一种解释型语言除了web开发以及写些简单的exp,暂未发现其它牛逼用途,暂以中小型web站点开发为主另外,低版本的php自身...

linux 安全配置 ossec 开源检测

linux安全配置ossec开源检测一:介绍主要功能有日志分析、完整性检查、rootkit检测、基于时间的警报和主动响应。除了具有入侵检测系统功能外,它还一般被用在SEM/SIM(安全事件管理(...

PHP使用PHPMailer发送验证码邮件的方法与调用逻辑

首先我们需要下载PHPMailer:https://github.com/PHPMailer/PHPMailer一般情况下我们只需要压缩包中的src文件夹中的文件,并保存至根目录即可:设置一个文件,如...

回顾使用PHP原生发送电子邮件(一)

IwishIcouldremembertheveryfirstemailmessageIeversent.Unfortunately,thetruthisthatI...

PHPMAILER实现PHP发邮件功能php实例

这篇文章主要为大家详细介绍了PHPMAILER实现PHP发邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下本文实例为大家分享了PHPMAILER实现PHP发邮件功能的具体代码,供大家参考,具...

500道网络安全面试题集锦(附答案)

本篇文章内容为网络安全各个方向涉及的面试题,星数越多代表问题出现的几率越大,但是无论如何都无法覆盖所有的面试问题,更多的还是希望由点达面,查漏补缺,然后祝各位前程似锦,都能找到自己满意的工作!一、We...

网站放家里,随处看电影「Apache+php+ssl 安装和配置」

  使用5G网络,随处都可以看到放自己家里电脑的视频。这个功能很容易实现,不需要太多的专业知识,也不需要额外花钱。如果确实需要,最多花不到两百块钱买一台旧电脑放家里,做个网站,就能解决全部问题,Fre...

Windows2008中 Magic Winmail Server提权

MagicWinmailServer是安全易用全功能的邮件服务器软件,不仅支持SMTP/POP3/IMAP/Webmail/LDAP(公共地址簿)/多域/发信认证/反垃圾邮件/邮件过滤/邮件组...

利用PHPmailer发送邮件

早上帮朋友做一个收集客户联系方式的页面,要求能实时推送信息给管理员。刚开始想到做后台管理,因为时间紧,做后台是赶不上了。想过通过短信发送,成本太高,否决了。。。灵机一动,客户提交时直接把信息发送到邮箱...

phpmailer发送邮件

phpmailer发送邮件PHP内置的mail函数使用起来不够方便,另外受其他语言的影响,博主更偏好面向对象的包管理模式,因此phpmailer成为了我用PHP发送邮件的首选,这里分享给大家。库导入这...

PHP初级教程:读取输入

PHP读取输入:Form:?formaction="welcome.php"method="post">Name:(inputtype="text...

php filter 验证Email,Url,Ip格式

今天发现一个非常好用的函数东西,filter过滤器,用于验证和过滤来自非安全来源的数据,比如用户的输入。验证Email:$email='1234567@qq.com';if(!filter_v...

取消回复欢迎 发表评论: