目录

一、输出机制

1.print和println的差别

2.可接收不同类型参数

3.输出函数中 + 符号的使用

二、数据类型

1.整型类型

2.浮点类型

3.字符类型

三、基本数据类型转换

1.自动类型转换

2.强制类型转换 

3.练习题

四、基本数据类型和String类型的转换

1.基本类型转String类型

2.String类型转基本类型


一、输出机制

1.print和println的差别

将接收到的内容转化为成字符串形式输出,输出方式不会换行


System.out.print();


自动换行


System.out.println();


2.可接收不同类型参数

类似C++的cout内置对象,Java也使用了重载的方式来接受不同类型的参数,例如字符串、整数、浮点数等。当调用System.out.println()函数是,Java会根据传递的参数类型自动选择合适的函数版本。

代码如下:


public class test {
    public static void main(String[] args) {
        int i = 10;
        System.out.println(i);// 接收整型
        String message = "Hello World!\n";// 接收字符串类型
        System.out.println(message);
    }
}


输出结果:


10
Hello World!


3.输出函数中 + 符号的使用

将数字转换为字符串形式然后输出


System.out.println(100 + 98); // 198
System.out.println("100" + 98);// 10098
System.out.println(100 + 3 + "hello");// 103hello
System.out.println("hello" + 100 + 3);// hello1003


二、数据类型

java 打印实体类的值 java 打印数据类型_ico

Java没有显式指针,Java中的引用类型是一种特殊的数据类型,它存储了一个对象的地址,而不是对象本身。因此,Java中的引用类型可以看作是指向对象的指针 。与C++不同的是,Java中的引用类型不能进行指针运算,也不能直接访问对象的内存地址。

1.整型类型

类型

占用存储空间

范围

byte [字节]

1字节

-128 ~ 127

short [短整型]

2字节

-(2^15) ~ 2^15 - 1

int [整型]

4字节

-(2^31) ~ 231 - 1

long [长整型]

8字节

-2^63 ~ 2^63 - 1

2.浮点类型

类型

占用存储空间

范围

float [单精度浮点数]

4字节

-3.403E38 ~ 3.403E38

double [双精度浮点数]

8字节

-1.798E308 ~ 1.798E308

注意:

1.Java 的浮点型常量(具体值)默认为double型,声明float型常量,须后加 'f' 或 'F' 。
 

2.浮点型常量有两种表示形式

十进制数形式:如:5.12           512.0f          .512(必须有小数点)

科学计数法形式:如: 5.12e2 [5.12*10的2次方]     5.12E-2 [5.12*10的-2次方]


3.通常情况下,应该使用double型,因为它比float型更精确。

[举例说明]double num9 = 1234567851;

                float num10 = 2.1234567851F;


4.浮点数使用陷阱: 2.7 和 8.1 / 3 比较

double num7 = 2.7; double num8 = 8.1 / 3; if(Math.abs(num7 - num8) < 0.00001) { System.out.println("相等~~"); }

tip: 8.1 / 3 是接近 2.7 的一个小数,而不是 2.7

3.字符类型

Java 的 char 类型和 C++ 的 char 类型之间的差异

  1. 大小:Java 中的 char 类型是 16 位无符号整数,而 C++ 中的 char 类型通常是 8位有符号整数(尽管它的确被定义为一个字节)。
  2. 范围:Java 中的 char 类型可以表示从 '\u0000' 到 '\uffff' 的 Unicode 字符,而 C++ 中的 char 类型可以表示从 0 到 255 的 ASCII 字符。
  3. 字面量:在 Java 中,字符字面量用单引号表示,例如 'a' 或 '\u0061'。在 C++ 中,字符字面量用单引号表示,例如 'a' 或 97(即 ASCII 码)。
  4. Unicode 支持:Java 中的 char 类型可以直接表示 Unicode 字符,而 C++ 中的 char 类型需要使用 Unicode 转义序列(如 '\u0061')来表示 Unicode 字符。

1.可以直接给char赋一个整数,然后输出时,会按照对应的unicode 字符输出。

例如:char c3 = 97; c3输出为字符a

2.Java中还允许使用转义字符“’来将其后的字符转变为特殊字符型常量。

例如: char c3 = '\n';
3.在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。

转换工具

4.char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码。

(与C++相同)

【扩展】字符编码表

ASCII

ASCII 编码表 一个字节表示,一个128 个字符,实际上一个字节可以表示256个字符,只用128个。

【ASCII码】ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0。

特别提示:一个字节可以表示256个学符,ASCII码只用了128个字符。
【缺点】不能表示所有字符。

Unicode

Unicode 编码表 固定大小的编码 使用两个字节来表示字符,字母和汉字统一都是占用两个字节这样浪费空间。

【好处】一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用 Unicode 没有乱码的问题。

【缺点】一个英文字母和一个汉字都占用2个字节,这对于存储空间来说是浪费的。
2的16次方是 65536,所以最多编码是65536个字符。

编码0-127的字符与ASCII的编码一样

比如:a' 在ASCII码是 0x61,在 unicode码是0x0061,都对应97。因此Unicode码兼容 ASCII码

utf-8

编码表,大小可变的编码 字母使用1个字节,汉字使用3个字节。

  1. UTF-8 是在互联网上使用最广的一种 Unicode 的实现方式(改进)
  2. UTF-8 是一种变长的编码方式。它可以使用 1-6 个字节表示一个符号,根据不同的符号而变化字节长度。
  3. 使用 大小可变的编码 字母占1个字节,汉字占3个字节3

GBK

可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节。

gb2312

可以表示汉字,gb2312 < gbk。

big5 码(繁体中文,台湾,香港)

三、基本数据类型转换

1.自动类型转换

相等于C++的隐式类型转换(通过临时对象进行)

java 打印实体类的值 java 打印数据类型_java 打印实体类的值_02

例如:

int a = 'c';
double d = 80;

【注意】

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
  2. 当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换
  3. (byte, short) 和 char 之间不会相互自动转换。
  4. byte, short, char他们三者可以计算,在计算时首先转换为int类型。
  5. boolean不参与转换。
  6. 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。

2.强制类型转换 

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出。

注意

1.当进行数据的大小  从 大————>小,就需要使用到强制转换。

2.强转符号只针对于最近的操作数有效,往往使用小括号提升优先级。
3.char类型可以保存 int 的常量值,但不能保存int的变量值,需要强转。
 

char c1 = 100; // ok int m = 100; // ok char c2 = m; // 错误 char c3 = (char)m; // ok System.out.println(c3); // 100对应的字符

4.byte和short, char 类型在进行运算时,当做int类型处理。

演示如下:

int c = (int)7.98;
System.out.print(c);

输出为:

7

3.练习题

java 打印实体类的值 java 打印数据类型_Java_03

四、基本数据类型和String类型的转换

1.基本类型转String类型

语法:基本类型的值 + " "

演示如下:

//...
int n1 = 100;
float n2 = 1.1f;
double n3 = 3.4;
boolean n4 = true;
String str1 = n1 + " ";
String str2 = n2 + " ";
String str3 = n3 + " ";
String str4 = n4 + " ";
System.out.println(str1 + " " + str2 + " " + str3 + " " + str4);
//...

输出结果:

100  1.1  3.4  true

2.String类型转基本类型

语法:XX.parseXX("基本类型的值");

演示:

int n1 = Integer.parseInt("123");
double n2 = Double.parseDouble("123.1");
float n3 = Float.parseFloat("123.45");
short n4 = Short.parseShort("12");
long n5 = Long.parseLong("12345");
boolean n6 = Boolean.parseBoolean("true");
Byte n7 = Byte.parseByte("12");