自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 问答 (3)
  • 收藏
  • 关注

原创 Java 深入学习(8) —— String、StringBuilder、StringBuffer的区别

String1)String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法。在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法。只能赋值一次,不可再更改。2)上面列举出了String类中所有的成员属性,从上面可以看出String类其实是通过char数组来保存字符串的。无论是sub、concat还是replace

2017-11-29 23:12:40 593

转载 Java 深入学习(7) —— Object.hashCode()的返回值与对象内存地址的关系

Java的Object.hashCode()的返回值到底是不是对象内存地址?http://blog.csdn.net/xusiwei1236/article/details/45152201 刚学Java的时候我也有过这种怀疑,但一直没有验证;最近在OSCHINA上看到有

2017-11-29 22:45:13 2821 1

原创 Java 深入学习(6) —— 打印 String 对象引用时显示的不是 hashCode 而是 String 对象本身的原因

问题概述正常打印一个 Object 对象引用的时候,会默认打印 Object.toString() 方法返回的 getClass().getName() + "@" + Integer.toHexString(hashCode())即打印出 对象所属类的名字与对象的 hashCodeStringCannotChange stringCannotChange = new StringCannotCha

2017-11-29 16:46:37 1647 1

原创 Java 深入学习(5) —— 字符串

String 对象不可变String 类中每一个看起来会修改 String 值的方法,实际上都是创建了一个新的 String 对象,以包含修改后的字符串内容。public class TestString { static String upcase(String s){ return s.toUpperCase(); } publi

2017-11-29 15:47:57 385

原创 Java 深入学习(4) —— 一切都是对象及内存分配

用引用操纵对象在 Java 中一切都看做对象,但操纵的标识符实际上是对象的一个“引用”(reference)。可以将这一情形想象成用遥控器(引用)来操纵电视机(对象)。拥有一个引用,并不一定需要一个对象与它关联。但这里所创建的只是引用,并不是对象。String s;一旦创建了一个引用,就希望它能与一个新的对象相关联。new 关键字的意思就是“给我一个新对象”。内存分配程序运行时,内存是怎样分配的呢?

2017-11-29 15:06:24 405

原创 Java 深入学习(3) —— 抽象类(Abstract Class) 与 接口(Interface)的区别

抽象类(Abstract Class)Java 提供一个叫 抽象方法 的机制,这种方法是不完整的,仅有声明而没有方法体。abstract void f();包含抽象方法的类叫做 抽象类。如果一个类包含一个或者多个抽象方法,则该类必须被限定为抽象的。如果从一个抽象类继承,并想创建该新类的对象,就必须为基类中的所有抽象方法提供方法定义。使某个类成为抽象类并不需要所有的方法都是抽象的,所以仅仅需要将某些方

2017-11-29 00:33:21 447

原创 Java 基础 —— 域

在看《Java编程思想》 P172 的时候遇到了一句话——“接口也可以包含域,但是这些域隐式地是 static 和 final 的。”不知道 域 是啥玩意,于是查了一下。http://www.answers.com/Q/What_is_a_field_in_java What is a field in java? A field is an attribute. A field ma

2017-11-28 23:36:41 420

原创 Java 深入学习(2) —— ArrayList、LinkedList、Vector 应用场景与性能分析

应用场景与性能差异ArrayList 随机访问较快,增删较慢,线程不安全LinkedList 增删较快,随机访问较慢,线程不安全Vector 与 ArrayList 性能相近,但 Vector 线程安全测试代码package com.practice.list;import java.util.*;public class ListCompare { private static fin

2017-11-28 19:01:25 1022

转载 Java 基础 —— JRE 和 JDK 的区别

JRE: Java Runtime Environment JDK:Java Development Kit JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包

2017-11-28 16:42:59 426

原创 Java 深入学习(1) —— 容器类(集合类)Set、List、Queue、Map 之间的区别

容器类大致分类示意图(非精确分类)(绿色表示 interface,蓝色表示 class)容器类类库划分1、 Collection。一个独立元素的序列。这些元素都服从一条或多条规则。List 必须按照插入顺序保存元素Set 不能有重复元素Queue 按照排队规则来确定对象产生的顺序所有 Collection 都可以使用 foreach 遍历Collection 在每个“槽”中只能保存一个元素Co

2017-11-28 15:46:51 871

原创 常用的排序算法性能分析(2)—— 归并排序、快速排序

归并排序要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来。自顶向下的归并排序归并排序应用了分治的思想,如果它能将两个子数组排序,它就能够通过归并两个子数组来将整个数组排序。命题F:对于长度为 N 的任意数组,自顶向下的归并排序需要 (1/2)*NlgN 到 NlgN 次比较。命题G:对于长度为 N 的人艺术组,自顶向下的归并排序最多需要访问数组 6NlgN 次。因为递归会

2017-11-28 10:14:07 1335

原创 常用的排序算法性能分析(1)—— 选择排序、插入排序、希尔排序

规则排序成本模型:在研究排序算法时,我们需要计算比较和交换的数量。对于不交换元素的算法,我们会计算访问数组的次数。排序算法可以分为两类:除了函数调用所需的栈和固定数目的实例变量之外无需额外内存的原地排序算法需要额外内存空间来存储另一份数组副本的其他排序算法选择排序首先,找到数组中最小的那个元素。其次,将它和数组的第一个元素交换位置。(如果第一个元素最小,那么它和自己交换位置)再次,在剩下

2017-11-28 08:54:08 926

原创 LeetCode 分类练习(5)—— 链表相关习题(1)

206. Reverse Linked ListReverse a singly linked list.click to show more hints.Hint:A linked list can be reversed either iteratively or recursively. Could you implement both?package com.leetcode.linked

2017-11-27 22:59:19 642

原创 递归控制

数学归纳法递归编写方法递归的创建链表Node.javapackage com.dataStructure.linked_list;public class Node { private final int value; private Node next; public Node(int value) { this.value = value;

2017-11-26 23:16:15 552

原创 Java基础 —— 根据 Key 或是 Value 对 Map 进行排序

how to sort Map values by key in Javahttps://stackoverflow.com/questions/922528/how-to-sort-map-values-by-key-in-javaSort a Map<Key, Value> by values (Java)https://stackoverflow.com/questions/109383/so

2017-11-26 18:43:58 696

原创 LeetCode 分类练习(4)—— set 和 map 在解题中的应用

349. Intersection of Two ArraysGiven two arrays, write a function to compute their intersection.Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].Note:Each element in the result must be

2017-11-26 16:00:53 2019

原创 Java基础 —— HashMap 与 TreeMap

Map 映射表

2017-11-26 09:54:03 355

原创 Java基础 —— HashSet 与 TreeSet

HashSet 散列集TreeSet 树集

2017-11-26 09:26:15 387

转载 Linux 常用命令

常用命令 目录方面命令:ls,dir,cd,clear,mkdir 文件方面命令:cp,mv,rm,ln 帮助方面命令:man,help,info,wiki,doc,blog 显示方面命令:cat,tac,head,tail,more,less 权限方面命令:chmod,chown,chgrp 压缩方面命令:tar,gzip,bzip2 关机重启命令:reboot,shutdown,

2017-11-24 15:15:12 658

原创 unicode编码表 0-255

public static void main(String[] args){// int[] freq = new int[256];// char ch = 'a';// System.out.println((int)'a');// System.out.println((int)'z');// System.ou

2017-11-23 23:42:50 6393

转载 常见编码方式之间的区别

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编号

2017-11-23 23:39:34 2403

原创 LeetCode 分类练习(3)—— 指针碰撞

167. Two Sum II - Input array is sortedGiven an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum shoul

2017-11-23 15:33:20 1138

原创 Java 基础 —— String中替换指定字符,字符种类判定,字符大小写转换,遍历字符串

字符串中替换指定字符String str = "Test string";StringBuilder strBuilder = new StringBuilder(str);strBuilder.setCharAt(1, 'X');str=Builder.toString();String不可变StringBuilder可变判定字符的种类Character.isDigit( char c

2017-11-23 09:25:49 5199

原创 Github 将新 commits 更新到 fork 的项目上的方法

具体操作方法见下图

2017-11-23 00:25:20 522

原创 LeetCode 分类练习(2)—— 三向切分 partition 思想的应用

75. Sort ColorsGiven an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use the

2017-11-22 23:53:46 620

原创 LeetCode 分类练习(1)—— 在数组中移动指定元素、删除指定元素、删除重复元素

283. Move ZeroesGiven an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.For example, given nums = [0, 1, 0, 3, 12], after ca

2017-11-22 23:32:26 589

原创 数据结构与算法分析(Java语言描述)(32)—— 使用 Kruskal 算法求有权图的最小生成树

将图中的所有边存到最小堆中当最小堆非空 取出权重最小的边 如果此边的两个端点是连接的 跳出本次循环 将此边加入 mst 中 在并查集中 union 此边的两端点package com.dataStructure.weight_graph;import com.dataStructure.heap.MinHeap;import com.dataStru

2017-11-21 19:34:22 919

原创 Intellij IDEA 中提示 Error Updating Changes xxx git xxx 错误的解决方法

https://intellij-support.jetbrains.com/hc/en-us/community/posts/206309079-Changes-Local-View-Error-Updating-ChangesThe text of the error message is misleading. The problem actually happens when the ba

2017-11-21 18:16:55 12870 7

原创 数据结构与算法分析(Java语言描述)(31)—— 使用 Prim 算法求有权图的最小生成树(MST)

最小生成树切分定理LazyPrimpackage com.dataStructure.weight_graph;import com.dataStructure.heap.MinHeap;import java.util.ArrayList;import java.util.List;public class LazyPrimMST{ private WeightedGraph graph

2017-11-21 16:36:27 1033

原创 数据结构与算法分析(Java语言描述)(30)—— 有权图的实现

使用 Edge.java 存放两节点之间的边Edge.javapackage com.dataStructure.weight_graph;// 有权图的边public class Edge<Weight extends Number & Comparable> implements Comparable<Edge> { private int v; // 边的一个端点 v pr

2017-11-21 11:04:00 1113

原创 数据结构与算法分析(Java语言描述)(29)—— 广度优先遍历与最短路径

package com.dataStructure.graph;// 使用 广度优先遍历 查找节点之间的最短路径import java.util.*;public class ShortestPath { private Graph graph; private int startNode; private boolean[] visited; private int

2017-11-20 23:52:00 565

原创 数据结构与算法分析(Java语言描述)(28)—— 使用 dfs 求两节点间的路径

package com.dataStructure.graph;import java.util.ArrayList;import java.util.List;import java.util.Stack;// 使用 dfs 获取两节点之间的路径public class Path { private Graph graph; // 输入的图 private boolean

2017-11-20 23:22:46 628

原创 数据结构与算法分析(Java语言描述)(27)—— 深度优先遍历与连通分量

package com.dataStructure.graph;// 求无权图的联通分量public class Components { private Graph graph; // 存放输入的数组 private boolean[] visited; // 存放节点被访问状态 private int componentCount; // 连通分量的数量 p

2017-11-20 22:54:45 592

原创 Java 基础(15)—— 获取项目所在的路径

package com.dataStructure.graph;import java.io.*;import java.util.Scanner;public class PathTest { public PathTest(){ // 获取 class 加载的根路径 // C:\Users\rHotD\IdeaProjects\Data-Structur

2017-11-17 09:28:56 383

原创 数据结构与算法分析(Java语言描述)(26)—— 邻接矩阵表示稠密图

package com.dataStructure.graph;//// 稠密图 - 使用邻接矩阵表示//public class DenseGraph {//// private int n; // 节点数// private int m; // 边数// private boolean directed; // 是否为有向图// private boo

2017-11-16 23:48:53 646

原创 数据结构与算法分析(Java语言描述)(25)—— 邻接表表示稀疏图

package com.dataStructure.graph;import java.util.ArrayList;import java.util.List;//// 稀疏图 - 邻接表//public class SparseGraph {//// private int n; // 节点数// private int m; // 边数// private b

2017-11-16 23:47:43 704

原创 数据结构与算法分析(Java语言描述)(24)—— 并查集的路径压缩

package com.dataStructure.union_find;public class UnionFind5 { private int[] parent; private int[] rank; private int count; public UnionFind5(int n) { count = n; parent =

2017-11-16 15:25:26 837

原创 数据结构与算法分析(Java语言描述)(23)—— 并查集基于 size 和 rank 的优化

基于 size 的优化package com.dataStructure.union_find;public class UnionFind3 { private int[] parent; // parent[i]表示第一个元素所指向的父节点 private int[] size; // sz[i]表示以i为根的集合中元素个数 private int count;

2017-11-16 15:23:57 724

原创 数据结构与算法分析(Java语言描述)(22)—— 并查集 Quick-Find

package com.dataStructure.union_find;public class UnionFind2 { // parent[i] 表示第一个元素所指向的父节点 private int[] parent; private int count; public UnionFind2(int n) { count = n;

2017-11-16 15:18:44 721

原创 数据结构与算法分析(Java语言描述)(21)—— 并查集基础

package com.dataStructure.union_find;public class UnionFind1 { // 第一版的 Union-Find 本质是一个数组 private int[] id; // 数据个数 private int count; public UnionFind1(int n) { count = n;

2017-11-16 15:16:02 715

空空如也

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

TA关注的人

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