JAVA学习*数据类型与变量

字面常量

是直接在代码中表示的固定值,在程序运行期间不会发生改变。
如:整数常量(十进制、二进制等)、 浮点常量(十进制、二进制、科学计数法等)、字符常量 {用单引号 ‘’ 括起来的单个字符}(普通字符、转义字符或 Unicode 字符)、字符串常量 {由 “” 括起来的零个或多个字符序列}、布尔常量(只有两种true和false,用于表示逻辑上的真和假)、空常量(null)。

数据类型

在Java中数据类型主要分为两类:基本数据类型和引用数据类型。

Java中基本数据类型有四类八种。

整数类型:byte、short、int、long。
浮点类型:float、double。
字符类型:char。
布尔类型:boolean。

数据类型 关键字 占用内存 范围
字节型 byte 1字节 -128 ~ 127
短整型 short 2字节 -32768 ~ 32767
整型 int 4字节 -2^31 ~ (2^31)-1
长整型 long 8字节 -2^61 ~ (2^61)-1
单精度浮点型 float 4字节 有范围,一般不关注
双精度浮点型 double 8字节 有范围,一般不关注
字符型 char 2字节 0 ~ 65535
布尔型 boolean 无明确规定 true 和 false

注意

1、与C++不同,不论是在16位系统还是32位系统,int类型都占用4个字节,long都占8个字节
2、整型和浮点型都是带有符号的
3、整型默认为int型,浮点型默认为double
4、字符串属于引用类型
5、在C/C++中,char类型占1个字节。而Java中char类型占2个字节
6、Java 的 boolean 类型只有两个值:true 和 false,不能用 0 或非 0 整数来代替。这种严格的类型定义避免了一些潜在的逻辑错误。

变量

声明变量:

声明变量的数据类型和名称。

数据类型 变量名

初始化变量:

在声明变量的同时或之后为其赋值。

数据类型 变量名 =

整型变量

整型变量

//在定义时赋初始值
int a = 10;
System.out.println(a);

//在定义时没有给初始值,但使用前必须设置初值
int b;
b = 20;
System.out.println(b);

//当定义后,在使用前如果没有赋值,则编译期间会报错
int c;
System.out.println(c);//报错
c = 30;

//所赋的值不能超过范围
int d = 2147483648;// 编译时报错,初值超过了int的范围

//int型变量所能表⽰的范围:
System.out.println(Integer.MIN_VALUE); 
System.out.println(Integer.MAX_VALUE);//int的包装类型为Integer

长整型变量

long a = 10L;//为了区分int和long类型,long类型变量的初始值之后加L或者l,推荐加L
System.out.println(a);

//long型变量所能表⽰的范围:
System.out.println(Long.MIN_VALUE); 
System.out.println(Long.MAX_VALUE);//long的包装类型为Long

短整型变量

short a = 10;
System.out.printlen(a);

//short型变量所能表⽰的范围:
System.out.println(Short.MIN_VALUE); 
System.out.println(Short.MAX_VALUE);//short的包装类型为Short

字节型变量

byte b = 10;
System.Out.println(b);

//byte型变量所能表⽰的范围:
System.out.println(Byte.MIN_VALUE); 
System.out.println(Byte.MAX_VALUE);//byte的包装类型为Byte

浮点型变量

双精度浮点型

double d = 3.14;
System.out.println(d);

int a = 3;
int b = 2;
System.out.println(a/b);//输出1
double a = 3;
double b = 2;
System.out.println(a/b);//输出1.5
double num = 1.1;
System.out.println(num * num);//输出1.2100000000000002
//浮点数是个近似值,并不是精确值。
//与C/C++类似

单精度浮点型

float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);

字符型变量

char ch1 = 'A';
char ch2 = '1';
char ch3 = '中'//由于char类型占两个字节,可以使用中文

在 C 语言中使用ASCII表示字符,而Java 中使用Unicode表示字符。

布尔型变量

boolean b = true; 
System.out.println(b);//输出true
b = false; 
System.out.println(b);//输出false
int a = 10;
boolean b = !a;//报错,只能结合布尔表达式(true或者false)
boolean b = !(a == 10);//输出false

char的包装类型为Character
Java的boolean类型和int不能相互转换,不能用1表示true,0表示false!

类型转换

Java是强类型的编程语言。

自动类型转换

编译器会自动进行类型转换:将数据范围小的转换成数据范围大的。

int a = 10;
long b = 100L;
b = a;//编译通过。int--->long,自动转换

强制类型转换

int a = 10;
long b = 100L;
a = b;//编译失败。
a = (int)b;//long--->int,强制类型转换,会造成数据丢失

byte b1 = 100;//100默认为int,没有超过byte范围,自动转换类型
byte b2 = (byte)257;//257默认为int,超过byte范围,需要强制类型转换,否则报错

类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

int - long: int会被提升为long
int a = 10;
long b = 20L;
int c = a+ b;//报错;int + long-->long + long-->long,赋给int时会丢失数据
long c = a+ b;//编译成功

不同类型的数据混合运算,范围小的会提升成范围大的.

byte与byte的运算
byte a = 10;
byte b = 20;
byte c = a + b;//编译报错

对于 short、byte 这种比4个字节小的类型,会先提升成4个字节的 int,再运算。

字符串类型

String类定义字符串类型。

String str1 = "Hello";
System.out.println("str1: " + str1);//输出 str1: Hello
String str2 = "World!";
System.out.println("str2: " + str2);//输出 str2: World!
String str3 = str1 + " " + str2;//str1 + str2表示:将str1与str2进行拼接
System.out.println("str3: " + str3);//输出 str3: Hello World!
int a = 10;
int b = 20;
System.out.println("a + b = " + a + b);//输出 a + b = 1020
//按照顺序都是完成的字符串拼接
System.out.println("a + b = " + (a + b));//输出 a + b = 30
//先算的括号内的int加法运算
System.out.println(a + b + " = a + b");//输出 30 = a + b
//先完成整型运算,在进行字符串拼接

将int转成String

int num = 123;
String s1 = num + "";
String s2 = String.valueOf(num);
String s2 = String.valueOf(234);
//同时,通过调用String.valueOf()方法,可以将任意类型转换为字符串类型

将String转成int

String str1 = "100";
int num = Integer.parseInt(str1);
System.out.println(num + 1);//输出 101

将String转成double

String str1 = "1.5";
double num = Double.parseDouble(str1);
System.out.println(num + 1);//输出 2.5

你可能感兴趣的:(java,学习)