java编程之枚举类

简介: 一个类中的对象 认为个数是有限且固定的,可以将每一个对象一一列举出来 1.试一试若没有枚举类型的时候,如何手动设计 (静态常量 单例模式) Day(类 当做描述星期 7个对象) private构造方法 public static final属性 = new 2.JDK1.5版本之后可以直接定义enum类型 我们自己定义的enum类型直接默认继承Enum(java.lang包) 我们自己定义的enum类型不能再写extends 但是可以实现 Enum类型

前言解析

   数据类型

   基本 8个

   引用 数组[]  类class 抽象类abstract class  

   接口interface 枚举enum 注解@interface

枚举类

   一个类中的对象 认为个数是有限且固定的,可以将每一个对象一一列举出来

   1.试一试若没有枚举类型的时候,如何手动设计

   (静态常量 单例模式)

   Day(类 当做描述星期 7个对象)

   private构造方法

   public static final属性 = new

   2.JDK1.5版本之后可以直接定义enum类型

我们自己定义的enum类型直接默认继承Enum(java.lang包)

我们自己定义的enum类型不能再写extends 但是可以实现

Enum类型

有两个属性

name----->枚举对象的名字     name()获取name属性

ordinal--->枚举对象在类中罗列的顺序  类似index  也从0开始   ordinal()获取序号

一些常用的方法

valueOf()   通过给定的name获取对应的枚举对象

values()     获取全部的枚举对象  ---> 返回一个数组  Day[]

compareTo()   可以比较两个枚举对象   int

toString()   由于这个方法没有final修饰  可以覆盖(重写)

   3.switch内部判断枚举的应用

   4.我们也可以在enum中描述自己的一些属性或方法

   必须在enum类中第一行 描述一下枚举的样子 最后需要分号结束;

   可以定义自己的属性

   类创建的过程中  帮我们创建枚举类型的对象

   需要给枚举类型提供对应样子的构造方法  构造方法只能private修饰  可以重载

总结:

   截止到现在所有面向对象的编程思想都更过啦

   带你们回顾一下:

如何描述类

 类成员四个  方法

如何创建对象

 执行类成员

类之间的关系

 is-a  has-a  use-a

类中特性

 权限   特征

类之间的设计问题

 设计模式   单例  策略  适配器

类中的一些细节

 内部类  枚举类

内存机制问题

 类创建在哪儿   对象创建在哪里   继承关系   静态成员   方法执行

 栈内存--->Person p = new Person();---->堆内存    方法区---类模板

 栈内存--->创建开始 用完立即回收   StackOverflowError

 方法区--->类   常量   静态   只有一份回收不了

 堆内存--->new创建的对象  Garbage Collection垃圾回收器  GC

Runtime类之中提供了几个管理内存的方法

 maxMemory

 totalMemory

 freeMemory

 堆内存溢出错误OutOfMemoryError

Object类中有一个finalize方法  如果重写也能看见对象回收

GC系统提供的一个线程    回收算法

目录
相关文章
|
1月前
|
Java 程序员
Java编程中的异常处理:从基础到高级
在Java的世界中,异常处理是代码健壮性的守护神。本文将带你从异常的基本概念出发,逐步深入到高级用法,探索如何优雅地处理程序中的错误和异常情况。通过实际案例,我们将一起学习如何编写更可靠、更易于维护的Java代码。准备好了吗?让我们一起踏上这段旅程,解锁Java异常处理的秘密!
|
28天前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
1月前
|
算法 Java 调度
java并发编程中Monitor里的waitSet和EntryList都是做什么的
在Java并发编程中,Monitor内部包含两个重要队列:等待集(Wait Set)和入口列表(Entry List)。Wait Set用于线程的条件等待和协作,线程调用`wait()`后进入此集合,通过`notify()`或`notifyAll()`唤醒。Entry List则管理锁的竞争,未能获取锁的线程在此排队,等待锁释放后重新竞争。理解两者区别有助于设计高效的多线程程序。 - **Wait Set**:线程调用`wait()`后进入,等待条件满足被唤醒,需重新竞争锁。 - **Entry List**:多个线程竞争锁时,未获锁的线程在此排队,等待锁释放后获取锁继续执行。
65 12
|
28天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
28天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
154 2
|
2月前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
1月前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####
|
1月前
|
Java 调度
Java中的多线程编程与并发控制
本文深入探讨了Java编程语言中多线程编程的基础知识和并发控制机制。文章首先介绍了多线程的基本概念,包括线程的定义、生命周期以及在Java中创建和管理线程的方法。接着,详细讲解了Java提供的同步机制,如synchronized关键字、wait()和notify()方法等,以及如何通过这些机制实现线程间的协调与通信。最后,本文还讨论了一些常见的并发问题,例如死锁、竞态条件等,并提供了相应的解决策略。
63 3
|
1月前
|
开发框架 安全 Java
Java 反射机制:动态编程的强大利器
Java反射机制允许程序在运行时检查类、接口、字段和方法的信息,并能操作对象。它提供了一种动态编程的方式,使得代码更加灵活,能够适应未知的或变化的需求,是开发框架和库的重要工具。
67 4
|
2月前
|
安全 Java 开发者
Java中的多线程编程:从基础到实践
本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
78 1