Java的基本数据类型分为两大类:原始数据类型和引用数据类型。其中,原始数据类型是Java内置的类型,包括整数、浮点数、字符和布尔值等八种基本类型;而引用数据类型则是程序员根据需要创建的数据类型。以下是Java的八种基本(原始)数据类型及其特点:
byte:8位的有符号二进制整数,范围从-128到127。主要用于处理文件和网络传输等字节级别的数据。
short:16位的有符号二进制整数,范围从-32,768到32,767。通常用于节省内存空间的需求场景。
int:32位的有符号二进制整数,是最常用的整数类型,范围从-231 (-2,147,483,648) 到 231 - 1 (2,147,483,647)。
long:64位的有符号二进制整数适用于需要大数值计算的场合,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
float:32位的单精度浮点数,可表示小数点前后一定范围的数字,常用于科学计算和需要高精度的计算场景。
double:64位的双精度浮点数,比float更精确,也是使用最广泛的浮点数类型。
char:16位的Unicode字符,可以表示任何单个字符,如字母、数字和特殊符号等。
boolean:只有两个取值true或false,常用于条件判断和逻辑运算。
此外,需要注意的是,在Java中进行算术运算时,默认的数据类型是int,而且byte和short类型的变量在进行运算时会被自动提升为int类型进行处理。同时,整型数以二进制补码的形式存在,并且具有特定的取值范围和默认值设置。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如:

基本类型byte 二进制位数:Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE

基本类型short二进制位数:Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE

基本类型char二进制位数:Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE

基本类型double 二进制位数:Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE

注意:float、double两种类型的最小值与Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是 float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到±Float.MIN_VALUE之间的值float类型无法表示,0 到±Double.MIN_VALUE之间的值double类型无法表示。因为这些范围内的数值超出了它们的精度范围。

Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(JavaVirtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类。另外,所有基本类型(包括void)的包装类都使用了final修饰

基本类型的优势:数据存储相对简单,运算效率比较高;
包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想。

Java中的常量:
十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。

八进制整型常量:八进制必须以0开头,如0123,034。

长整型:长整型必须以L作结尾,如9L,342L。

浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
如图一:
字符常量:字符型常量需用两个单引号括起来(注意字符串常量是用两个双引号括起来)。Java中的字符占两个字节。一些常用的转义字符:
①\r表示接受键盘输入,相当于按下了回车键;
②\n表示换行;
③\t表示制表符,相当于Table键;
④\b表示退格键,相当于Back Space键;
⑤\'表示单引号;
⑥\''表示双引号;
⑦\\表示一个斜杠\。

数据类型之间的转换:
简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。

自动转换:
具体地讲,当一个较"小"数据与一个较"大"的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。而在方法调用时,实际参数较"小",而被调用的方法的形式参数数据又较"大"时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将"小"数据转换成"大"数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最"接近"的"大"数据并进行调用。这些类型由"小"到"大"分别为 (byte,short,char)--int--long--float—double。这里我们所说的"大"与"小",并不是指占用字节的多少,而是指表示值的范围的大小。
①下面的语句可以在Java中直接通过:如图二
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如:如图三
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。如图四
强制转换:
将"大"数据转换为"小"数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式:int n=(int)3.14159/2;可以想象,这种转换肯定可能会导致溢出或精度的下降。
表达式的数据类型自动提升,关于类型的自动提升,注意下面的规则。
①所有的byte,short,char型的值将被提升为int型;

②如果有一个操作数是long型,计算结果是long型;

③如果有一个操作数是float型,计算结果是float型;

④如果有一个操作数是double型,计算结果是double型;

例,byte b; b=3; b=(byte)(b*3);//必须声明byte。

字符串与其它类型间的转换:
其它类型向字符串的转换:
①调用类的串转换方法:X.toString();

②自动转换:X+"";

③使用String的方法:String.volueOf(X);

字符串作为值,向其它类型的转换:
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中"32.1"转换double型的值的格式为:new Float("32.1").doubleValue()。也可以用:Double.valueOf("32.1").doubleValue()

②静态parseXXX方法
如图五
③Character的getNumericValue(char ch)方法

Date类与其它数据类型的相互转换:
整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:
①Date(int year, int month, int date):以int型表示年、月、日

②Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分

③Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒

在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)。获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,Date类也有一个toString()方法可以将其转换为String类。

总结:只有boolean不参与数据类型的转换

强制类型转换:用圆括号括起来目标类型,置于变量前

Java引用类型:
Java有5种引用类型(对象类型):类 接口 数组 枚举 标注
引用类型:底层结构和基本类型差别较大
JVM的内存空间:
Heap堆空间:分配对象new Student()

Stack栈空间:临时变量Student stu

Code代码区 :类的定义,静态资源Student.class

eg:Student stu = new Student();//new在内存的堆空间创建对象

stu.study(); //把对象的地址赋给stu引用变量

运算符:
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
算术
单目:~(按位取反)、! (取非)、-(负号运算符)、++(自增)、- -(自减)、
双目:+ - * / %(取余)
三目:a>b?true:false说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
关系
等于符号:==,不等于符号:!=,大于符号:>, 小于符号:<,大于等于符号:>=,小于等于符号:<=。
位与逻辑:
位运算符 与(&)、非(~)、或(|)、异或(^)
&:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:1111110010&10001001101,比较结果为:1000000转为十进制:64。所以1010&1101=64;
|:当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
赋值
= += -= *= /= %= &= ^= |= <<=>>=
运算符综述
运算符的优先级决定了表达式中运算执行的先后顺序.例如,x位移:
<<带符号左移 >>带符号右移 >>> 无符号右移
运算符优先级:
按优先级从高到低排列如下:[ ] ( ) ++ -- !~instanceof * / % + - <<>> >>><>< =>\ == != &^& & || ? := op=
程序控制:
三大程序流程控制结构:
1)顺序结构:程序从上到下逐行逐行的执行,中间没有任何的判断和跳转
2)分支结构:程序具有选择性的进入某一段代码
3)循环结构:程序重复的执行某一段代码

分支语句:
单分支形式:if (条件表达式) { 代码块; }
解释:条件表达式为true,则执行if语句里面的代码块,若是条件表达式为false,就跳过if语句,执行if (){ }后面的语句
双分支形式:if (条件表达式) { 代码块; } else { 代码块; }
解释:如果if的条件表达式为true,则执行if中的代码块,如果if的条件表达式为false,则执行else中的代码块
多分支形式:if (条件表达式) { 代码块; } else if (条件表达式) else if (条件表达式) …… else { 代码块; }
解释:那个的条件表达式为true,则执行那个分支的语句块,如果都为false,则执行else中的语句块
分支嵌套:
在if语句里面含有if语句,再在if语句里面有if语句,……;在else语句里面含有if语句……(注意:最后不要嵌套超过3层,可读性不好)分支语句详解

switch分支结构:
switch中的表达式类型应和case后面的常量类型一致,或者是可以自动转换成可以相互比较的类型;switch(表达式)中的值类型必须是:byte、short、int、char、enum、String类型;case 紧跟的值必须是常量,不能是变量或浮点类型;default语句可省略,在所有的case语句都没有匹配成功的情况下,执行default语句;break语句用来执行完一个case分支后跳出switch语句块,如果没有写break语句,程序会顺序执行到switch的结尾或执行到有break的case分支语句

switch和if的比较 :
1)配对比较,而且符合byte、short、int、char、enum、String6种类型,建议使用switch语句
2)区间判断,结果是boolean类型的数据,使用if分支语句

循环结构 :
循环四要素:
1)循环语句
2)循环体
3)循环判断
4)循环变量迭代

while、do-while循环和for循环三种循环的区别:
1)do-while循环先使用后执行
2)三种循环都有循环四要素
3)三种循环都需要使用条件判断
4)循环表达式判断的结果都是boolean型

数组的定义及基本要素:
数组的定义:
定义:数组是一个变量,是存储相同数据类型的一组数据序列
在内存中:声明一个数组变量就是在内存空间划出一串连续的空间
数组的基本要素:
标识符:数组的名称,用于区分不同的数组
数组元素:数组中存放的每个数据
元素类型:数组元素的数据类型
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
注意事项:
一个数组只能存放一种类型的数据,这种数据类型在一开始就被规定好了
一个数组在初始化后的长度是固定的,最大的下角标是长度-1,超过这个范围则会报错
动态初始化的初始赋值依据不同数据类型而不同,int-->0 ,double-->0.0,String-->null , boolean -->false,char-->’’

眼镜一比一高仿 一比一高仿大牌钱包 Sw 更多细节— 更多细节—- 看起来就很柔软的包??容量也超足的背起来舒适得很~ 新品!
????????????????????????|酒神包最新奶白燕麦色被称为幸运之神眷顾的酒神系列,已成为经典元素里的王牌产品,见证了岁月流转的痕迹,依然是如今的大爆款,依然是受到大家的追捧喜爱,包还是那个包,今年换了个新的颜色新色集白色的纯净、驼色的温柔与咖色的复古于一体不仅百搭性完全不输之前出的所有颜色,还更加淡雅温和、软糯迷人!型号:499623尺寸:25×13.5×7cm Chane1嬉皮包|23B新款AS4378全新设计hobo~包边镶嵌着精美的编织链条??独特的工艺展现出时尚??让女孩子在不同场合中自信绽放,金色五金的点缀为包包增添了一份华丽感,散发出高贵的气质小号尺寸的单链条设计,简约而不失精致~大号尺寸的双链条设计则更添时尚感她们每一个细节都精致呈现~也太迷人了叭!这品质,绝啦绝啦??尺寸:15×23.5×2cm 【双十一购物狂欢节??】限时秒杀???22cm大号???仅5个手快有【勾引】【勾引】不退换货! ??B家双肩包选用由再生聚酯纤维和棉质纱线制成的面料打造,装饰ThomasBur专属标识图案提花,搭配牛皮边饰与同色系微标设计,网纹尼龙细节和品牌徽标。36x19x58 【NEW】全边框黑色漆皮拼黑色绒面格子_19cmSOLFERINOBOX_必火爆款,还没上市就攻陷了整个时尚圈,怀旧左岸,灵感来自巴黎左岸街名RueDeSolferino为名!包包采用进口绒面皮,手感及皮面的柔韧度都非常好!内里设计三层风琴隔,可轻松容纳日常所需物品,全新设计的“L”字母上下对半开扣,彻底颠覆你对包扣的认知,不禁让人发出惊叹,原来还能这样开包包,简直不要太有趣了!型号:634306尺寸:19×13×5cm

高仿原装正品 史密斯高仿正品首饰饰 腰包

??新款小邮差包??2VH070\/漆皮????这款充满现代感的手袋勾勒出简约的线条,配有拆卸可调式编织长肩带??肩带配有可拆卸小包??由进口尼龙布料加亮面牛皮设计,显得经典上原有气质和现代时尚????容量空间大,值得拥有,赶紧入手吧????长19x高12.5x底5.5cm??600000073 现货
New??胡杏兒同款度假系列太美了????LoropianoResortSS23藤编包系列??夏日必备款??超大容量,采用手工编织混纺而成??专柜同步现货供应?? ????DiorCaro小号黑色牛皮革精心制作,饰以标志性的藤格纹针脚。材质柔软,翻盖饰以复古金色饰面金属“CD”扣环,灵感源自ChristianDior香水瓶的封口。小号款式,搭配可拆卸的标志性“CD”链环肩带,亦可替换成刺绣宽肩带,更显优雅时尚。无论日常造型或是晚宴派对,均可轻松驾驭。翻盖开合搭配旋钮式“CD”扣环,背面“30Montaigne”压花标志,可拆卸、可调节的“CD”链环肩带,搭配军装风格的“ChristianDior”搭扣,内部拉链口袋和贴袋,后侧口袋,可手提、肩背或斜挎,尺寸:20厘米x12厘米x7厘米、型号:M9241、??独家实物拍摄??配送全新包装礼盒??(全国统一??60) 新色奶茶色现货岀货5BB148,Miu家新款保龄球包包,官网主推,今年绝对爆??款式,顶级进口小牛皮,Miu家独具风格Matelasse图案,包身精致立体有型,正面刻字徽标与皮革颜色相呼应,可拆卸可调节皮革长肩带,棉质缎面衬里,配拉链式口袋,众多明星网红同款,尺寸27X12X9Cm,配原版包装 【???????????????????系列】爱心调节扣盒子包黑色专柜售价购入开发????????最新爱心调节扣盒子包,内里还有化妆镜整个拿捏更直接可爱住,氛围感直接炸裂?进口荔枝纹小牛皮,耐造的质感更易打理。五金:全铜??????复古金尺寸:??7*9.55*8????。A 【火焰黄??三格刺绣戴妃】L???刺绣戴妃包“C???s????D???”标志时尚而柔美。饰以标志性“D.I.O.R.”吊饰,为精美的轮廓增添一分灵动。搭配大号可拆卸双面刺绣肩带,可随心选择背挎方式。可拆卸双面刺绣宽肩带,内部拉链口袋和贴袋,可手提、肩背或斜挎,可随心搭配其他刺绣肩带。尺寸:17×7.5×14cm款号:9028


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • Day2今天拿着球友的铁锤,再低头一看自己的球鞋,呆若木鸡[单身狗]这粗犷的配色大概只有你胜利会用并且会坚持用在各种产品上吧[二哈]说实话看到图一以后已经无话可
  • 真是的前辈:总之,知道了,回头再通电话吧前辈:盯着我干嘛秀贤:我可什么都没说前辈:我都能感觉得到,你这小子!前辈:你俩悄悄密谋,适当的给我通知,这不才是你们的做
  • 你穿这双鞋的时候千万别穿袜子,你穿进去后就知道这些的脚感有多细腻,你也会知道什么玩意儿才是真正的高档货,普通皮是完全达不到我们这种水准的,你可以买一双,你试了之
  • #驯龙小暹罗[超话]#“在这一年内得到的牵绊,能否成为你人生中无可取代的宝物呢?”—— ฅ՞•ﻌ•՞ฅ♥︎ ——↓可以公开的mega进化情报↓ ​1. 路卡利
  • 射手座元素很多很复杂,除了优点以外,也会有很多麻烦的点,相对的,对于另一半的要求也多,但是射手座那颗善良的真心不会像处女座一样严厉一点的想改变对方,而是会直接躲
  • 只见马振华和爱国人士们,依照装“四骏”的四个箱子,捡了一些石头装进去封好,准备来个“狸猫换太子”。在去昭陵前,他就找石匠伪造了“飒露紫”和“拳毛騧”的赝品,自己
  • #河狸家今日推送推荐# #梦华录# 赵盼儿告别手撕渣男并带着另外的两个姐妹齐心搞事业的剧情,得到了不少女性观众的共鸣。 分别是:《大法官金斯伯格》《她说》《她在
  • 为了能实现“咬合+面型”两者兼顾并达到最好的效果,✅在确保口腔健康功能安全的情况下,我设计了只拔除了上颌两颗正畸牙的方案。为了能实现“咬合+面型”两者兼顾并达到
  •   房山区总工会开展“上一线,做贡献”每轮下派10名机关工作人员支援配合社区进行核酸检测、维护检测秩序等工作,确保社区核酸检测正常进行,并抽调8名机关干部进行了
  • 4、排湿功能居室里的湿气不仅仅来自浴室,人体和燃具也会释放出水分,而且,现在建筑密闭性更好,易出现暖房等因结露而发霉,床和墙被腐烂的问题,所以用换气扇经常除去室
  • 最刚的源儿哥也21啦~你真的有在坚持做自己喜欢的事情,并且变得越来越好,你才21岁但好像已经沉淀了很多,这样很好,但记得照顾好自己,凯哥和阿千一人发的是你节目的
  • #黄家驹音乐网[超话]# 走不开的快乐开开心心不应苦恼自缚只须胸襟懂得变做深海开开心心不应追究什么只知通通不必介意快乐也走不开 WOO OH走不开的快乐世界纵使
  • 《闲言碎语》纯属记录 混乱无序 琳琅叮当响 听个响就好不要吝啬表达 其实你的碎碎念我很愿意听今天看到这样一段话“2022年 我真的希望自己可以成为更好一点的人
  • 波斯特科格鲁通过球队官网对科威尔表示欢迎:“非常高兴科威尔能加入我的教练组,他在顶级联赛有着丰富的经历,同时能够帮我构建球队。他致力于打造一支进攻端赏心悦目的球
  • 是亲不似亲,非亲却似亲。相见易得好,久住难为人。
  • 市面上稍微好点的运动袜价格都不便宜,这是工艺和用料决定的,运动袜相比较普通袜子的用料更多,工艺也更复杂,成本更高卖价自然也是更贵了~大家可以去稍微了解下,那些带
  • 但俄方毕竟不能对土耳其太过严厉,不然就是将土方推向美国阵营,但对土方的行动又不得不防,以色列也是一样的,以方不断轰击叙利亚,俄方直接袭击以方也不太好,这样一来
  • 【伽思珂】很多人再问这个产品是什么,我统一说明下: 1,他是护发素,不是染发剂,不含任何化学成分,纯植物提取,孕妇都可以用 2,一次染发,染一次可以维持96个小
  • 书→_→味莘a1304478257⛵精彩试读: “宝儿,整整十年了…还是没能让你爱上我….” “宝儿…别哭…我以后不能照…照顾你了.” 安儿,我的宝贝…老
  • 10.合肥市南园学校:桐城路以西,望江路以北,宿松路以东,太湖路以南(含太湖路以北的南园新村、同城花园、金安花园、铁四局机关宿舍等)。22.合肥市曙光小学龙图校