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

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');  
    }  
  
}



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);

	}
}



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);
	}
}



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);
	}
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值