java学习日志(一)---String、Integer、int之间的类型转换

时间:2022-07-01 15:41:25

1.明确包装类型与基本数据类型的别。

java分为基本数据类型和引用类型。

包装类型就是基础数据类型的引用类型,如数据类型int对应包装类型的integer,还有其它等。

java的8种基本类型:byte,short, char, int, long,float,double,boolean。

与此对应的,java提供了8种包装类型:Byte,Short,Character,Integer,Long,Float,Double,Boolean。

int是基本类型,直接存数值。integer是类,产生对象时用一个引用指向这个对象。

java把内存分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,而实际的对象实在存储堆内存中,即:

int i=5;//直接在栈中分配空间
  Integer i=new Integer(5);//对象是在堆内存中,而i是在栈内存中
在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理。因为在堆中分配空间所需的时间远大于从栈中分配存储空间,所以JAVA速度比C慢。当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。


2.适当练习valueOf()、xxxValue()、parseXxx()方法。

valueOf() --> 类的静态方法,返回一个包装类。

xxxValue()--> 用于把包装类转换为基本数据类型。

parseXxx() --> 静态方法,返回基本数据类型。


3.类型转换。(重点)

public class StudyDiary01  
{
public static void main(String[] args)
{
//String --> int
String s = "111";
int i1 = Integer.parseInt(s); //直接使用静态方法,不会产生多余的对象,但会抛出异常
System.out.println("String --> int : i1=" + i1);

int i2 = Integer.valueOf(s).intValue(); //Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
System.out.println("String --> int : i2=" + i2);

int i3 = Integer.parseInt(s,10);//若int i = Integer.parseInt("123",16);即可以看成i = 1*16*16+2*16+3
System.out.println("String --> int : i3=" + i3 + '\n');


//int --> String
int j = 222;
String t1 = String.valueOf(j);//直接使用String类的静态方法,只产生一个对象
System.out.println("int --> String : t1=" + t1);

String t2 = Integer.toString(j); //直接使用静态方法,产生新的对象,会抛出异常
System.out.println("int --> String : t2=" + t2);

String t3 = "" + j; //会产生两个String对象
System.out.println("int --> String : t3=" + t3 + '\n');


//int --> Integer
int m = 333;
Integer n1 = m; //装箱
System.out.println("int --> Integer:n1=" + n1);

Integer n2 = new Integer(n1);
System.out.println("int --> Integer:n2=" + n2);

Integer n3 = Integer.valueOf(n2);
System.out.println("int --> Integer:n3=" + n3 + '\n');


//Integer --> int
Integer x=444;
int y1 = x; //拆箱
System.out.println("Integer --> int:y1=" + y1);

int y2 = x.intValue();
System.out.println("Integer --> int:y2=" + y2);

int y3 = Integer.valueOf(x);
System.out.println("Integer --> int:y3=" + y3 + '\n');


//String --> Integer
String r = "555";
Integer k1 = Integer.valueOf(r); //这种方法常用
System.out.println("String --> Integer:k1=" + k1);

Integer k2 = new Integer(r);
System.out.println("String --> Integer:k2=" + k2);

Integer k3 = Integer.parseInt(r);
System.out.println("String --> Integer:k3=" + k3);

Integer k4 = Integer.parseInt(r,10);
System.out.println("String --> Integer:k4=" + k4 + '\n');


//Integer --> String
Integer l = 666;
String z1 = String.valueOf(l);
System.out.println("Integer -->Stringf:z1=" + z1);

String z2 = l.toString();
System.out.println("Integer -->Stringf:z2=" + z2);

String z3 = "" + l;
System.out.println("Integer -->Stringf:z3=" + z3 + '\n');
}

}

java学习日志(一)---String、Integer、int之间的类型转换


4.通过键盘输入,初始化两个数将这两个数值交换后,输出显示后的数据。

import java.util.Scanner;

public class HomeWork1
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.println("请输入第一个值:");
int a=input.nextInt();
System.out.println("请输入第二个值:");
int b=input.nextInt();
System.out.println("交换之前的两个数为:"+a+","+b);
int c;
c=a;
a=b;
b=c;
System.out.println("交换之后的两个数为:"+a+","+b);

}
}

java学习日志(一)---String、Integer、int之间的类型转换


5.定义一个五位整数,求各个位上的数的和。

import java.util.Scanner;

public class Sum
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.println("请输入一个5位数:");
int m=input.nextInt();

//从各位开始取
int sum=0;
for(int i=0;i<5;i++)
{
int f=m%10;
sum+=f;
m=m/10;
}
System.out.println("各位数的和为:"+sum);
}
}

java学习日志(一)---String、Integer、int之间的类型转换


6.根据天数计算周数和剩余的天数。天数通过键盘输入。

import java.util.Scanner;

public class Week
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.println("请输入天数:");
int day=input.nextInt();
int a,b;
a=day/7;
b=day%7;
System.out.println("周数为:"+a+"\n剩余天数为:"+b);
}
}

java学习日志(一)---String、Integer、int之间的类型转换