9.1 装箱拆箱封装类所有的基本类型,都有对应的类类型 。比如int对应的类是Integer,这种类就叫做封装类 。
package digit;public class TestNumber {public static void main(String[] args) {int i = 5;//把一个基本类型的变量,转换为Integer类型Integer it = new Integer(i);//把一个Integer对象,转换为一个基本类型的intint i2 = it.intValue();}}Number类数字封装类有Byte,Short,Integer,Long,Float,Double 。这些类都是抽象类Number的子类 。
文章插图
自动装箱与拆箱不需要调用构造 *** ,通过**=**符号自动把 基本类型 转换为 类类型 就叫装箱
不需要调用Integer的intValue *** ,通过**=就自动转换成int类型**,就叫拆箱
package digit; public class TestNumber {public static void main(String[] args) {int i = 5;//基本类型转换成封装类型Integer it = new Integer(i);//自动转换就叫装箱Integer it2 = i;//封装类型转换成基本类型int i2 = it.intValue();//自动转换就叫拆箱int i3 = it;}}
int的更大值和最小值int的更大值可以通过其对应的封装类Integer.MAX_VALUE获取
package digit;public class TestNumber {public static void main(String[] args) {//int的更大值System.out.println(Integer.MAX_VALUE);//int的最小值System.out.println(Integer.MIN_VALUE);}
9.2字符串转换
数字转成字符串 *** 1: 使用String类的静态 *** valueOf*** 2: 先把基本类型装箱为对象,然后调用对象的toString
package digit;public class TestNumber {public static void main(String[] args) {int i = 5;// *** 1String str = String.valueOf(i);// *** 2Integer it = i;String str2 = it.toString();}}
字符串转成数字调用Integer的静态 *** parseInt
package digit;public class TestNumber {public static void main(String[] args) {String str = "999";int i= Integer.parseInt(str);System.out.println(i);}}
练习把浮点数 3.14 转换为 字符串 "3.14" 再把字符串 “3.14” 转换为 浮点数 3.14
如果字符串是 3.1a4,转换为浮点数会得到什么?
public class TestNumber {public static void main(String[] args) {double i = 3.14;String str = String.valueOf(i);System.out.println("3.14转换成的字符串 " + str);double i2 = Float.parseFloat(str);System.out.println("\"3.14\"转换成的浮点数 " + i2);String str2 = "3.1a4";double i3 = Float.parseFloat(str2);System.out.println("\"3.1s4\"转换成的浮点数 " + i3);}}
文章插图
9.3数学 ***
四舍五入, 随机数,开方,次方,π,自然常数public class TestNumber {public static void main(String[] args) {float f1 = 5.4f;float f2 = 5.5f;//5.4四舍五入即5System.out.println(Math.round(f1));//5.5四舍五入即6System.out.println(Math.round(f2));//得到一个0-1之间的随机浮点数(取不到1)System.out.println(Math.random());//得到一个0-10之间的随机整数 (取不到10)System.out.println((int)( Math.random()*10));//开方System.out.println(Math.sqrt(9));//次方(2的4次方)System.out.println(Math.pow(2,4));//πSystem.out.println(Math.PI);//自然常数System.out.println(Math.E);}}
练习-数学 ***
文章插图
public class TestNumber {public static void main(String[] args) {int n = Integer.MAX_VALUE;double value = https://www.juguize.com/b/Math.pow((1 + 1/(double)n),n);System.out.println("n 取更大整数时value: " + value);double error = Math.abs(Math.E - value);System.out.println("error = " + error);}}
文章插图
练习-质数统计找出一千万以内,一共有多少质数 。
质数概念: 只能被1和自己整除的数 。
public class TestNumber {public static boolean IsZ(int i){for (int j = 2;j <= Math.sqrt(i);j++){if(i % j == 0) {return false;}}return true;}public static void main(String[] args) {int max_n = 10000000;int count = 0;for(int i = 2;i < max_n;i++){if(IsZ(i)){count++;}}System.out.println("一千万以内的质数共有" + count);}}
文章插图
9.4 格式化输出
格式化输出如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了 。
%s 表示字符串 %d 表示数字 %n 表示换行
public class TestNumber {public static void main(String[] args) {String name ="盖伦";int kill = 8;String title="超神";//直接使用+进行字符串连接,编码感觉会比较繁琐,并且维护性差,易读性差String sentence = name+ " 在进行了连续 " + kill + " 次击杀后,获得了 " + title +" 的称号";System.out.println(sentence);//使用格式化输出//%s表示字符串,%d表示数字,%n表示换行String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";System.out.printf(sentenceFormat,name,kill,title);//使用format格式化输出System.out.format(sentenceFormat,name,kill,title);}}
推荐阅读
- 錾刻 錾
- 瓦肆是什么意思 瓦斯是什么
- Columbia是什么牌子的刀 columbia是什么牌子
- 豆豉酱,豆瓣
- 天然气锅炉显示e9是什么意思 天然气显示e9是什么意思
- cover什么意思,cover
- 运营商锁
- 畜的动物是什么 牲畜是指哪些动物?
- 东京奥运会首金是什么 东京奥运会首金是哪个国家拿走了??
- 淀粉是什么原料做成的 淀粉是什么做的?