一些大数问题
最近在做蓝桥杯的一些题目,有一些的数字是很大的,放在int(Integer)中放不下,所以我们选择用long存放,有一些需要注意的点。
- 在使用scanner 读入一个大数的时候,要使用scanner.nextLong().
- long 和 int 基本类型的转换
int a ;
long b;
long c =(long)a; //int 转 long
int d =(int) b; //long 转 int
- 要记住int类型的极值
最大值->2,147,483,647 (2^31 - 1)
最小值->-2,147,483,648(-2^32)
数据类型的转换
了解数据类型。
Java的数据类型有基本类型和包装类型,每一个基本类型都对应了一个包装类型
包装类型的相关知识点
Q1:什么是包装类型?
A1:将基本的数据类型封装成了类。就有了包装类型
Q2:为什么要有包装类型?
A2:Java是一个面向对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型。
Q3:包装类型和基本类型的不同?
A3:
-
声明方式不同:基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
-
存储方式及位置不同:基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中创建,对象的引用在栈中创建,通过栈的引用来使用该包装类。
-
初始值不同:基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;
-
使用方式不同:基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。
在java中,所有的对象都是object的子类,容器(List,Map,Collection)是只支持object类型的,所以我们在容器内要放对象类型(Integer等)而不能直接放基本类型(int等)。
数据类型的分类
-
整型的4种基本数据类型
byte:8位、有符号
short:16位、有符号
int: 32位、有符号 -2,147,483,648(-2^ 32)到2,147,483,647 (2^31 - 1)
long:64位、有符号 -
浮点数的数据类型有2种。
float:32位,
double:64位 -
字符类型
char:一个单一的 16 位 Unicode 字符。 -
布尔类型
boolean:取值只有真(true)和假(false). -
封装类型和基本类型的对应关系如图。
图片来源:图片来源
数据类型的相互转换
举几个常用的例子~
- int 和Interger的转换
// int 转Integer
Integer a=Integer.valueOf(int)
//Interger转int 自动转换
Integer i=3;
int j=i;
- 基本类型和String的相互转换
//基本类型转String,可以先转为封装类,在使用封装类的toString()方法。
Integer i=new Integer(3);
String a=i.toString();
System.out.println(a);
//String转基本类型,也可以先转成封装类,在转成基本类型
Integer i=Integer.valueOf("hello");
int j=i;