自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

长弓smile的博客

大家好,请多指教

  • 博客(16)
  • 资源 (3)
  • 收藏
  • 关注

原创 Arrays.sort()底层源码学习(1)

通过查看Arrays.sort()源码发现,从JDK7开始,底层实现在DualPivotQuicksort类,这个类是ladimir Yaroslavskiy,Jon Bentley和Josh Bloch等人实现的Dual-Pivot Quicksort算法。该算法在许多数据集上提供了O(nlogn)的时间复杂度,比传统的one-pivot 快排实现更快。 该类提供了些阈值,如下所示:...

2018-03-31 18:11:05 615

原创 类加载时机

以下内容为《深入理解Java虚拟机》的学习笔记: 类的生命周期: 加载-连接(验证-准备-解析)-初始化-使用-卸载 类加载时机: 1. 遇到new、getstatic,putstatic或invokestatic这四条字节码指令时没如果类没有进行过初始化,则需要先触发其初始化。 2. 使用java.lang.reflect包的方法对类进行反射调用时,如果类没有进行初始化,则需要先触...

2018-03-30 21:34:38 226

原创 快速排序2

这个排序方法跟算法导论上不一样。 取第一个元素为基准。定义两个指针,一个从前往后扫描,一个从后往前扫描。 ①. i = L; j = R; 将基准数挖出形成第一个坑a[i]。 ②.j–,由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。 ③.i++,由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。 ④.再重复执行②,③二步,直到i==j,将基准数填入a[i]中。...

2018-03-29 16:28:37 185

原创 单例模式

单例模式Singleton:意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。动机:对于一些类来说,只有一个实例是很重要的。虽然系统中可以由很多打印机,但是只有一个打印假脱机(print spooler),只应该有一个文件系统和一个窗口管理工具。一个数字滤波器也只能有一个A/D转换器。实现方式:让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建(...

2018-03-27 10:00:43 168

原创 Java线程池的使用

线程池(Thread Pool): 一种线程的使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这是未来避免在处理短时间任务时创建与销毁线程的代价。 Executor框架是JavaSE5中引入的,其内部使用了线程池机制。在java.util.concurrent包中。Executorz在客户端和任务执行...

2018-03-26 15:01:55 207

原创 Java初始化顺序

Java初始化的三个原则: 1. 静态对象优先于非静态对象 2. 父类优先于子类 3. 成员变量优先于任何方法,包括构造函数先后顺序为: 父类static变量->父类static代码块->子类static变量->子类static代码块->父类非static变量->父类非static代码块->父类构造函数->子类非static变量->...

2018-03-22 18:33:49 117

原创 栈和队列的互相实现、以及带有GetMin的栈

两个栈实现一个队列: 基本思路: 1. 创建两个栈A,B,A栈用来入栈,B栈用来出栈; 2. 入队列操作:a)A栈未满,直接入栈; b)A栈已满,B栈为空,将A栈中的元素全部出栈并入到B栈;c)A栈已满,B栈不为空,A栈扩容。 3. 出队列操作:a)B栈为空,A栈也为空,抛出异常“队列为空”;b)B栈为空,A栈不为空,将A栈中的元素全部入栈到B栈,然后B栈进行出栈操作;c)B栈不为空...

2018-03-19 10:05:06 466

原创 交换左右子树的两种实现(递归和非递归)

递归实现: 基本思想: - 交换左右子树 - 对左子树进行递归交换 - 符右子树进行递归交换非递归实现: - 借助栈来实现 - 首先交换左右子树 - 右子树不为空时将右子树入栈 - 左子树不为空时指针指向左子树 - 否则出栈 实验过程如下:import java.util.LinkedList;import java.util.Queue;im...

2018-03-18 13:28:10 11584 1

原创 进程与线程

进程与线程: 基本概念: 进程:进程是正在运行的程序的实例。每个进程都有自己的地址空间,一般情况下,它包括文本区域、数据区域和堆栈。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存,堆栈区存储着活动过程调用的指令和本地变量。进程由程序、数据和进程控制块组成。 线程:线程是进程中的一个实体,CPU调度的基本单位。线程不再拥有系统资源,只拥有一点在运行中必不可少的...

2018-03-18 10:40:43 142

原创 Java的四种引用

Java的四种引用: Java的四种引用由强到弱分为:强引用->软引用->弱引用->虚引用。 1.强引用 不会被GC回收,平时用得最多的就是强引用。Object o = new Object(),o就是一个强引用。如果一个对象是强引用,那么即使内存空间不足,JVM宁愿抛出OutofMemoryError异常,也不会强制回收强引用对象来解决内存不足问题。 例如:public class Str

2018-03-17 22:58:51 177

原创 Java实现多线程的方法

Java实现多线程主要包括三种方式:  继承Thread类  实现Runnable接口  实现Callable接口 区别: 1.继承Thread类和实现Runnable方法启动线程都是使用start方法,然后JVM将此线程放到就绪队列,如果有处理机可用,则执行run方法。 2.实现Callable接口要实现call方法,并且线程执行完毕后会有返回值,其他两种重写run...

2018-03-17 16:41:23 190

原创 Java与C++的区别

C++和Java的区别: (面试问到这个问题,特来总结一下 根据C++Prime和Think in Java两本书总结而来) 尽管Java是基于C++的的,但是相比之下,Java是一种更纯粹的面向对象程序设计语言。在Java中,一切都被视为对象。 1. C++创建对象之后,需要再使用完将其调用delete方法将其销毁;Java有垃圾回收机制,用来监视new出来的所有对象,辨别不会再被引用的...

2018-03-17 14:53:47 43622 13

原创 幂运算

//1.基本实现方法 递归 时间复杂度O(n) double pow(int x,int n){ if(n<0) return 1.0/pow(x, -n); if(n == 0) return 1; if(n == 1) return x; ...

2018-03-16 21:56:43 230

原创 LeetCode上关于求第N高的薪水的使用(MySQL自定义函数)

第N高的薪水: 编写一段SQL语句,从Employee表查询获得第 n 高的薪水。+—-+——–+ | Id | Salary | +—-+——–+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +—-+——–+ 例如,在上面的Employee表中,n = 2时,第二高的薪水是200。如果没不存在第 n 高的薪水,那么查询应返回...

2018-03-16 21:24:19 3218

原创 MySQL中自定义参数的使用

MySQL变量包括系统变量和系统变量。这次的学习任务是用户自定义变量。用户变量主要包括局部变量和会话变量。 用户自定义变量的声明方法形如:@var_name,其中变量名称由字母、数字、“.”、“_”和“$”组成。当然,在以字符串或者标识符引用时也可以包含其他字符(例如:@’my-var’,@”my-var”,或者@my-var)。 用户自定义变量是会话级别的变量。其变量的作用域仅限于声明其的客...

2018-03-16 21:06:56 5919

原创 判断完全平方数与不使用Sqrt函数求开方

1、完全平方数的尾数为0,1,4,5,6,9 2.由于1+3+5+…+(2n-1) = (2n-1+1)*n/2 = n^2依据该公式可以得出完全平方式的求解过程: public boolean isPerfectSquare(int num) { int left = num%10; if(!(left==0||left==1||left==4||lef...

2018-03-12 22:10:02 3046

java中使用JSON的jar包

最近需要使用JSON的jar包,在网上找到了源码,将它打了个包. 使用方式,将其添加到项目中,在代码中使用import org.json.*;

2018-04-27

API文档Ajax+jQuery+正则表达式+SQL+JDK1.7

这是我这几年收集的一些API文档,很有很有帮助的,希望能帮助到大家

2018-04-26

获取豆瓣图书Top250的R语言实现

获取豆瓣图书Top250的R语言实现,这是一个简单的实现,大家可以参考参考。

2018-04-26

空空如也

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

TA关注的人

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