基本数据类型包装l类

<h1>基本数据类型对象的包装类</h1>
 <ul>
 <li>基本数据类型分装成对象的好处在于可以在对象中定义更多的功能方法操作该对象中定义更多的功能方法操作该数据。</li>
 <li>常见的操作之一:用于基本的数据类型与字符串之间的装换。</li>
 <li>例如integer的parseInt方法,intValue()方法。</li>
 <li>基本数据类型对象的包装类。</li>
 <li>想要对基本数据类型进行更多的操作,最方便的方式就是将其分装对象</li>
 <li>为啥呢?因为在对象描述中就可以定义更多的属性,因为在对象描述中就</li>
 <li>可以定义更多的属性和行为对改基本类型进行操作</li>
 <li>byte Byte</li>
 <li>short Short</li>
 <li>int Integer</li>
 <li>long Long</li>
 <li>float Float</li>
 <li>double Double</li>
 <li>char Charater</li>
 <li>boolean Boolean</li>
 <li>基本类型变成对象的好处</li>
 <li>你知道int类型的取值范围是多少码?</li>
 <li>基本数据类型封装类</li>
 <li>可以将基本数据和字符串之间进行装换。</li>
 <li>基本数据类型---&gt;字符串</li>
 <li>String 静态 toString(基本数据类型) </li>
 <li>还有String类中方法Static String valueOf(基本类型)</li>
 <li>基本类型数据+&quot;&quot;</li>
 <li>重点要掌握的就是:字符串--&gt;基本数据类型</li>
 <li>基本类型 参数字符串 不需要对象就能用</li>
 <li>举例数字 parseInt(字符串基本类型数据格式的字符串)</li>
 <li>
 <p>在把个包装类有一个对象没有parse方法,就是Character</p>
 <p>System.out.println(&quot;23&quot;+1);
 System.out.println(1+Integer.parseInt(&quot;23&quot;));
 //java.lang.NumberFormatException数字格式异常
 System.out.println(1+Integer.parseInt(&quot;abc&quot;));
 单独讲一下Integer
 涉及到一个进制装换
 十进制--&gt;其他进制</p>
 </li>
 </ul>
 <blockquote>
 <p>二进制 static String toBinaryString(int);
 十六进制 static String toHexString(int);
 八进制 static String toOctalString(int)
 System.out.println(Integer.toBinaryString(6));
 System.out.println(Integer.toString(6,2));第一个参数是要转换的数,第二个参数是进制数
 其他进制转成十进制
 System.out.println(Integer.parseInt(&quot;110&quot;,2));第一参数是这个数字的字符串形式,第二个参数是这个数什么进制。</p>
 <p>基本数据类型之间的互相装换</p>
 <p>基本数据类型值和基本数据对象之间装换。</p>
 <p>基本数据类型的值----&gt;基本数据类型
 使用构造函数,可以接受基本数值,也可以是字符串
 使用基本数据类型对象中的方法 static Integer valueOf(int)
 基本类型对象---&gt;基本数据类型数值
 例如
 Integer i = new Integer(int value);
 int num =i.intValue();
 比较包装对象之间的
 Integer x = new Integer(34);
 Integer y = new Integer(&quot;34&quot;);
 System.out.println(x==y);//false
 System.out.println(x.equals(y));//true
 因为Integer覆盖类Object中的equals中的equals方法,建立Integer自己比较相同的方式,只要对象中的整数相等,即为对象相同
 int a =3,b=4;
 System.out.println(a&gt;b);//基本数据类型的比较。</p>
 </blockquote>
 <p>//如果两个数封装成了对象该如何比较呢?
 应该对象中提供比较行为
 Integer a = new Integer(3);
 Integer b = new Integer(4);
 System.out.println(a&gt;b);</p>
 <blockquote>
 <p>返回三个值,相等返回0,如果小返回负数,大了返回整数
 System.out.println(a.compartTo(b));</p>
 </blockquote>
 <p>对象想要进行比较,必须通过方法来完成,这个方法就是compare
 想要对象具备比较功能,只能实现Comparable接口
 基本数据类型值比较运算符进行比较
 引用数据类型使用compare</p>
 <p>在jdk1.5之后,基本数据类型对象包装类的新特性1’
 JDK1.5以后,简化了定义方式。
 Integer x = new Integer(4)可以直接写成
 Integer x =4;//自动装箱。
 x=x+5;自动拆箱。通过intValue方法
 需要注意
 在使用时,Integer x = null;上面的的代码就会出现NullPointerException.
 Integer i = new Integer(5);
 //基本数据类型对象包装类,对象创建的简化写法
 Integer i = 5;//自动装箱,自动完成了对象创建的动作。Integer。valueof
 i=i +5;//自动拆箱右边的i会转成数据(自动拆箱),然后再和进行拆箱.intValue()对象赋给i
 //一旦简化,就有弊端:多具备一个值null。记住要使用自动装箱拆箱时,建议进行null的健壮性判断
 Integer x= null;
 x=x.intValue()+4;
 //Boolean b =true和boolean =true;有什么不同?
 一个b是对象引用,一个是基本数据类型
 新特性 2
 Integer a =new Integer(127);
 Integer b = new Integer(127);
 System.out.println(a==b);//false
 System.out.println(a.equals(b));
 System.out.println(&quot;----------&quot;);
 Integer m = 127;
 Integer n = 127;
 System.out.println(m==n);//true
 System.out.println(m.equals(n));//true
 System.out.println(&quot;----------&quot;);
 Integer m = 128;
 Integer n = 128;
 System.out.println(m==n);//false
 System.out.println(m.equals(n));//true</p>
 <blockquote>
 <p>在jdk1.5后新特性自动装箱中,如果数值在byte类型范围内,如果该对象数值重复出现,多个引用其实指向同一个Integer对象。但是超出byte范围,都会生产新的Integer对象。
 show(5);//这个5就是个Integer对象
 public static void show(Object x){//Object x 接受到一个Integer对象。
 System.out.println(&quot;x=&quot;+x);
 }</p>
 </blockquote>
 <pre><code>package liwei.www.p1.stringbuffer;
  
 import java.util.Arrays;
  
 public class WrapperDemo1 {
  
 /**
 * @param args
 */
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 /*综合连习 &quot;34 9 -7 12 67 25&quot;要求对这个字符串中的数值从小到大排序
 * 然后生成一个有序的字符串。
 * */
 /*
 * 思路
 * 首先看到排序就想到了数组
 * 数组中的元素怎么获取
 * 把字符串拆分成数组
 * 4发现这个字符串居然有规律
 * 可以对字符串进行切割
 * 5将获取的数据存储到数组中排序,在将数组转成字符就可以
 */
 /*
 * 步骤
 * 将字符串切割组成的字符串、split
 * 定义一个int数组将字符串中的元素转成整数存储到int数组中
 * 3对int数组排序、
 * 4将int数组排序后转成一个字符串。
 *
 */
 String str = &quot;34 9 -7 12 67 25&quot;;
 str =sortStringNumber(str);
 System.out.println(str);
 }
  
 public static String sortStringNumber(String str) {
 // TODO Auto-generated method stub
 //1将字符串的数组通过制定进行切割获取字符串数组
 String[] str_num = toStringArray(str);
 //将字符串数组转化成int数组
 int [] num = toIntArray(str_num);
 //数组排序
 sortIntArray(num);
 //将int数组编成字符串
  
 return arrayToString(num) ;
 }
 private static String arrayToString(int[] num) {
 // TODO Auto-generated method stub
 //创建缓冲区
 StringBuilder sb = new StringBuilder();
 for(int i =0;i&lt;num.length;i++){
 if(i!=num.length-1){
 sb.append(num[i]+&quot; &quot;);
 }else{
 sb.append(num[i]);
 }
 }
 return sb.toString();
 }
  
 //数组排序
 private static void sortIntArray(int[] num) {
 // TODO Auto-generated method stub
 Arrays.sort(num);
  
 }
  
 private static int[] toIntArray(String[] str_num) {
 // TODO Auto-generated method stub
 int[] in = new int [str_num.length];
 for(int i =0;i&lt;str_num.length;i++){
 in[i]= Integer.parseInt(str_num[i]);
 }
 return in;
 }
  
 private static String[] toStringArray(String str) {
 // TODO Auto-generated method stub
  
 return str.split(&quot; &quot;);
 }
  
 }
 </code></pre>
  
 <p>小知识点就是加上空格,如果是固定可以把它定义成全局的常量
 private static final String SPACE =&quot; &quot;;</p>
### Java 基本数据类型及其包装 Java 是一种面向对象的编程语言,提供了八种基本数据类型以及对应的包装。以下是每种基本数据类型的名称、对应包装及取值范围: #### 1. `byte` 和 `Byte` - **基本数据类型**: `byte` - **包装**: `Byte` - **取值范围**: `-128` 到 `127` (共 256 个值)[^1] ```java byte minValue = Byte.MIN_VALUE; // -128 byte maxValue = Byte.MAX_VALUE; // 127 ``` --- #### 2. `short` 和 `Short` - **基本数据类型**: `short` - **包装**: `Short` - **取值范围**: `-32,768` 到 `32,767` (共 65,536 个值) ```java short minValue = Short.MIN_VALUE; // -32768 short maxValue = Short.MAX_VALUE; // 32767 ``` --- #### 3. `int` 和 `Integer` - **基本数据类型**: `int` - **包装**: `Integer` - **取值范围**: `-2,147,483,648` 到 `2,147,483,647` (共约 43 亿个值) ```java int minValue = Integer.MIN_VALUE; // -2147483648 int maxValue = Integer.MAX_VALUE; // 2147483647 ``` --- #### 4. `long` 和 `Long` - **基本数据类型**: `long` - **包装**: `Long` - **取值范围**: `-9,223,372,036,854,775,808` 到 `9,223,372,036,854,775,807` ```java long minValue = Long.MIN_VALUE; // -9223372036854775808L long maxValue = Long.MAX_VALUE; // 9223372036854775807L ``` --- #### 5. `float` 和 `Float` - **基本数据类型**: `float` - **包装**: `Float` - **取值范围**: 大约为 ±3.4e−45 至 ±3.4e+38,精度为单精度浮点数 (大约 7 位有效数字) ```java float minValue = Float.MIN_VALUE; // 约等于 1.4E-45 float maxValue = Float.MAX_VALUE; // 约等于 3.4E+38 ``` --- #### 6. `double` 和 `Double` - **基本数据类型**: `double` - **包装**: `Double` - **取值范围**: 大约为 ±4.9e−324 至 ±1.8e+308,精度为双精度浮点数 (大约 15~16 位有效数字) ```java double minValue = Double.MIN_VALUE; // 约等于 4.9E-324 double maxValue = Double.MAX_VALUE; // 约等于 1.8E+308 ``` --- #### 7. `char` 和 `Character` - **基本数据类型**: `char` - **包装**: `Character` - **取值范围**: `\u0000` (即 0) 到 `\uffff` (即 65,535),表示 Unicode 字符集中的字符 ```java char minValue = Character.MIN_VALUE; // '\u0000' char maxValue = Character.MAX_VALUE; // '\uffff' ``` --- #### 8. `boolean` 和 `Boolean` - **基本数据类型**: `boolean` - **包装**: `Boolean` - **取值范围**: 只有两个可能值:`true` 或 `false` ```java boolean valueTrue = true; boolean valueFalse = false; ``` --- ### 自动装箱与拆箱 在 Java 中,可以通过自动装箱和拆箱机制实现基本数据类型与其包装之间的无缝转换。例如: ```java // 装箱操作 Integer boxedValue = 10; // 拆箱操作 int unboxedValue = boxedValue; ``` 上述代码中,`Integer.valueOf(10)` 方法被隐式调用来完成装箱过程;而在拆箱过程中,则通过调用 `intValue()` 完成转换[^4]。 --- ### 使用包装的意义 尽管基本数据类型具有更高的运行效率,但在某些场景下使用包装更加灵活。例如,在集合框架中存储元素时,必须使用引用类型而非基本数据类型。此外,包装还提供了丰富的静态方法来处理数值运算和其他功能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值