我经常使用的快捷键
| 快捷键 | 功能 |
| ------------ | ------------ |
| 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 (再按
继续阅读 »
最近在研究算法,发现其实算法也并不是特别难,只要抓住算法的核心思想,再静下心来,都可以自己实现的。在计算机领域,有一些常见的而且又经常使用的算法,这些算法我们应该掌握,比如常见的排序算法;还有一些算法就是特定领域中经常使用的算法了,这些算法我们只有必须使用时再去学习使用就行了,比如图像处理中的快速傅里叶变换算法。
算法定义
让我们来看看算法的定义吧。(以下定义摘自中文维基百科)
在数学和计算机科学/算学之中,算法/演算法/算则法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。
算法中的指令描述的是一个计算,当其运
继续阅读 »
具体操作
在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:
继续阅读 »
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[])
{
继续阅读 »
在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都引用同一块内存地址。
当相同字符内容的字符串多次创建时,编译器只为其分配一块内存,
继续阅读 »
class的装载
在讲class的初始化之前,我们来讲解下class的装载顺序。
以下摘自《Thinking in Java 4》
由于Java 中的一切东西都是对象,所以许多活动
变得更加简单,这个问题便是其中的一例。正如下一章会讲到的那样,每个对象的代码都存在于独立的文件
中。除非真的需要代码,否则那个文件是不会载入的。通常,我们可认为除非那个类的一个对象构造完毕,
否则代码不会真的载入。由于static 方法存在一些细微的歧义,所以也能认为“类代码在首次使用的时候载入”。
首次使用的地方也是static 初始化发生的地方。装载的时候,所有static 对象和static 代码块都会按照本
来的顺序初始化(亦即它们在类定义
继续阅读 »
前言
Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。
TreeMap
基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
HashMap
HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeMap的value排序。
Map.Entry返回Collections视图。
按key排序
TreeMap默认是升序的
继续阅读 »
在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");
继续阅读 »
在UML类图中,常见的有以下几种关系:
泛化(Generalization)
实现(Realization)
关联(Association)
聚合(Aggregation)
组合(Composition)
依赖(Dependency)
各种关系的强弱顺序:
泛化= 实现> 组合> 聚合> 关联> 依赖
more
泛化(Generalization):
类之间的继承关系用泛化。
【箭头指向】:带三角箭头的实线,箭头指向父类
实现(Realization)
类实现接口的关系使用实现。
【箭头指向】:带三角箭头的虚线,箭头指向接口
关联(Association)
类之间的拥有关系用关联。
【箭头及指向】:带
继续阅读 »
问题描述
在长度为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 (
继续阅读 »