2016-08-20 craneyuan
我经常使用的快捷键 | 快捷键 | 功能 | | ------------ | ------------ | | Ctrl+Shift+X | 代码大写 | | Ctrl+Shift+Y | 代码小写 | | Alt+Shift+S | “source”快捷键 | | alt+shift+A | 多列编辑 | | Ctrl+D | 删除当前行 | | Ctrl+1| 快速修复 | | Ctrl+Alt+↓ | 复制当前行到下一行(复制增加) | | Ctrl+Q | 定位到最后编辑的地方 | | Ctrl+L | 定位在某行| | Ctrl+M | 最大化当前的Edit或View (再按 继续阅读 »
2016-08-20 craneyuan
最近在研究算法,发现其实算法也并不是特别难,只要抓住算法的核心思想,再静下心来,都可以自己实现的。在计算机领域,有一些常见的而且又经常使用的算法,这些算法我们应该掌握,比如常见的排序算法;还有一些算法就是特定领域中经常使用的算法了,这些算法我们只有必须使用时再去学习使用就行了,比如图像处理中的快速傅里叶变换算法。 算法定义 让我们来看看算法的定义吧。(以下定义摘自中文维基百科) 在数学和计算机科学/算学之中,算法/演算法/算则法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。 算法中的指令描述的是一个计算,当其运 继续阅读 »
2016-08-17 craneyuan
具体操作 在eclipse中,打开Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素,参照下面注释规范对应设置即可 注释规范 文件(Files)注释标签 ```java /** * FileName: ${file_name} * @Description: ${todo} * @author: crane-yuan * @version V1.0 * Createdate: ${date} ${time} * Copyright: 继续阅读 »
2016-08-17 craneyuan
java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串。它本质上是使用正则表达式去读取不同的数据类型。 Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本。 下面是两个类的不同之处: 当nextLine()被用在nextXXX()之后,用Scanner类有什么问题 尝试去猜测下面代码的输出内容; // Code using Scanner Class import java.util.Scanner; class Differ { public static void main(String args[]) { 继续阅读 »
2016-08-15 craneyuan
在Java中,一个字符串可以使用下面这两种方式进行创建: String x = "abc"; String y = new String("abc"); 这两种创建字符串的方式有什么不同呢? 双引号 VS 构造函数 这个问题可以用下面这两个简单的代码实例来回答。 例子1: String a = "abcd"; String b = "abcd"; System.out.println(a == b); // True System.out.println(a.equals(b)); // True a==b是true,因为a和b都引用同一块内存地址。 当相同字符内容的字符串多次创建时,编译器只为其分配一块内存, 继续阅读 »
2016-08-15 craneyuan
class的装载 在讲class的初始化之前,我们来讲解下class的装载顺序。 以下摘自《Thinking in Java 4》 由于Java 中的一切东西都是对象,所以许多活动 变得更加简单,这个问题便是其中的一例。正如下一章会讲到的那样,每个对象的代码都存在于独立的文件 中。除非真的需要代码,否则那个文件是不会载入的。通常,我们可认为除非那个类的一个对象构造完毕, 否则代码不会真的载入。由于static 方法存在一些细微的歧义,所以也能认为“类代码在首次使用的时候载入”。 首次使用的地方也是static 初始化发生的地方。装载的时候,所有static 对象和static 代码块都会按照本 来的顺序初始化(亦即它们在类定义 继续阅读 »
2016-08-15 craneyuan
前言 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap 基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 HashMap HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeMap的value排序。 Map.Entry返回Collections视图。 按key排序 TreeMap默认是升序的 继续阅读 »
2016-08-04 craneyuan
在java中用到的最多的时间类莫过于 java.util.Date了 由于Date类中将getYear(),getMonth()等获取年、月、日的方法都废弃了 所以要借助于Calendar来获取年、月、日、周等比较常用的日期格式 注意:以下代码均已在jdk1.6中测试通过,其他版本可能使用不同,请注意! Date与String的互转用法 /** * Date与String的互转用法,这里需要用到SimpleDateFormat */ Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 继续阅读 »
2016-08-02 craneyuan
uml
在UML类图中,常见的有以下几种关系: 泛化(Generalization) 实现(Realization) 关联(Association) 聚合(Aggregation) 组合(Composition) 依赖(Dependency) 各种关系的强弱顺序: 泛化= 实现> 组合> 聚合> 关联> 依赖 more 泛化(Generalization): 类之间的继承关系用泛化。 【箭头指向】:带三角箭头的实线,箭头指向父类 实现(Realization) 类实现接口的关系使用实现。 【箭头指向】:带三角箭头的虚线,箭头指向接口 关联(Association) 类之间的拥有关系用关联。 【箭头及指向】:带 继续阅读 »
2016-07-31 craneyuan
问题描述 在长度为N的整形数组中,求连续子串的和的最大值。 例如:1 2 4 5 -11 5 -3,结果为6。 注意:要考虑到数组中元素都为负数的情况。 O(n)解法 java public static int maxSubSum(int[] a) { int maxSum = a[0]; int curSum = 0; for (int j = 0; j < a.length; j++) { curSum += a[j]; if (curSum > maxSum) { maxSum = curSum; } else if ( 继续阅读 »