数据类型封装、小数运算问题、String类

简介: 封装数据类型(在java.lang包下):封装数据类型声明结构:(也可以单做数据类使用) byte Byte ;    short  Short;  int  Integer(长用类型 ) ; long  Long;     float  Float;   double    Double; char  Character; boolean Boolean; 封装数据类型:                       能通过类名调用的方法或属性都是静态的static封装数据类型,对基本数据类型的封装,封装数据类型是一个工具类。
封装数据类型(在java.lang包下):

封装数据类型声明结构:(也可以单做数据类使用)

byte Byte ;    short  Short;  int  Integer(长用类型 ) ; long  Long;     float  Float;   double    Double; char  Character; boolean Boolean;


封装数据类型:
                      能通过类名调用的方法或属性都是静态的static封装数据类型,对基本数据类型的封装,封装数据类型是一个工具类。

                      封装数据类型第一个字母是大写,封装一个类。

                      封装数据类型是一个类,他的占用内存比基本数据类型要打,封装完就是一个对象了。

                      也可以当基本数据类型来使用。


装箱拆箱:

               Integer i=100 转换成 Integer i=Integer.valueof(100)这种转换就叫做装箱 

               能直接通过类名调用的都是静态方法。

               基本数据类型按道理是不能接受封装数据类型的,因为封装数据类型他是一个操作类。

               int i=Integer.valueOf("100");

      基本数据类型之所以能接受是因为它调用封装中的一个转换int类型的方法,将它转换int类型,再赋值给基本数据类型。

              这就叫做拆箱,不会强制转换类型转换。

              基本数据类型是不能接受对象类型的,通过返回来接收,返回的值

     

public class T1 {
    public static void main(String[] args) {
        int i=Integer.parseInt("15");//将字符串转换成int型的十进制
        System.out.println(i);
    }
}


如何解决小数运算问题,有一个类可以解决:BigDecimal


import java.math.BigDecimal;

public class T1 {
    public static void main(String[] args) {
        BigDecimal bigDecimal = BigDecimal.valueOf(0.13);
        BigDecimal bigDecimal1 = BigDecimal.valueOf(5.0);
        BigDecimal bigDecimal2 = bigDecimal.add(bigDecimal1);//加法
        BigDecimal bigDecimal3 = bigDecimal1.subtract(bigDecimal);//减法
        BigDecimal bigDecimal4 = bigDecimal.multiply(bigDecimal1);//乘法
        BigDecimal bigDecimal5 = bigDecimal1.divide(bigDecimal, 3, 3);//除法有除不尽报错问题
        //这个是解决:divisor:除数,scale:标度,即保留几位
        //roundingMode:舍入模式,具体可以查看api有详细解释,大概有直接舍弃、直接进位、接近四舍五入等
        System.out.println(bigDecimal2);
        System.out.println(bigDecimal3);
        System.out.println(bigDecimal4);
        System.out.println(bigDecimal5);
    }
}

String类:

               String类是一个对象。

String类创建原理:

String s2=new String("abcd")

"abcd"、新创建的String对象。

只要带有“”引号都是字符串对象创建。

字符串类型有一个优化:字符串池,举例 如果字符串中例如有 “abc”下次在申请的话就会直接在字符串池中那但 如果不是 abc他就会从新创建对象。

字符串类型有个禁忌:字符串有一件事情不能做,那就是字符串不断的累加(因为字符串是对象,如果连续申请的话就是连续申请对象很浪费内存)

压缩:

         进制如果存储的数越大,显示的长度越长。

         压缩有压缩长度的作用。

         压缩就是将相同字节连接在一起,压缩文字。

         比如6个66字节就是6x66解压就是将66解压缩

         压缩视频就是质量压缩,压缩像素

目录
相关文章
|
14天前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
32 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
10天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
15 2
|
13天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
14 1
|
16天前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
47 4
|
21天前
|
存储 安全 Java
【一步一步了解Java系列】:认识String类
【一步一步了解Java系列】:认识String类
22 2
|
27天前
|
安全 C语言 C++
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
32 4
|
27天前
|
存储 编译器 程序员
【C++篇】手撕 C++ string 类:从零实现到深入剖析的模拟之路
【C++篇】手撕 C++ string 类:从零实现到深入剖析的模拟之路
55 2
|
25天前
|
C语言 C++
C++番外篇——string类的实现
C++番外篇——string类的实现
19 0
|
25天前
|
C++ 容器
C++入门7——string类的使用-2
C++入门7——string类的使用-2
20 0
|
25天前
|
C语言 C++ 容器
C++入门7——string类的使用-1
C++入门7——string类的使用-1
20 0