Day02 Java基本数据类型

本文详细介绍了Java中的数据类型,包括强类型和弱类型的区别,以及基本类型的分类和特性,如byte、short、int、long、float、double、boolean和char。特别讨论了浮点数的表示和比较,强调了浮点数比较时的精度问题。此外,还提及了字符类型的Unicode表示和转义字符的概念。
摘要由CSDN通过智能技术生成

数据类型

  • 强类型语言

    • 要求变量的使用要符合规定,所有变量都必须先定义后才能使用
    • 强类型语言在写代码过程中体现的淋漓尽致,例如long类型要在数字后加L,floa类型要在数字后加F。
  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本类型(primitive type)
    • 引用类型(reference type)-除了8种基本类型,都是引用类型。

Java数据类型

  • 浮点数中最常用的是double

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

1. byte

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值是 0
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

2.short

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 - 1)
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0
  • 例子:short s = 1000,short r = -20000。

3.int

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 - 1)
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0
  • 例子:int a = 100000, int b = -200000。

4.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"混淆,不容易分辩。所以最好大写。
//整数
//Integer;
//Byte;

int num1 = 10;
byte num2 = 20;
short num3 = 10;
long num4 = 30L;    //Long类型要在数字后边加个L

5.float

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

6.double

  • double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
  • 浮点数的默认类型为double类型;
  • double类型同样不能表示精确的值,如货币;
  • 默认值是 0.0d
  • 例子:double d1 = 123.4。
//小数:浮点数
float num5 = 50.1F; //  Float类型要在数字后边加个F
double num6 = 3.141592653589793138462643;

7.boolean

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false
  • 例子:boolean one = true。
//布尔值
boolean flag = true;
boolean flag = false;

8.char

  • char类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即为0);
  • 最大值是 \uffff(即为65,535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = ‘A’;。
//字符
char name = 'Q';
char name4 = '国';
//字符串, String不是关键字,类
String name1 = "秦疆";

什么是字节

什么是字节

32位的CPU只能装32位的cpu,64位的CPU能装32软件也能用64位的软件。

1024GB = 1 TB; 1024 TB = 1 PB; 1024 PB = 1EB.

进制

  • 包括有二进制0b,八进制0,十进制,十六进制0x
int i = 10;
int i2 = 010;	//八进制
int i3 = 0x10;	//十六进制0x 0~9 A~Z

进制结果


浮点数拓展

示例1

float f = 0.1f;		//0.1
double d = 1.0/10;	//0.1

System.out.println(f==d);	//flase

输出结果为flase

示例2

float d1 = 23131312312313f;
float d2 = d1+1;

System.out.println(d1==d2); 	//true

输出结果为true

示例3

System.out.println("==================================================");
double d3 = 2131314545564646464635456564644d;
double d4 = d3 + 1;

System.out.println(d3==d4);
System.out.println("==================================================");
  • 输出结果为true

  • float 有限的 离散的 舍入误差 大约 接近但不等于

  • 最好完全避免使用浮点数进行比较

字符拓展

Unicode表,字母数字等的强制转换

char c1 = 'a';
char c2 = '中';

System.out.println(c1);
System.out.println((int)c1);	//强制转换

System.out.println(c2);
System.out.println((int)c2);	//强制转换

输出结果

a
97
中
20013
  • 结论
    • 所有的字符本质还是数字
    • 编码是有一个Unicode表其中,(97 = a , 65 = A)
    • 一个字符两个字节,最小值是 \u0000(即为0),最大值是 \uffff(即为65,535)(2^16-1)
    • char 数据类型可以储存任何字符;

转义字符

转移字符对应的英文是escape character , 转义字符串(Escape Sequence)

字母前面加上反斜线""来表示常见的那些不能显示的ASCII字符.称为转义字符.如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

所有的转义字符和所对应的意义:

转义字符意义ASCII码值(十进制)
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’’'092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
\0空字符(NULL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
\uhhhh1到2位十六进制所代表的任意字符二位十六进制

注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换

从内存分析

System.out.println("====================================================");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);

String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);
//对象  从内存分析

结果为

false
true

后续会讲到这一方面的内容

注意上边在写代码的时候出错了,因为误把提示信息当做代码抄到了IDEA中,如下

报错spring new1

后续更正后

正确spring new

布尔值扩展

boolean flag = true;
if (flag){}			//老手
if (flag==true){}	//新手

本文为学习狂神本人记录笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值