- 博客(6)
- 收藏
- 关注
原创 JAVA设计:面向可复用性和可维护性的设计模式
一个好的JAVA设计模式强调多个接口和类之间的联系和使用,能产生更宏观的、高于单独接口和类设计的可复用性与可维护性。其设计模式可以总结为三大类:创建型模式、结构型模式和行为类模式。每一种设计模式的基础都是委托、组合、继承,使用它们来实现各种程序的复用性和可维护性。 创建型模式中最经典的成员当属“工厂方法模式”。该模式又被称作“虚拟构造器”,大体思想是在构建一个对象时,不去调用其具体的构造方法(比如不清楚该实例化哪个对象时),而是先创造一个接口,通过调用该接口的子类去决定实例化哪一个类。就好像我向某...
2021-07-07 08:27:38
187
原创 JAVA中equals()方法和“==”的差别
在C语言中,我们通常仅使用“==”来表示或判断变量之间的相等。而在Java中,除了熟悉的"=="之外,还有供ADT判断相等的.equals()方法。这两者在一些情况下没有区别,但是在另外一些情况下则会严重影响到程序的正确性。 对于基本数据类型而言,不存在.equals()方法,使用“==”来判断相等是很自然的。Java实现“==”的底层逻辑是引用等价性:当两个引用指向同一个地址空间,亦即指向同一块内存时,两个引用才被认为是“==”的。 但是接下来请看这个例子: 我定义了一个employee类,其中
2021-07-05 21:10:19
118
原创 Java中的“从键盘输入”
在初学Java的过程中,笔者发现了一个尴尬的问题,当学习了有关面向对象编程和抽象数据结构的知识、进行了一两次与之有关的实验后,竟然连如何从键盘输入内容到变量中都不清楚。C语言提供的格式化输入scanf()和各种适应不同情况的输入函数在Java中都不存在,这让我一时间摸不着头脑。在查阅相关资料后,结合计算机系统的一些知识,才有了一些新的感悟。 首先是普遍使用且广泛适用于各种情况的使用Scanner类: Scanner sc = new Scanner(System.in) System.in是键盘输入流
2021-07-02 22:25:05
718
原创 HITCSAPP大作业:程序人生 hello‘s P2P
第1章 概述 1.1 Hello简介 程序员在文本编辑器中写下hello的C语言源代码,得到了hello的源文件hello.c。之后它被预处理、编译、汇编、链接后,得到了可执行文件hello。在终端运行hello,bash会替程序员运行hello,在shell中fork一个子进程并execve hello,随后hello被加载,正式开始运行。在运行过程中可以对其进行各种操作,包括使用Ctrl+C, Ctrl+Z等向其进程或其父进程传递各种信号。最后程序员在敲入最后一个字符后,程序终止,被父进程回收,彻底
2021-06-30 15:33:39
460
原创 Java中有关等号的一些思考
从学习C语言开发到学习Java开发,难免会因为两种不同性质的语言的不同行为而产生一些迷惑。比如对于“=”,两种语言的解读方式在某些层面是不一样的,这往往会给初学者带来一些疑惑。加之Java面向对象编程的特性和C语言的面向过程编程有很大不同,就更容易产生一些有趣的思考和问题。 考察如下代码:这个简单的Java程序定义了一个简单的水果类,包含属性“水果名称”和“价格”。在主程序中定义了一个水果类的列表,并加入了三个初始元素。接下来使用迭代器对列表进行遍历,并且每次迭代过程,都新定义了一个fruit...
2021-06-29 14:44:12
338
原创 JAVA数据结构:图的邻接矩阵实现
虽然JAVA不提供和C语言类似的底层指针操作,但是其本身已经包含了许多很实用的基础数据结构,可以供开发者使用。比如队列和链表,并且提供了配套的各种操作,无需开发人员重新编写,非常方便。在此基础上,如若想要使用邻接表的结构来实现有向图,过程也十分简单。置一ArrayList,存储图中点的名字并同时作为链表的头结点,链接所有指向该点/能从该店到达的其他图的节点,即可将图中所有点关联起来。 与此同时,JAVA的LinkList与C语言的链表又有所不同,它支持随机访问,可以通过index具体访问链表中的某...
2021-06-25 16:06:29
614
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人