Java编程工具类之包装类相关

简介: 1.枚举(类) 可以将某些类中的对象一一列举出来 类中的对象具有有限的个数 1.通过enum来描述枚举 class interface enum 2.可以在枚举类中直接列举对象 public enum Day{ monday,tuesday } 3.通过枚举类直接访问属性名(枚举对象) 4.通过枚举对象调用 发现有很多的方法 每一个自己定义的enum枚举类型 都默认继承java.lang.Enum Object 有两个私有属性name枚举对象名字 ordinal顺序(在枚举类中的索引) na

知识回顾

   1.枚举(类)

   可以将某些类中的对象一一列举出来    类中的对象具有有限的个数

   1.通过enum来描述枚举     class   interface   enum

   2.可以在枚举类中直接列举对象    public enum Day{  monday,tuesday }

   3.通过枚举类直接访问属性名(枚举对象)

   4.通过枚举对象调用  发现有很多的方法

   每一个自己定义的enum枚举类型 都默认继承java.lang.Enum   Object

   有两个私有属性name枚举对象名字   ordinal顺序(在枚举类中的索引)

   name()  ordinal()获取相关属性信息的方法

   Day enum = Day.valueOf("name");

   Day[] days = Day.values();

   monday.compareTo(tuesday);

   5.可以在enum中定义自己的一般属性  一般方法

   必须在枚举类描述的第一行  列举枚举对象的样子 分号结尾

   添加自己定义的私有属性

   提供私有的构造方法(带参数)  我们自己是不能调用构造方法

   6.自己定义的enum不能再继承别的类(单继承)

   可以实现多个接口   添加具体的方法

   7.可以使用在switch语句中    

   8.内存管理的问题

   栈内存----变量空间   方法临时执行空间

   从创建开始执行完毕  立即回收

   堆内存----我们自己new申请对象空间     垃圾回收器GC    对象空间没有任何引用指向视为垃圾

   方法区----常量  类模板  静态成员   有且只有一份   不回收

   public class Test{

   public Person p = new Person();//聚合关系

       }

   Test t = new Test();

   Person p = t.p;

   p = null;

   t.p = null;

   System.gc();

   为了能看到对象被回收的效果

   1.重写类中的finalize方法    从Object继承过来的

   2.Runtime类  单例模式  Runtime.getRuntime();获取对象    

   long  =  maxMemory   totalMemory   freeMemory

   OutOfMemoryError 堆内存溢出错误

   StackOverflowError 栈内存溢出错误

   Java开发者写好的类-----专业的文档  API(建议下载一个.chm)

   包装类(封装类)

   数学相关

   日期相关

   *字符串

   *集合相关(ArrayBox LinkedBox)

   *异常相关

   输入输出相关I/O

   线程相关

   网络通信

   反射注解

GUI  Swing

   1.类所在的包

   2.类的关系   自己默认继承 实现

   3.是否可以创建对象  调用    方法本身静态的

   4.类中提供的常用方法

   包装类(封装类)  1.5版本之后  自动拆装包

   byte---Byte   short---Short   int---Integer  long---Long

   float---Float  double---Double  char---Character   boolean---Boolean

   1.八个包装类都在同一个包下   java.lang包   不需要import导包直接使用

   2.八个包装类中有六个是与数字相关  都默认继承父类Number

   3.八个包装类都实现了Serializable, Comparable

   4.八个包装类都有带自己对应类型参数的构造方法

   八个包装类中有七个(除了Character)还有构造方法重载   带String类型

   5.创建对象  对象调用方法

   有六个与数字相关的类都继承Number     xxxValue();  

   将一个包装类类型转化为对应的基本类型(拆包)

   Integer i1 = new Integer(10);//引用数据类型 包装类

   int value = i1.intValue();

   Integer i2 = 10;

   int value = new Integer(10);

   int value = Integer.parseInt("123");  

   Float.parseFloat("123.45")

   int value = new Integer("123");

   6.经常在笔试中出现的问题

   Integer i1 = 10;

   Integer i2 = 10;

   Integer i3 = new Integer(10);

   Integer i4 = new Integer(10);

   System.out.println(i1==i2);//  true--->如果数字范围超过127false

   System.out.println(i1==i3);//  false

   System.out.println(i3==i4);//  false

   System.out.println(i1.equals(i2));//true

   System.out.println(i1.equals(i3));//true

   System.out.println(i3.equals(i4));//true

   1.==与equals()区别

   ==可以比较基本数据类型  也可以比较引用数据类型  (变量中存储的内容)

   如果比较基本类型比较是变量中存储的值

   如果比较引用类型比较是变量中存储的地址引用

   equals()是Object类中继承过来的方法  每一个引用类型都可以调用

   默认继承的equals()方法比较与==一致  如果想要改变比较规则 可以重写equals方法

   由于Integer类就重写了equals() 所以Integer比较的是数值

   2.考察Integer类加载的时候  自己有一个静态的空间

   空间内立即加载 Integer类型的数组  内存储256个Integer对象   -128 ~ 127

   如果我们用的对象范围在这之内Integer i1 = 10;  

   直接取静态区中找对应的对象

   如果我们用的对象范围超出了这个Integer i1 = 1000;  

   会帮我们创建一个新的Integer对象

目录
相关文章
|
4天前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
24 1
|
2天前
|
自然语言处理 Java API
Java 8的Stream API和Optional类:概念与实战应用
【5月更文挑战第17天】Java 8引入了许多重要的新特性,其中Stream API和Optional类是最引人注目的两个。这些特性不仅简化了集合操作,还提供了更好的方式来处理可能为空的情况,从而提高了代码的健壮性和可读性。
24 7
|
4天前
|
Java
【Java开发指南 | 第十四篇】Java Number类及Math类
【Java开发指南 | 第十四篇】Java Number类及Math类
15 1
|
3天前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
4天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
4天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
21 3
|
4天前
|
存储 Java 索引
【Java开发指南 | 第十六篇】Java数组及Arrays类
【Java开发指南 | 第十六篇】Java数组及Arrays类
10 3
|
4天前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
12 2
|
4天前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
11 4
|
4天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
23 4