- 博客(47)
- 收藏
- 关注
原创 什么是多态?如何在Java中实现多态?
多态(Polymorphism)是面向对象编程(OOP)的核心概念之一。它指的是一个接口或基类可以有多种不同的实现方式,程序在运行时可以动态地选择具体的实现方法。多态性允许对象以多种形式表现,从而使得代码更加灵活和可扩展。编译时多态性(静态多态性):通过方法重载(Method Overloading)实现。运行时多态性(动态多态性):通过方法重写(Method Overriding)和接口实现。多态是Java面向对象编程的重要特性,通过方法重载实现编译时多态性,通过方法重写和接口实现运行时多态性。
2024-06-03 16:45:00 2233
原创 解释一下什么是继承?如何在Java中实现继承
继承(Inheritance)是面向对象编程(OOP)的四大基本特性之一,另外三大特性是封装(Encapsulation)、多态(Polymorphism)和抽象(Abstraction)。继承允许一个类从另一个类获取字段和方法的能力,从而实现代码的重用性和扩展性。继承体现了“is-a”的关系,即子类是父类的一种特殊化。在Java中,继承通过关键字extends来实现。一个类可以继承另一个类,这样子类就可以使用父类中的字段和方法,同时可以添加新的字段和方法,或者重写父类的方法以提供特定的实现。
2024-06-03 09:45:00 1030
原创 Java中的String是可变的吗?为什么?
Java中的String类是不可变的,这种设计带来了多方面的好处,包括安全性、线程安全、性能优化以及字符串池的实现。不可变对象的设计使得字符串在Java中成为一个非常高效和可靠的数据类型。尽管在某些场景下需要额外的优化措施,例如使用进行字符串拼接,但总体而言,不可变性为Java程序提供了很多重要的优势。通过理解这些细节,开发者可以更好地利用String类的特性,编写出高效且安全的代码。
2024-06-02 13:15:00 977
原创 Java中的JVM是什么?简要说明其工作原理
Java虚拟机(Java Virtual Machine,JVM)是Java技术的核心部分。它是一个抽象的计算机,可以解释和执行Java字节码。JVM提供了一个运行Java程序的环境,使得Java程序可以在各种平台上运行而无需修改代码。这种跨平台能力被称为“写一次,运行到处”(Write Once, Run Anywhere)。JVM是Java技术体系的重要组成部分,通过其类加载器、执行引擎、内存模型和垃圾回收机制,为Java程序提供了一个高效、稳定的运行环境。
2024-06-02 11:00:00 1488
原创 如何实现Java中的单例模式?举例说明。
饿汉式单例:简单但可能浪费资源。懒汉式单例:懒加载但线程不安全。线程安全的懒汉式单例:线程安全但性能差。双重检查锁单例:线程安全且性能较好。静态内部类单例:推荐使用,懒加载且线程安全。枚举单例:最优雅和推荐的实现方式,天然线程安全且防止反序列化创建新实例。根据具体需求选择合适的实现方式,以满足性能和资源管理的要求。
2024-06-01 11:45:00 315
原创 什么是Java序列化?它有什么用途?
Java序列化(Serialization)是将Java对象转换为字节流的过程,反序列化(Deserialization)则是将字节流恢复为Java对象的过程。Java的序列化机制使得对象的持久化和跨网络传输成为可能。
2024-06-01 09:45:00 757
原创 Java中的反射机制是什么?它有什么用途?
Java中的反射机制(Reflection)是一种能够在运行时动态获取类的详细信息并操作类和对象的机制。反射允许程序在运行时检查和修改类的结构和行为。
2024-05-31 15:53:58 419
原创 什么是Java泛型?它有什么作用
Java泛型(Generics)是一种允许在定义类、接口和方法时使用类型参数的机制。泛型提供了一种机制,使得代码可以对多种类型的对象进行操作,而无需进行类型转换。类型安全:通过在编译时进行类型检查,泛型可以避免类型转换时的错误。例如,如果你创建一个持有类型的集合,编译器会确保只有类型的对象可以添加到集合中,避免了运行时的。消除强制类型转换:泛型可以减少代码中的强制类型转换操作,使代码更加简洁和易读。例如,使用泛型后,不需要将从集合中取出的对象进行类型转换。提高代码重用性:泛型允许类、接口和方法能够操作多种类
2024-05-31 15:53:04 501
原创 Java中,finally块中的代码什么时候执行
块中的代码进入了一个无限循环,而没有外部干预,块中的代码正常执行完毕,没有发生任何异常时,块中抛出了异常,这个异常会被抛出,但如果。块中的代码不会执行,因为程序已经终止。块中的代码都会执行。块中因为某些原因死亡,而没有进入到。在这个例子中,无论是否发生异常,块中的代码也会执行。块中已经抛出了异常,那么。块中的异常会被传递出去。块中的异常会被忽略,而。块中的代码将不会执行。:如果当前执行的线程在。块中的代码也不会执行。块中的代码都不会执行。块仍然会执行,但会在。块中抛出了异常,并且。
2024-05-13 07:30:00 512
原创 finally块中的代码什么时候执行?
在这个示例中,无论是否发生异常,finally块中的代码都会执行。异常未被捕获且程序正常退出:如果try块中的代码抛出了异常,但是这个异常没有被任何catch块捕获(即没有匹配的catch块或者没有catch块),那么程序会立即跳转到finally块(如果存在的话)执行,随后程序会终止,并将异常信息抛给调用者(通常是JVM)。异常被捕获后:如果try块中的代码抛出了异常,并且这个异常被某个catch块捕获,那么catch块中的代码会首先执行,随后finally块中的代码会执行。finally块的执行时机。
2024-05-12 15:00:00 547
原创 什么是java中的什么是受检异常和非受检异常? 1000字以上
在Java中,异常是程序运行时发生的不正常情况,它们会中断正常的程序流程。异常可以分为受检异常(checked exceptions)和非受检异常(unchecked exceptions)。这两种异常在处理方式、使用场景以及设计理念上有所不同。
2024-05-12 10:30:00 367
原创 如何在Java中使用异常处理机制
Java允许创建自定义异常类,以更精确地描述特定的错误情况。自定义异常类通常是Exception类或其子类的子类。
2024-05-11 18:45:00 403
原创 Java中的异常处理机制是怎样的?
当程序发生异常时,会抛出一个异常对象,该异常对象会沿着调用链向上抛出,直到被捕获并处理或者直到程序终止。这个过程可以分为三个步骤:异常的产生、异常的抛掷和异常的接收与处理。异常的抛掷:当程序中出现异常时,有两种方式来抛出异常:使用throw语句显式地抛出异常,或者让系统自动抛出异常(如空指针引用异常、除零异常等)。异常的产生:异常通常由以下几种情况产生:编程人员故意或错误地抛出一个异常、运行时出现错误(如数组越界、空指针等)以及系统出现异常(如文件无法打开、网络连接中断等)。四、异常处理最佳实践。
2024-05-11 10:15:00 377
原创 数组和List之间的转换之复杂案例
如果你需要一个更复杂的转换,比如从一个包含自定义对象的数组转换为一个包含相同对象的List,或者从包含不同数据类型的List转换为一个特定类型的数组,那么你需要进行一些额外的步骤。如果你有一个List并且想要将其转换为一个Person数组,你可以使用List的toArray()方法,但你需要提供一个正确类型的数组,或者你需要对结果进行类型转换。如果你有一个包含多种类型元素的List(例如List),并且你想要将其转换为一个特定类型的数组(例如String[]),你需要遍历List并进行类型检查和转换。
2024-05-10 21:45:00 647
原创 如何实现数组和List之间的转换?
另外,当使用toArray()方法时,如果你预先知道List的大小,并希望避免不必要的数组复制,可以传递一个已初始化为正确大小的数组。请注意,在使用Arrays.asList()时,返回的List是固定大小的,不支持add或remove操作。在Java中,没有直接的方法可以将数组转换为List,但可以使用Arrays类的asList()方法或Java 8及以上版本的Stream API来实现。在Java中,数组(Array)和列表(List)是两种不同的数据结构,但它们之间可以很容易地进行转换。
2024-05-10 07:30:00 409
原创 举例说明HashMap和TreeMap的区别
TreeMap提供了额外的导航方法,如firstKey(), lastKey(), headMap(), tailMap()等,这些方法使得遍历或操作某个范围的元素变得更加方便。TreeMap中的元素总是按键的自然顺序(或者由构造函数中提供的Comparator决定的顺序)进行排序。TreeMap不允许使用null键,但可以有多个null值(作为Map的值)。HashMap允许使用null键和null值(但只能有一个null键)。HashMap不保证映射的顺序,特别是它不保证该顺序恒久不变。
2024-05-09 18:00:00 175
原创 HashMap和TreeMap的区别是什么?
但是,需要注意的是,HashMap的性能优势并不是绝对的,因为在实际应用中,还需要考虑到哈希冲突、扩容等因素对性能的影响。首先,从数据结构的角度来看,HashMap是基于哈希表+数组来实现的,而TreeMap则是基于红黑树实现的。而红黑树则是一种自平衡的二叉查找树,它可以在任何情况下都保持树的平衡,从而保证了数据的有序性和查找、插入、删除等操作的对数时间复杂度O(log2 n)。然后,从排序方式的角度来看,HashMap是无序的,而TreeMap则是有序的。HashMap和TreeMap的区别是什么?
2024-05-09 08:15:00 426
原创 HashSet和TreeSet代码举例说明二者区别
注意:TreeSet中的元素是有序的,所以输出结果中元素的顺序将按照字母顺序排列。另外,TreeSet不允许存储null值,如果试图添加null值,会抛出NullPointerException。HashSet和TreeSet是Java集合框架中两种不同的Set实现,它们的主要区别在于底层数据结构、元素的排序方式、性能以及处理null值的方式。注意:HashSet中的元素是无序的,所以输出结果中元素的顺序可能会不同。HashSet不保证元素的顺序,也不允许存储重复的元素。TreeSet 示例。
2024-05-08 17:15:00 310
原创 HashSet和TreeSet的区别是什么?
TreeSet:按照元素的自然顺序或者创建TreeSet时传入的Comparator对象决定的顺序进行排序,然后存储。HashSet的迭代器返回的是元素的原始顺序,这个顺序可能会因为哈希表的扩容和重新哈希而发生变化。而TreeSet的迭代器返回的是元素的排序顺序,这个顺序是稳定的。HashSet:不保证元素的存储顺序,也不保证元素的迭代顺序。TreeSet同样不允许存储重复的元素。HashSet和TreeSet都可以存储null元素,但是都只能存储一个null元素,因为Set不允许存储重复的元素。
2024-05-08 08:15:00 450
原创 代码示例来说明ArrayList和LinkedList的区别
请注意,虽然LinkedList没有直接通过索引插入和删除的方法(像add(int index, E element)和remove(int index)),但你可以通过addFirst、addLast、addBefore、addAfter以及使用ListIterator来实现类似的功能。然而,如果你需要频繁地在列表的开头或结尾进行操作,或者需要实现如栈或队列这样的数据结构,LinkedList将会是一个更好的选择。好的,下面我将通过代码示例来说明ArrayList和LinkedList的区别。
2024-05-07 18:30:00 275
原创 ArrayList和LinkedList的区别是什么?
插入和删除元素:对于ArrayList,在列表的末尾插入或删除元素的时间复杂度为O(1),但在列表的中间插入或删除元素时,由于需要移动元素以保持连续性,时间复杂度为O(n)。ArrayList和LinkedList都是Java中常用的集合框架中的类,用于存储一系列的对象(元素),并提供了对它们进行遍历和操作的接口。内存占用:LinkedList中的每个节点除了存储数据外,还需要存储两个指向前后节点的引用,因此相对于ArrayList来说,LinkedList的内存占用会稍大一些。
2024-05-07 10:00:00 185
原创 什么是接口和类?Java中的集合框架有哪些主要接口和类?
这样,我们就可以确保系统中的所有电器都具备打开和关闭的功能,而不需要关心它们的具体实现细节。当你有一个类需要与其他多个类进行交互,但你希望这些类遵循一定的规范时,你可以定义一个接口,并让这些类都实现这个接口。这样,你就可以确保这些类都具备你期望的方法,而不需要关心它们的具体实现细节。在编程中,你可以创建一个名为“Dog”的类来表示这个对象,并在类中定义这些特征作为属性和方法。Java中的集合框架(Java Collections Framework)提供了一套丰富的接口和类,用于存储和操作对象的集合。
2024-05-06 14:58:29 629
原创 线程的生命周期有哪些状态?
这些状态在线程的生命周期中是按照特定的顺序进行转换的,例如一个线程通常按照“新建 -> 可运行 -> 运行 -> 阻塞 -> 可运行 -> 终止”的顺序经历其生命周期。使用无锁的数据结构,如ConcurrentHashMap、AtomicInteger等,这些数据结构内部实现了复杂的无锁算法,可以避免线程在访问共享数据时阻塞。使用Java的Future和CompletableFuture等类来实现异步编程,将耗时较长的任务放在另一个线程中执行,并在任务完成时获取结果,避免主线程阻塞。等)而进入等待状态。
2024-05-06 14:35:54 757 2
原创 什么是守护线程?它有什么作用?
在多线程编程中,线程通常被分为两类:用户线程(也称作前台线程)和守护线程(后台线程)。守护线程的主要特性在于其生命周期:当所有用户线程结束时,无论守护线程是否执行完毕,程序都会退出,同时守护线程会随之立即终止。由于守护线程的终止并不会等待其执行完所有的任务,因此如果守护线程中执行的任务是不可靠、不可恢复的,那么它可能会在任何时候被终止,从而导致数据丢失或其他问题。在深入研究和应用守护线程的过程中,我们还需要关注其与多线程编程中其他概念(如线程同步、线程池等)的关系和互动。
2024-04-27 23:49:28 493
原创 什么是java中的守护线程?它有什么作用?
守护线程与普通线程的主要区别在于其生命周期。然而,需要注意的是,由于守护线程的终止并不会等待其执行完所有的任务,因此如果守护线程中执行的任务是不可靠、不可恢复的,那么它可能会在任何时候被终止。守护线程,也被称为“服务进程”、“精灵线程”或“后台线程”,是在程序运行时在后台提供通用服务的线程。总的来说,守护线程是一种非常有用的线程类型,它可以在后台默默地为用户提供各种服务,确保程序的稳定运行和资源的有效利用。例如,在一些新的编程框架和平台中,守护线程可能具有更多的特性和用途,为开发者提供更多的灵活性和选择。
2024-04-27 23:47:34 430
原创 解释下线程安全,很通俗易懂
这就是线程不安全的情况:两个线程(你和你的朋友)试图同时访问和修改同一个共享资源(糖醋排骨),导致预期之外的结果(谁都没吃到或者排骨掉了)。但无论采用哪种方法,其核心思想都是确保对共享资源的访问是安全的、有序的,从而避免数据不一致和其他并发问题。在编程中,有些数据结构是线程安全的,就像公筷一样,可以直接在多线程环境中使用,而不需要额外的同步措施。服务员把糖醋排骨分成两份,你和你的朋友各自吃自己的一份。在实际编程中,我们需要根据具体的应用场景和需求来选择合适的线程安全策略和技术,以确保程序的正确性和稳定性。
2024-04-26 17:45:00 336
原创 什么是线程安全?如何保证线程安全?
同样,如果没有适当的机制来管理这些共享资源的访问,多个线程可能会同时读写同一个资源,导致数据不一致、程序崩溃或其他不可预见的错误。虽然这里只是简单地介绍了线程安全的概念和保证线程安全的一些方法,但实际上,线程安全是一个深入且复杂的主题。为了避免竞态条件,我们需要确保对共享资源的访问是原子的,即不可分割的。线程安全,用浅显易懂的语言来解释,就是指在多线程编程环境中,一个程序或者代码段能够正确地保持其预期的行为和状态,不会因为多个线程的同时访问而导致意外的错误或者不一致的结果。
2024-04-26 11:45:00 476 1
原创 让我们通过一些具体的例子来进一步解释Java多线程中的并发和并行概念。
所以,如果你有一个需要大量计算的任务,你可以把它分成几个小部分,并在多个核心上同时运行它们,这样整个任务就会更快地完成。在Java中,并发意味着你的程序可以同时处理多个任务,即使这些任务并不是真正的同时进行。虽然从物理层面来看,这些线程可能并不是真正的同时执行(尤其是在单核CPU上),但是由于线程切换非常快,所以从程序的角度看,这些请求是并发处理的。并行则是利用多核或多处理器的物理资源,让多个任务真正同时执行,适用于需要大量计算或I/O操作且需要快速完成的情况,如科学计算中的大规模数据处理。
2024-04-25 21:30:00 274 1
原创 今天来研究多线程的并行和并发
这两个任务(做饭和洗衣服)是并发执行的,因为它们在同一时间段内开始,但它们的执行过程有重叠,不是完全同时进行的。这里没有任务执行的重叠,每个任务都在自己的专用资源上独立进行。在Java中,实现并发的方式通常是通过线程池、时间片轮转等方式,让多个线程交替执行,从而给人一种同时执行的感觉。虽然这些线程可能在物理层面上不是同时运行的(比如在单核CPU上),但从程序的角度看,它们是并发执行的。在Java中,真正的并行通常发生在多核或多处理器的计算机上,每个线程可以在自己的核心上独立运行,从而实现真正的并行执行。
2024-04-25 20:30:00 302 1
原创 详细说说继承的缺点,有例子哦
如果有一个Dog类继承自Animal类,并且Dog类直接访问和修改了_is_alive属性,那么这就违反了封装原则,可能会导致Animal类的其他方法(比如依赖_is_alive状态的方法)行为异常。如果有一个Bat类(蝙蝠)同时继承了这两个类,那么它可能会继承到一些不必要的属性或方法,比如游泳的方法对于蝙蝠来说是没有意义的。比如,有一个Mammal类和一个Bird类,它们都继承自一个更通用的Animal类。一旦一个类被设计为继承另一个类,就很难再改变这种关系,因为这可能会影响到整个继承链中的其他类。
2024-04-24 20:30:00 289
原创 今天来聊继承,什么是继承,优点缺点
首先,继承提高了代码的重用性。比如,如果我们有一个“动物”类,其中包含了“呼吸”和“移动”这两个方法,那么当我们需要创建一个“狗”类时,就可以继承“动物”类,这样“狗”类就自动拥有了“呼吸”和“移动”这两个方法,我们只需要添加与狗相关的特性就可以了。继承是面向对象编程中的一个重要概念,它描述的是类与类之间的关系,允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。在有些情况下,组合(将对象作为类的属性)可能是一个更好的选择,因为它可以避免继承带来的一些问题,同时实现代码的复用和扩展。
2024-04-24 09:30:00 447
原创 继续探讨封装,举例来说明
继续探讨封装,举例来说明封装是面向对象编程中的核心概念,它允许我们将数据(属性)和操作这些数据的方法(函数)组合在一起,形成一个独立的单元,即对象。封装的好处在于隐藏对象的内部状态和实现细节,只暴露必要的接口给外部使用,从而保护数据的安全性并简化代码的复杂性。下面我将通过一个简单的例子来说明如何使用封装:假设我们正在编写一个程序,这个程序需要处理一个银行账户。银行账户有一些基本信息,比如账户名、账户余额等,还有一些操作,比如存款、取款等。
2024-04-23 15:45:00 425
原创 什么是封装?它有什么作用?
通过封装,我们可以把相关的数据和操作都放在一个对象里,这样当我们需要修改或扩展功能时,就只需要对这个对象进行修改,而不需要去改动其他地方的代码。通过封装,我们可以隐藏对象的内部状态和实现细节,提高代码的可维护性和可重用性,简化程序的复杂度,以及促进代码的组织和管理。想象一下,你去超市买了一堆东西,收银员会帮你把这些东西放进一个袋子里,这个袋子就是你的“封装”工具,它把你买的东西都“装”了进去,这样你就可以轻松地提着袋子回家了。在编程中,封装的意思是把数据和操作数据的方法绑定起来,形成一个“对象”。
2024-04-23 12:15:00 437
原创 多态性和函数式编程有什么关系
有时候,函数式编程的简洁和优雅可能更符合我们的需求。例如,我们可以利用多态性编写通用的函数来处理多种类型的数据,同时利用函数式编程的不可变性和纯函数特性来保证代码的稳定性和可预测性。多态性可以帮助我们设计灵活且可扩展的接口,而函数式编程的不可变数据和并发安全性则可以帮助我们构建更加健壮和可靠的并发系统。首先,多态性中的“一个接口,多种实现”的思想与函数式编程中的高阶函数和泛型编程有相似之处。多态性和函数式编程在表面上看似是两个独立的编程概念,但实际上它们在某些方面有着密切的联系和潜在的互补性。
2024-04-22 14:15:00 366
原创 什么是多态性?举例说明。
然后我们可以创建几个不同的类,如“Circle”、“Rectangle”和“Square”,它们都实现了“Shape”接口并提供了自己的“draw”方法实现。现在,如果我们有一个函数,它接收一个“Shape”类型的参数并调用其“draw”方法,那么我们就可以将任何实现了“Shape”接口的对象传递给这个函数。总结一下,多态性是面向对象编程中的一个重要特性,它允许我们使用相同的接口引用不同的实际类型。简单来说,多态性意味着相同的操作或方法作用于不同的对象上,可以有不同的解释和产生不同的结果。
2024-04-22 12:00:00 250
原创 什么是抽象类和接口?它们之间有什么区别?
抽象类的主要作用是定义一种规范或模板,这个规范或模板中包含了普通的方法和抽象的方法。普通的方法可以直接在抽象类中实现,而抽象的方法则只声明了方法的签名,没有具体的实现。抽象类可以被其他类继承,继承抽象类的子类必须实现抽象类中所有的抽象方法,否则子类也将成为抽象类。同样,接口在编程中也起到了类似的作用,它定义了一种规范或标准,只要实现了这个接口,就可以与其他符合该接口规范的代码进行交互。同样,抽象类就是这样一个设计图纸,它定义了类的基本结构和行为,但具体的实现则需要由继承它的子类来完成。什么是抽象类和接口?
2024-04-21 11:15:00 273 1
原创 什么是自动装箱和自动拆箱?
当我们在代码中需要将一个基本数据类型的值赋给一个包装类类型的变量时,Java编译器会自动进行装箱操作,即创建一个对应的包装类对象并将基本数据类型的值赋给它。同样地,当我们需要将一个包装类对象赋给一个基本数据类型的变量时,Java编译器会自动进行拆箱操作,即从包装类对象中提取出基本数据类型的值并赋给变量。自动装箱是指Java编译器在需要将基本数据类型转换为对应的包装类时,会自动进行转换的过程。而自动拆箱则是自动装箱的逆过程,即Java编译器在需要将包装类对象转换为对应的基本数据类型时,会自动进行转换。
2024-04-21 11:00:00 276 1
原创 谈谈java中的数据类型在实际使用过程中的难点和易出错点
为了避免这些难点和易错点,我们需要深入理解Java数据类型的特性和使用规则,在编写代码时仔细考虑数据类型的选择和转换,并进行充分的测试和验证。然而,equals()方法的实现依赖于具体的类,不同的类可能有不同的比较逻辑,这增加了比较的复杂性。例如,int类型的最大值是2147483647,如果尝试存储更大的值,就会发生溢出,导致结果变成负数。不同的字符编码方式(如UTF-8、GBK等)对同一字符的编码可能不同,如果在处理字符时没有使用正确的编码方式,就可能导致乱码或数据丢失。
2024-04-20 22:35:27 517
原创 谈谈java中的数据类型
综上所述,Java中的数据类型丰富多样,既有基本类型用于表示简单的数值和字符,又有引用类型支持复杂的面向对象编程和数据结构。同时,随着Java语言的发展,未来可能会有更多的数据类型被引入,以适应不断变化的应用需求。基本类型是Java中预定义的类型,具有明确的取值范围和数学行为,表示了真实的数字、字符和逻辑值。Java中的数据类型是其语言的核心组成部分,它们决定了变量可以存储的数据类型,以及相应的内存空间大小和处理速度。浮点类型用于表示有小数部分的数值,double类型提供了更高的精度和更大的取值范围。
2024-04-20 22:34:55 300
算法题介绍及刷题解析面试题.zip
2024-07-05
MongoDB的Linux安装.zip
2024-07-05
51单片机LED项目.zip
2024-06-24
JSP企业电子投票系统(源代码+论文+开题报告+外文翻译+文献综述)1.zip
2024-06-06
jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT)1.zip
2024-06-06
jsp个人理财系统(论文)1.zip
2024-06-06
jsp+sql城乡信息管理(系统)1.zip
2024-06-06
JSP+SQL办公自动化管理系统(源代码+论文)1.zip
2024-06-06
JSP+access手机销售系统(论文+系统+开题+封面+扉页+需求分析+任务书)1.zip
2024-06-06
其他类别JdonFramework开源框架 v5.1 Build20071025-jdonframework-1.zip
2024-06-06
c++课程设计宾馆客房管理系统.zip
2024-05-31
delphi人才信息管理系统.zip
2024-05-31
手机销售系统2.zip
2024-05-30
jsp+access网络书店销售管理系统(系统+论文+开题报告+任务书+摘要+英文文献)2.zip
2024-05-30
JSP+ACCESS网上拍卖平台系统(源代码+论文).zip
2024-05-30
其他类别JSP网页HTML编辑器 v1.0 beat-jsphtmleditor.7z
2024-05-23
其他类别JSP Explorer 文件浏览器 v1.0-fileexplorer.zip
2024-05-22
其他类别JdonFramework开源框架 v5.1 Build20071025-jdonframework-5.1.zip
2024-05-22
ASP网上售房管理系统(源代码+论文+开题报告+答辨PPT+实习报告).zip
2024-04-27
ASP消防网上考试系统设计(源代码+论文)全说明.zip
2024-04-27
ASP网上售房管理系统(源代码+论文+开题报告+答辨PPT+实习报告).zip
2024-04-25
ASP网络购物系统(源代码+论文+开题报告+答辩PPT)毕业设计.zip
2024-04-25
ASP.NET小型企业办公耗材库存管理软件的设计与实现(源代码+论文).zip
2024-04-20
ASP.NET服装连锁店管理系统的设计与开发(源代码+论文).zip
2024-04-20
ASP.NET报名系统(源代码+论文)、.zip
2024-04-20
ASP+ACCESS仓库即时查询系统毕业设计(源代码+论文).zip
2024-04-19
ASP+ACCESS中学网站设计与实现(论文+源代码+开题报告+任务书).zip
2024-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人