package com.bjpowernode.javase1.integer1;
public class IntegerTest07 {
public static void main(String[] args) {
// 手动装箱
Integer integer = new Integer(1000);
//手动装箱
int qwe = integer.intValue();
System.out.println(qwe);
Integer integer1 = new Integer("123");
/* (NumberFormatException.java:65)
* NumberFormatException 数字格式异常 */
System.out.println(integer1);
// 编译的时候没问题,一切符合java语法,运行时会不会出问题呢?
// 不是一个“数字”可以包装成Integer吗?不能。运行时出现异常。
// java.lang.NumberFormatException
//Integer a = new Integer("中文");
// 重点方法
// static int parseInt(String s)
// 静态方法,传参String,返回int
//网页上文本框中输入的100实际上是"100"字符串。后台数据库中要求存储100数字,此时java程序需要将"100"转换成100数字。
/*这个重点方法常用的原因:
* 在网页上输入的是字符串,数据后台保存的是数字,需要java进行转换,
* 把字符串转化为数字(基本数据类型),才能保存到数据库中*/
int a1 = Integer.parseInt("123");
/*parseInt 这个方法就是对字符串进行处理的*/
/* String --> int
* 包装类 --> 基本数据类型
* String 不是基本类型 */
System.out.println(a1 + 100);
/*进行加减运算,那么这个 a1 有没有 new 一个新的,产生了几个对象?
* 答:a1是string转换为int ,不涉及到 对象
* 基本数据类型可以进行加减,string和包装类这种需要转换为基本数据类型进行加减 */
// 包装类.parseInt 照葫芦画瓢 ,做一个double
double a2 = Double.parseDouble("3.1415926");
/* String --> double */
System.out.println(a2);
/*这个照葫芦画瓢,我这边是局限于Integer,还有Double,Float等
* 都可以调用这些方法*/
/*为什么要解析这种,直接自动拆箱会快很多?
* //因为 直接自动装拆箱是不带String的,需要基本类型和包装类对应进行
* .parseInt(基本数据类型可以变换)(包装类的方法) 就是专门转String的
* */
double a3 = Double.valueOf(3.1415926);
/*手动拆箱*/
System.out.println(a3);
System.out.println("===========");
Double x = 3.1415926;
/*自动装箱*/
double y = x;
/*自动拆箱*/
System.out.println(y);
System.out.println("===========");
// 照葫芦画瓢 ,Double,Float
double a4 = Double.parseDouble("3.1415926");
System.out.println(a4 + 1);
/* 这种也叫做拆箱,转换成基本数据类型就可以进行加减乘除*/
System.out.println("===========");
float a5 = Float.parseFloat("1.0");
System.out.println(a5 + 123);
System.out.println("===========");
// -----------------------------------以下内容作为了解,不需要掌握---------------------------------------
// static String toBinaryString(int i)
// 静态的:将十进制转换成二进制字符串
/*静态的也就是也就是意味着,可以通过类名.方法名进行调用
* Integer类名.toBinaryString(方法名)*/
String a6 = Integer.toBinaryString(3);
System.out.println(a6); //"11" 二进制字符串
// static String toHexString(int i)
// 静态的:将十进制转换成十六进制字符串
String a7 = Integer.toHexString(16);
System.out.println(a7); //10
// 十六进制:1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a
a7 = Integer.toHexString(17);
System.out.println(a7); //11
/*为什么 a7 可以带上数据类型也可以不带上数据类型
* 这一步叫什么?
* 答:调用静态方法*/
//static String toOctalString(int i)
// 静态的:将十进制转换成八进制字符串
String a8 = Integer.toOctalString(8);
System.out.println(a8); //10
System.out.println(new Object()); //java.lang.Object@1b6d3586 //哈希码
/*
*
*public String toString() {
getClass().getName() + "@" + Integer.toHexString(hashCode());
}
* hashCode()
* public native int hashCode();
* 返回int,是十进制,toHexString将其十进制转换为16进制
*
*
* */
System.out.println("=======");
String q1 = "abc";
String q2 = q1.toUpperCase();
System.out.println(q2);
System.out.println("=======");
String s = new String("abc");
String s1 = s.toUpperCase();
System.out.println(s1);
}
}
输出:
1000
123
223
3.1415926
3.1415926
===========
3.1415926
===========
4.1415926
===========
124.0
===========
11
10
11
10
java.lang.Object@1b6d3586
=======
ABC
=======
ABC
进程已结束,退出代码 0