Jerry's Blog

Life is like a box of chocolates, U never know what you’re gonna get!

从 Windows 过度到 Mac 必备快捷键对照表

Mac idea 快捷键使用技巧

从 Windows 过度到 Mac 必备快捷键对照表 Mac 键盘符号说明 ⌘ == Command ⇧ == Shift ⇪ == Caps Lock ⌥ == Option ⌃ == Control ↩ == Return/Enter ⌫ == Delete ⌦ == 向前删除键(Fn+Delete) ↑ == 上箭头 ↓ == 下箭头 ...

动态规划之求解股市的最大利润问题

股市中给你至多一次交易机会,两次机会,k次机会,任意次数,以及有限制的买进和卖出,分别求最大的利润 Say you have an array for which the ith element is the price of a given stock on day i. 个人做题代码 121.Best Time to Buy and Sell Stock If you were...

八大内部排序

Inner Sort

八大内部排序 八大内部排序 选择排序 /** * 选择排序,基于比较的排序方式 * @param a * @param lo * @param hi */ public static void selectedSort(int[] a, int lo, int hi){ if(a==null||l...

凸壳算法

Convex hull algorithms

Algorithms that construct convex hulls of various objects have a broad range of applications in mathematics and computer science. 凸壳算法(二维的) 凸壳算法是指构造(或者说找到)包括一系列的对象的边界。本文中针对二维的平面上的点,求其凸多边形的边界。 ...

剑指Offer习题全解

Kill Offer Solution

动手写代码前先好好思考,多考虑各种边界极限条件,这样下手写代码一定会写出鲁棒性(Robust)的代码。 剑指Offer习题全解 二维数组中的查找 /*两种思路 一种是: 把每一行看成有序递增的数组, 利用二分查找, 通过遍历每一行得到答案, 时间复杂度是nlogn*/ public class Solution { public boolean Find(int [][...

Java垃圾收集机制

Garbage Collection

Java和C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。——引用自《深入理解JVM》 垃圾收集是针对于堆和方法区进行垃圾收集(而虚拟机栈、本地方法栈、程序计数器是线程隔离的数据区,随线程而生,随线程而消失。) 为什么要理解垃圾收集机制 更好地排查各种内存溢出、内存泄漏问题 写代码时候可以有时候可以帮助GC收集垃圾 ...

Java集合学习之Map

Map

An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. Map Map是一个接口,一个map不能包含重复的Key,每个key只能映射一个唯一的value。Map接口是用来取代Dictionary抽象类的。 Map...

Java集合学习之List

List

List为有序的Collection(集合),它按对象进入的顺序保存对象,所以它能对列表中的每个元素的插入和删除为进行精确控制,同时可以保存重复对象。LinkedList、ArrayList、Vector都实现了List接口。 List接口继承Collection接口,而Collection继承Iterable接口,即List->Collection->Iterable...

JAVA

Java基础 java内存模型 多态(重载重写) object方法 类访问权限 sleep、notify、wait 联系、区别 String、stringbuffer、stringbuilder 联系、区别、源码 Volatile 原理、源码、与syn区别 线程间通信方式 线程的各种状态 等等等等 集合框架 List ArrayList ...

java线程二——锁的机制

Java Thread

一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在Java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程...