自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昨天今天和明天

今天的生活是由过去的选择导致的,未来的生活怎么样,取决于今天所做的选择

  • 博客(113)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 LeetCode 141:环形链表

题目描述:环形链表解题思路:经典快慢指针思路,声明慢指针slow每次走一步,声明快指针fast每次走两步,只要slow、fastv不为空并且fast.next不是链表尾,一直迭代,直到 slow 和 fast相遇,表示链表有环,否则链表无环。对于下面这个链表判断其是否有环(1)、先声明快慢指针Step1:slow、fast和fast.next 非空,slow步进一步,fast步进两步...

2019-12-03 15:13:39 225 1

原创 LeetCode 24:两两交换链表中的结点

题目描述:两两交换链表中的结点说明: 关于链表的元素到底叫结点还是节点,请参考:解题思路:该题的关键是需要记录好交换前结点的头指针(即完成交换后的尾结点),可以引入一个填充结点prev,其next指针初始指向head结点,为方便迭代,声明一个临时指针tmp=prev,当tmp.next和tmp.next.next不为空,一直迭代,整个交换过程可以抽象为:初始链表:(1)、声明指向前一个...

2019-12-03 12:39:26 259

原创 LeetCode 206:反转链表

题目描述:反转链表解题思路:单链表反转,其实就是将每个结点的next结点指向它的前置结点。(1)、先声明两个指针,prev表示结点的前置指针,初始化为NULL,当前指针cur,初始化为head,如下图所示:(2)、head指针指向cur的next结点(3)、将cur的next指针指向prev结点(4)、prev指向cur结点(5)、cur指向head结点依次类推,最后返回...

2019-12-02 16:33:53 206

原创 LeetCode 707:设计链表

题目描述:设计链表解题思路:一、单指针实现首先我们回顾链表的数据结构,它至少要有一个头指针,指向链表的第一个Node,数据和指向下一结点的指针存放在Node中。//头指针private Node head;//静态内部类Node,用于存放实际的数据private static final class Node{ private int val; private Node ne...

2019-12-02 11:28:55 446

原创 7.7.3、下界通配符

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。下界通配符上界通配符 部分显示:上界通配符将未知类型限制为该类型的特定类型或子类型,并使用extends 关键字表示。类似地,下界通配符将未知类型限制为特定类型或该类型的超类型。下界通配符使用通配符(’?’)表示,后跟super 关键字,后跟它的下界:<? super A>。注意: 你可以指...

2019-10-12 17:05:00 245

原创 7.7.2、无界通配符

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。无界通配符无界通配符类型是使用通配符(?)指定的,例如List<?>。这称为未知类型列表。如下两种情况推荐使用无界通配符:如果你正在编写一个可以使用Object类中提供的功能来实现的方法当代码使用不依赖于类型参数泛型类中的方法时。例如:List.size或List.clear。事实上,经常使...

2019-10-12 16:18:46 482

原创 7.7.1、上界通配符

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。上界通配符你可以使用一个上界通配符来放宽对变量的限制。例如,假设你想要编写一个在List<Integer>、List<Double>和List<Number>上工作的方法;你可以通过使用一个上界通配符来实现。若要声明一个上界通配符,请使用通配符(’?’),后跟extend...

2019-10-12 15:57:15 296

原创 7.7、通配符

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。通配符在泛型代码中,通配符问号(?)表示未知的类型。通配符可用于多种情况:作为参数、字段或局部变量的类型;有时作为返回类型(尽管指定更具体地类型是更好的编程实践)。通配符从不用作泛型方法调用、泛型类实例创建或超类型的类型参数。下面几节将更详细地讨论通配符,包括上界通配符、下界通配符和通配符捕获。...

2019-10-12 15:02:38 151

原创 7.6、类型推导

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。类型推导类型推导是Java编译器提供的用来查看方法调用与相应方法声明以确定参数(或多个参数)类型的一种能力。推理算法确定参数的类型,如果可用,还确定返回结果的类型。最后,推理算法尝试找到与所有参数一起工作最合适的类型。为了说明这最后一点,在下面的例子中,推论确定传递给pick方法的第二个参数是Seriali...

2019-10-11 17:02:52 378

原创 7.5、泛型、继承和子类型

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。泛型、继承和子类型正如你所知的,只要类型是兼容的,就可以将一种类型的对象分配给另一种类型的对象。例如,可以将一个Integer赋值给一个Object,因为Object是Integer的超类型之一:Object someObject = new Object();Integer someInteger = ...

2019-10-10 16:42:27 161

原创 7.4.1、泛型方法和有界类型参数

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。泛型方法和有界类型参数有界类型参数是实现泛型算法的关键。考虑以下方法,该方法计算数组T[]中大于指定元素elem的元素数量。public static <T> int countGreaterThan(T[] anArray, T elem) { int count = 0; f...

2019-10-09 09:54:38 175

原创 7.4、有界类型参数

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。有界类型参数有时可能需要限制可以用作参数化类型中的类型参数的类型。例如,对Number进行操作的方法可能只想接受Number的实例或它的子类。这就是有界类型参数的用途。要声明有界类型参数,请列出类型参数的名称,后跟extends关键字,然后是它的上限类,在本例中是Number。注意,在这个上下文中,exte...

2019-10-09 09:43:46 318

原创 7.3、泛型方法

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。泛型方法泛型方法是引入自己的类型参数的方法。这类似于声明泛型类型,但是类型参数的范围仅限于声明它的方法。允许使用静态和非静态泛型方法,以及泛型类构造函数。泛型方法的语法包括尖括号内的类型参数列表,该列表出现在方法的返回类型之前。对于静态泛型方法,类型参数部分必须出现在方法的返回类型之前。Util 类包括一...

2019-10-08 17:22:13 122

原创 7.2.1、原始类型

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。原始类型原始类型 是指没有任何类型参数的泛型类或接口的名称。比如,给出如下的Box类:public class Box<T> { public void set(T t) { /* ... */ } // ...}要创建参数化类型的Box<T>,需要为形式类型参...

2019-10-08 16:55:46 283

原创 7.2、泛型类型

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。泛型类型泛型类型是参数化于类型之上的泛型类或接口。接下来的Box类将修改用于演示这个概念:简单的Box类首先提供一个对任何类型的对象进行操作的非泛型Box类。它只需要提供两个方法:set(添加对象)和get(检索对象):public class Box { private Object obje...

2019-10-08 16:16:43 250

原创 7.1、为什么要用泛型

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。为什么要用泛型简而言之,泛型支持在定义类、接口和方法时将类型(类和接口)作为参数。与方法声明中使用的更常见的形式参数非常相似,类型参数为你提供了一种方法,可以在不同的输入中重用相同的代码。不同之处在于,形式参数的输入是值,而类型参数的输入是类型。使用泛型的代码比非泛型代码有很多好处:编译时强类型检测J...

2019-10-08 15:19:50 126

原创 7、泛型

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。泛型在任何重要的软件项目中,bug都是软件生命周期的一部分。再怎么仔细的计划、编程和测试都只能帮助减少BUG存在的普遍性。但不知何故,在某些地方,它们总会找到一种方法潜入代码。伴随着新特性的引入、代码库规模和复杂性的增加,这一点变得尤为明显。幸运的是,有些bug比其他的更容易检测。例如,编译时bug可以在早...

2019-10-08 14:59:46 101

原创 6.3、自动装箱与拆箱

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。自动装箱与拆箱自动装箱是指Java编译器在基本类型与它们的包装类之间进行的自动转换。比如,将 int 转换为 Integer ,将double转换为Double等等。如果转换调换,称作拆箱。下面是自动装箱的一个例子:Character ch = 'a';后面的例子都会使用泛型。看看下面的代码:Li...

2019-09-30 15:32:11 120

原创 6.2.4、StringBuilder类

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。StringBuilder类StringBuilder类和String类相似,但它可以修改。在内部,它是通过可变长度的数组来存储。在任何时候,字符序列的长度和内容都可以通过它的方法调用进行改变。除了StringBuilder在代码简化和性能方面的优势外都应该使用String。比如,你要拼接大量的字符串,追加...

2019-09-30 14:35:12 125

原创 6.2.3、字符串和字符串子串的比较

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。字符串和字符串子串的比较String 类提供了许多方法来比较字符串和子串。下表列出了这些方法:方法描述boolean endsWith(String suffix) boolean startsWith(String prefix)如果字符串以给定的suffix开头或结尾,则返回tr...

2019-09-30 11:35:30 1026

原创 6.2.2、字符串中字符的操作

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。字符串中字符的操作String 类提供了许多方法来检测字符串的内容,查找字符串中的字符或子串,改变大小写,以及其他的一些任务。通过下标来获取字符和子串通过CharAt() 访问器方法能获取特定下标处的字符。第一个字符的下标是0,最后一个字符的下标是length()-1。比如,下例获取字符串中下标为9的字符...

2019-09-30 10:59:09 185

原创 6.2.1、数值和字符串之间的转换

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。数值和字符串之间的转换将字符串转换成数值通常,程序以字符串对象中的数字数据结束——例如,用户输入的值。包装数值的Number类的子类,每一个都提供了一个方法valueOf() 来将字符串转换为对象类型。public class ValueOfDemo { public static void m...

2019-09-29 17:23:11 242

原创 6、数字和字符串

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。教程:数字和字符串数字这一节将讨论 java.lang 包下的 Number 类和它的子类。实际上,这部分阐述了在什么情况下可以用这些数字类型实例而不是它们的原始类型。另外, 这部分也阐述了与数字相关的一些类,比如格式化以及一些数学运算。最后介绍了能简化代码的编译器特性:装箱和拆箱。字符串字符串,在Ja...

2019-09-29 16:52:09 178

原创 6.2、字符串

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。字符串Java平台提供 String 类来创建并操作字符串。创建字符串创建字符串最直接的方式是:String greeting = "Hello world!";本例中,"Hello world!"是字符串文字—代码中被双引号括起来的字符序列。无论什么时候在代码中遇到字符串文字,编译器都会为该字符串...

2019-09-29 16:51:49 109

原创 6.1.3、算术运算

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。算术运算Java语言通过算术运算符 +、-、*、/ 和 % 来支持基本的算术运算。java.lang 包中的 Math 类提供了方法和常量来完成更高级的数学运算。Math 类中的所有方法都是static 的,因此你可以使用类直接调用它们:Math.cos(angle);注意: 通过使用 static...

2019-09-29 15:11:47 91

原创 6.1.2、格式化数字输出

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。格式化数字输出之前我们使用 print 和 println 方法将字符串输出到标准输出。由于所有的数值都可以转换成 String 类型,你将看到这些方法可以打印数值和字符串的任意组合。在Java语言中,提供了额外的方法,能够让你在包含数值的字符串输出中有更多的控制权。printf和格式化方法java.io...

2019-09-29 14:11:12 201

原创 6.1.1、Numbers 类

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。Numbers类当使用数字时,大部分情况下会使用基本类型,比如:int i = 500;float gpa = 3.65f;byte mask = 0xff;然而,在有些情况下建议使用对象来代替基本类型,Java平台为每个基本类型都提供了与之对应的包装类。...

2019-09-29 10:47:00 170

原创 6.1、数字

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。数字这部分先讨论 java.lang 包中的 String 类和它的子类,以及什么情况下使用数字类而不是数字的原始类型。其次,通过描述 PrintStream 和 DecimalFormat 类,了解它们提供的针对数字的格式化输出。最后,也讨论了 java.lang 包中的 Math 类。它包含语言内置运...

2019-09-29 09:46:45 133

原创 5.2.9、继承总结

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.9、继承总结除Object 类之外,类必须要有一个直接父类。类将从它的父类继承变量或方法,无论直接或间接。子类可以重写它继承的方法,也可以隐藏它继承的字段和方法。(字段隐藏是一种很差的编程实践)。方法重写和隐藏 一节中的表格显示了声明一个与父类方法签名相同方法的影响。Object 类是类层级的顶层...

2019-09-27 15:00:18 78

原创 5.2.8、抽象方法和抽象类

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.8、抽象方法和抽象类抽象类是指 通过 abstract 描述的类 — 它可以有或者没有抽象方法。抽象类不能实例化,但可以子类化。抽象方法是指只有声明没有实现的方法(指没有括号,分号结尾):abstract void moveTo(double deltaX, double deltaY);如果...

2019-09-27 14:48:54 152

原创 5.2.7、Final类和方法

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.7、Final类和方法可以将类的方法声明为 final 。用 final 修饰方法表示该方法不会被子类重写。Object 类就这样做了 — 声明了一些 final 修饰的方法。将方法声明为 final 需要满足1、它的实现不能改变,2、它的实现对维护对象的一致性状态至关重要。比如:ChessAlgo...

2019-09-27 10:19:32 101

原创 5.2.6、作为父类的Object

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.6、作为父类的Objectjava.lang 包中的 Object 类,位于类层次结构中的最顶层。每个类都直接或间接是Object类的子类。你编写和使用的每个类都会继承Object的实例方法。你不需要使用它的每一个方法,一旦你选择这样做,你就不得不在子类中重写指定的方法。稍后将讨论的从Object 继...

2019-09-26 19:01:51 137

原创 5.2.5、super关键字的使用

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.5、super关键字的使用访问父类成员如果重写了父类的方法,通过super关键字可以调用被重写的方法。也可以使用super引用隐藏字段(尽管隐藏字段不推荐使用)。考虑这个类 SuperClass :public class Superclass { public void printMe...

2019-09-26 16:44:10 156

原创 5.2.4、字段隐藏

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.4、字段隐藏子类中有与父类同名的字段,它将隐藏父类同名的该字段,即使它们的类型不同。在子类中,不能通过字段名来引用父类中的该字段。但可以使用super来访问,这将在下一节中讨论。一般来讲,不推荐使用字段隐藏,它对阅读代码造成很大的困难。...

2019-09-26 15:51:59 261

原创 5.2.3、多态性

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.3、多态性在生物学中对多态的定义是:任何一个物种或群体都会有多种形式和阶段。这个原理也可以运用到面向对象编程语言中,比如Java。子类定义它特有的行为同时共享父类的公共能力。通过对 Bicycle 类做一些小改动来演示多态性。比如:增加 printDescription方法打印实例方法中的所有数据。...

2019-09-26 11:47:15 97

原创 5.2.2、方法重写与隐藏

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.2、方法重写与隐藏实例方法子类中与父类方法签名和返回值类型相同的方法将会重写父类的方法。方法重写的能力允许类去扩展在行为上接近的父类,并根据需要修改其行为。重写的方法与被重写方法有相同的方法名,相同数量和类型的参数,相同的返回值类型。重写方法可以返回被重写方法返回值类型的子类型。该子类型称作协变返...

2019-09-26 11:02:26 209

原创 5.2.1、状态、实现和类型的多重继承

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2.1、状态、实现和类型的多重继承类和接口之间最大的区别就是类可以声明字段,但接口却不能声明字段。而且,你可以通过实例化类来创建对象,但接口却不能。对象通过在类中定义的字段来存储它的状态。Java编程语言不支持多重继承的一个原因就是避免状态的多重继承带来的问题。比如:假设你能够扩展多个类来创建一个子类。当...

2019-09-25 17:23:02 127

原创 5.2、继承

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。5.2、继承在前面的教程中,我们多次提到过 继承 。在Java编程语言中,一个类可以从其他的类派生出来,从而继承这些类的字段和方法。继承 的思想很简单但是非常强大:当你想创建一个新类,但已知有一个类存在一部分你想要的代码,那么你就可以从这个已经存在的类中派生出新的类。这样做,你就可以重用这个类的字段和方法,...

2019-09-23 14:49:50 122

原创 5.1.5、默认方法

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。默认方法接口 部分描述了一个用电脑控制汽车的制造商的故事,制造商会发布一些行业标准接口,这些接口描述可以调用哪些方法来操作汽车。如果这些制造商为汽车增加新的能力,比如飞行,那会怎么样呢?制造商们需要指定新的方法,这样其他公司(如导航仪制造商)才能够将其软件应用于飞行汽车。汽车制造商们在哪里去发布这些新的适用于...

2019-09-12 16:34:00 126

原创 5.1.4、接口进化

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。接口进化假设你开发了一个叫做DoIt的接口:public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s);}假设过了一段时间,你想在DoIt中添加一个新方法,接口将变成pu...

2019-09-09 16:24:14 110

计算机英语论文翻译及原文

内容是Internet的历史,字符数10000字以上,包括原文和翻译,是一个完整的毕业翻译

2009-05-09

现代计算机组成原理(重点EDA)

我是在学EDA时学的,这本书我找了好久,很全,很有用!希望与大家分享

2009-04-17

J2EE超有用的课件短时间学会jsp

J2EE超有用的课件短时间学会jsp编程

2009-04-17

map api(灵图和Google)

灵图map api和Google Map API应用例子源代码(已修正)-李华

2009-04-17

Linux命令帮助大全

本文档集中了Linux命令的几乎所有命令!很有参考价值!

2008-11-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除