Java核心技术
花轮2580
大数据工程师
展开
-
Java静态绑定&动态绑定
1:理解Java中方法调用的过程1)编译器查看对象的生命类型和方法名,假设调用 x.f(param),且隐式参数 x 生命为 C类的对象,因为可能存在多个方法名为 f 的方法 eg:f(int) , f(double) 编译器会列举出 C 类中名为 f 的方法和其父类中访问属性为 public 且名为 f 的方法(因为父类的私有方法不可访问) 2)重载解析:编译器根据 方法的参数类型 ...原创 2018-09-27 22:25:48 · 164 阅读 · 0 评论 -
String详解
踏踏实实积累,不要浮躁!!!1:关于 String 类的 equals() 方法 public static void main(String[] args) { String s1 = "aa"; String s2 = "aa"; System.out.println(s1.equals(s2)); St...原创 2019-03-06 23:44:20 · 229 阅读 · 0 评论 -
Object类详解
踏踏实实积累,不要浮躁!!!Object 类包涵以下常用方法,需要你有印象1: clone() 返回对象的副本,只是浅拷贝 如果要深拷贝得将对象中的引用类型也进行clone()2:equals() 方法 比较两个对象值是否相等 == 比较的是对象地址3:hashcode() 跟上面的 equals()方法是对应的 在 HashMap这种数据结构因为用到了 HashCo...原创 2019-03-06 22:59:20 · 245 阅读 · 0 评论 -
BST二叉查找树
踏踏实实积累,不要浮躁!!!思想:利用二叉树来存储散列表中的值,提供高效的put get 操作说明:下面的代码只是帮助理解散列表的工作原理,工程上一般都是用红黑树来实现平衡的二叉排序树put 操作内部利用的是get 操作,如果能查找到则更新该节点的value值,如果没有找到根据大小关系在下面插入该节点package search;import edu.princeton.cs...原创 2019-01-27 19:29:34 · 178 阅读 · 0 评论 -
堆排序heapSort
踏踏实实积累,不要浮躁,在学习上是糊弄不过去的!!大根堆定义:父节点都大于等于它的子节点(递归定义下去)堆排序思想: 本质上还是在数组上的比较和交换操作流程如下:1:构造大根堆从下往上构造只需要扫描一半的元素因为n/2 -> n这段区间内的元素是叶子节点不会参与2:排序,将堆顶元素跟数组中最后一个元素交换然后再进行sink()操作调整堆package sort;im...原创 2019-01-27 17:42:36 · 122 阅读 · 0 评论 -
优先队列
踏踏实实积累,不要浮躁(1):适用场景许多应用程序都需要处理有序的元素,但不一定要求他们全部有序,或者是不一定要一次将他们排序。很多情况下我们会收集一些元素,处理当前键值的最大值,然后再收集更多的元素再处理当前键值的最大元素在任务调度中很适用,还有在图的搜索算法和一些数据压缩算法都能用到优先队列(2):思想利用数组来存放元素(下标0位置不存放元素),k,2k,2k+1分别是完全二叉树中...原创 2019-01-27 11:36:34 · 143 阅读 · 0 评论 -
快速排序
踏踏实实积累,不要浮躁 (1):快排应该是工程上使用最多的一种算法了,时间复杂度O(nlogn) 不稳定,原地的排序算法思想:利用递归依次找到数组最后一个元素在排序后的位置,package sort;import edu.princeton.cs.algs4.StdRandom;import tools.Util;public class quickSort { ...原创 2019-01-26 21:03:15 · 256 阅读 · 2 评论 -
mergeSort
踏踏实实积累,不要浮躁 今天介绍归并排序,时间复杂度为O(nlogn) 稳定的 算法思想:利用递的思想,分别sort左边和右边然后进行merge来合并有序数据,思想很简单代码实现还是有很多需要注意的点public static void sort(int[] arr,int low,int high){ if(high <= low){ // 注意 ...原创 2019-01-26 19:45:14 · 200 阅读 · 0 评论 -
插入排序和希尔排序小结
记录自己学习插入排序和希尔排序的过程督促自己养成输出内容的习惯!!!下面是两种基础的排序算法,本质上都是比较和交换 关键在于思想 (1):插入排序 public static void sort2(int[] arr){ // i 定位要插入的元素 int tmp; for(int i=1;i<arr.length;...原创 2019-01-26 18:08:44 · 130 阅读 · 0 评论 -
HashMap小结
踏踏实实积累,不要浮躁!!!1:为什么用HashMapHashMap 是一个散列桶(数组和链表),它存储的内容是键值对(key - value) HashMap采用了数组和链表的数据结构,能在查询和修改方面继承了数组的线性查找和链表的寻址修改 HashMap是线程不安全的 HashMap可以接受null键和值,而HashTable不能解释为什么 HashMap可以接受 null 键...原创 2019-03-07 23:10:24 · 210 阅读 · 0 评论