- 博客(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 594
转载 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 1648 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 406
原创 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 874
原创 常用的排序算法性能分析(2)—— 归并排序、快速排序
归并排序要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来。自顶向下的归并排序归并排序应用了分治的思想,如果它能将两个子数组排序,它就能够通过归并两个子数组来将整个数组排序。命题F:对于长度为 N 的任意数组,自顶向下的归并排序需要 (1/2)*NlgN 到 NlgN 次比较。命题G:对于长度为 N 的人艺术组,自顶向下的归并排序最多需要访问数组 6NlgN 次。因为递归会
2017-11-28 10:14:07 1335
原创 常用的排序算法性能分析(1)—— 选择排序、插入排序、希尔排序
规则排序成本模型:在研究排序算法时,我们需要计算比较和交换的数量。对于不交换元素的算法,我们会计算访问数组的次数。排序算法可以分为两类:除了函数调用所需的栈和固定数目的实例变量之外无需额外内存的原地排序算法需要额外内存空间来存储另一份数组副本的其他排序算法选择排序首先,找到数组中最小的那个元素。其次,将它和数组的第一个元素交换位置。(如果第一个元素最小,那么它和自己交换位置)再次,在剩下
2017-11-28 08:54:08 927
原创 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 2020
转载 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 6398
转载 常见编码方式之间的区别
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编号
2017-11-23 23:39:34 2406
原创 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 1141
原创 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 5207
原创 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 621
原创 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 12894 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 1114
原创 数据结构与算法分析(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 629
原创 数据结构与算法分析(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 594
原创 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 384
原创 数据结构与算法分析(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 647
原创 数据结构与算法分析(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 838
原创 数据结构与算法分析(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
空空如也
汇编求两个任意位数的十进制数字的差,并输出。结果总是输出10进制的补码是什么情况
2016-04-25
汇编将输入的十进制数字转换成二进制,八进制,十六进制,代码写出来了,但是却无法正常运行
2016-04-21
初学者的一点疑问,汇编语言计算两个输入数字的和并输出
2016-04-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人