自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

step by step

积少成多

  • 博客(38)
  • 问答 (12)
  • 收藏
  • 关注

原创 java内存结构学习

java内存结构学习方法区,堆,本地方法栈,程序技术器,栈线程私有:栈:为执行java方法服务。本地方法栈:主要是native方法。程序计数器:主要存放当前执行指令的地址线程共享:堆:存放类的实例信息,绝大多数创建的实例对象会存放在这里。方法区:主要存放类的信息,常量,静态变量。垃圾回收器针对这块的回收主要是针对常量池和类的卸载。jvm只是规定了有方法区这么个概...

2019-12-26 11:36:27 178

原创 线程池学习

三个思考问题:1.怎么设置线程池的容量大小?2.线程池添加任务的流程?3.怎么设置核心线程数的大小?线程池中Executor、ExecutorService、Executors三者的区别(1)Executors类提供工厂方法创建不同类型的线程池,比如:newSingleThreadExecutor():创建一个只有一个线程的线程池。newFixedThreadPo...

2019-12-15 15:09:07 162

原创 多线程的问题

1.多线程解决什么问题?(1)提高程序的运行性能。(2)充分利用系统的处理能力,提高系统的资源利用率。(3)提高程序的响应时间。(4)更好的编程模型。2.为什么对并发度能做提升?线程是大多数操作系统调度的基本单位,一个程序作为一个进程来运行,程序在运行的过程中能创建多个线程,而一个线程同一时刻只能运行在一个处理器核心上。所以对于一个单线程程序,再多的处理核心处理器加入也无法...

2019-08-20 23:51:40 199

原创 wait/notify/notifyall的使用场景

wait/notify/notifyall的使用场景1.wait使当前线程阻塞,前提是线程必须获得锁,所以一般配合synchronized使用。2.线程执行wait的时候,会释放当前的锁,然后让出cpu,进入等待状态。3.wait方法需要被try catch包含。4.wait/notify/notifyall的使用场景(1)生产者/消费者模型的实现注意点:a.假死当...

2019-08-03 14:20:45 2061

原创 设计模式-简单工厂模式-面向对象

简单工厂模式:原先实例化对象是在代码逻辑中实现中,现在用一个单独的类来做这个创造实例的过程,这就是工厂。好处:例子:要求用java实现计算器控制台输入两个数字和运算符号,得到结果。初学者碰到问题直觉的做法就是用计算机能够理解的逻辑来描述和表达待解决的问题,这其实是用计算机的方式去思考。但是这样做程序不容易维护,也不容易扩展,也不容易复用。毕竟复制和复用是不一样的,所以最好的做...

2019-06-08 10:49:52 148

原创 http学习总结

http协议属于应用层的协议,dns解析得到ip后,通过三次握手建立TCP连接,然后发送http请求,目前http基本上都是1.1版本,默认都是开启Keep-Alive,这样建立的TCP连接,可以在多次请求中复用。http的报文主要包括三个部分:(1)请求行主要包括URL(例子:www.baidu.com),方法(GET/PUT/POST/DELETE),版本(http版本...

2019-06-01 14:22:25 154

原创 从一道题看MySql的索引

从一道面试题看MySql的索引

2019-05-09 22:57:08 133

原创 MySQL事务实现原理

MySql事务实现原理--参考极客时间专栏《MySQL实战45讲》,博客1.事务的基本要素(ACID)原子性(Atomicity):事务内的操作要嘛全部完成,要嘛全部回滚。一致性(Consistency):事务执行的前后都是合法的数据状态,不会违反任何的数据完整性。隔离性(Isolation):主要是事务之间的相互的影响,根据隔离有不同的影响效果。持久性(Durabili...

2019-05-09 22:54:45 10336 3

原创 从二维数组路径最小和看动态规划到维特比算法

动态规划/维特比算法----参考吴军的《数学之美》,七月算法。摘要:主要是从题目--二维数组路径最小和 的暴力枚举解法时间复杂度太高,贪心算法解法只能做到局部最优无法做到全局最优,从而引出动态规划,再到一个特殊但应用广泛的动态规划算法-维特比算法。题目:二维数组路径最小和Given amxngrid filled with non-negative numbers...

2019-05-06 21:54:20 514

原创 git重写历史

写在前面的一些话:最近接到一个jira任务要求研究一下git重写历史的操作,主要是基于以下几点的考虑: 个人分支合并到master时尽量将相同单号合并成一个提交之后进行合并 1、方便进行cherry-pick 2、保持仓库干净整洁,方便进行查看、回滚、对比正题:主要使用到的命令:git rebase -i HEAD~(NUM)squash操作步骤...

2019-05-04 17:46:36 250

原创 java异常-chckedexception与uncheckedexception

异常处理

2019-05-03 22:15:53 174

原创 关于缓存问题的几个思考

1.缓存雪崩,击穿。2.如何保证缓存与DB数据的一致。

2019-05-03 22:14:50 148

原创 分布式ID如何实现

分布式id

2019-05-03 22:13:28 252

原创 Reentrantlock与condition

Reentrantlock1.与condition的使用。2.readlock和wirtelock实现原理。

2019-05-03 22:07:22 116

原创 线程安全的实现方法

1什么是线程安全:如果一个对象可以安全的被多个线程同时使用,那他就是线程安全的。如何实现线程安全:1.互斥同步。互斥是方法,同步是目的,互斥同步的主要问题是线程阻塞和唤醒所带来的性能问题,属于一种悲观的并发策略。实现同步主要有(1)加synchronized (2)重入锁Reentrantlock。关于synchronized和Renntrantlock的区别(1).两...

2019-05-02 23:21:42 456

原创 线程之间的通信

线程通信常用的方式有:wait/notify 等待 Volatile 内存共享 CountDownLatch 并发工具 CyclicBarrier 并发工具

2019-05-02 15:59:50 321

原创 java接口与抽象类

关键点:接口和抽象类的分别适用场景,两者的区别适用场景:1.优先定义接口。2.当有多个接口实现公共的部分,则适用抽象类,然后集成它。使用抽象类是为了代码的复用,而使用接口是为了实现多态性。区别:(1)抽象类1.抽象方法必须存在于抽象类中。2.类声明abstract,只能被继承使用,不能生成对象,但是可以有构造函数。3.子类继承抽象类必须实现其中的抽象方法,...

2019-05-01 20:17:38 1457 1

原创 时间复杂度分析(递归求斐波那契)

使用递归树进行分析1.斐波那契的递推式是: f(n)=f(n-1)+f(n-2)其中:f(1)=1,f(2)=12.用java代码实现:public int getResult(int n){if(n == 1 || n == 2) return 1;return getResult(n-1)+getResult(n-2);}3.时间复杂度分析(递...

2019-05-01 00:00:51 5577 4

原创 递归输出目录的文件名

import java.io.File;public class Wuyu9 { private static String separator = File.separator;  private static String path = "F:" + separator + "A"; public static void Q(File m) {  if(m.exists()) {...

2018-07-28 06:48:40 720

原创 算法之7-快速排序

java版的快速排序

2016-10-04 18:29:56 385

原创 Spring框架学习(四)

本篇主要对Spring的BeanFactory和ApplicationContext以及FactoryBean进行讲解

2016-03-05 19:02:41 356

转载 《Thinking In Algorithm》09.彻底理解递归

递归真的非常非常重要!!!我们直接从例子开始吧!一:简单实例1.阶乘的实现写个函数实现   N! = N × (N-1) × (N-2) × ... × 2 × 1[java] view plain copy print?public static int factorial(int N) {      if 

2016-02-23 16:30:20 434

转载 Java分布式应用技术架构介绍

分布式架构的演进系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的资源都在一台服务器上。描述:通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用Mysql,汇集各种免费开源软件以及一台廉价服务器就可以开始系统

2016-02-20 15:21:25 374

原创 Spring框架学习(二)

本篇主要涉及Spring环境的搭建,以及对IOC和DI进行描述1.jar包下载初学者可能进入Spring官网找不到jar包的下载地址,上图就是找到jar包的路径2.面向接口编程面向接口编程并不是比面向编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于一部分,是面向对象编程体系的思想精髓之一。面向接口编程就是在系统分析和架构中,分清层次和依赖关系,每个层

2016-02-03 17:45:49 644

原创 Spring框架学习(一)

1.什么是Spring框架?Spring是一个开源的控制反转(Inversion of Control , IOC)和面向切面(AOP)的容器框架,它的主要目的是简化企业开发。2.Spring框架架构图(1)Spring CoreSpring框架最基础的部分,提供依赖注入来实现容器对Bean的管理,最基本的概念是BeanFactory,它是Spring应用的核心。B

2016-02-03 16:13:50 693

原创 ArcGIS查询总结

ArcGIS查询主要是三个类:IdentifyTask,.FindTask,QueryTask1.IdentifyTask   仅仅是空间查询,对一个地图服务多个图层(全部,或者指定几个ID索引)做空间识别查询,IdentifyTask仅仅用于空间信息查询用法简介://identifyTask 是对一个地图服务多个图层(全部,或者指定几个ID索引)做空间识别查询

2015-12-24 16:51:52 3130

原创 算法之6-回溯法解数独问题

刚开始学习的时候,总是不知道对数组进行回溯的时候,怎么保证找到的是下一个空值, 所以写好一半的代码就放在一边,一个星期之后回过头再看回溯法解数独的时候,突然醒悟过来:原来在构造数组的时候,以0值代替空值,当从1-9的某一个数填入该处的时候,该处就不是0值,回溯重新调用方法的时候,找到的0值就是下一处的0值了.注意点:    (1).sudoku方法的返回值是布尔值,这样子"&&"两边才

2015-12-20 21:02:58 2159 1

原创 算法之5--回溯法解决八皇后问题

关键点:1.判断条件的书写2.横向走和纵向走,往回走的控制条件就是,当满足条件,且还没走到底(N),纵向走(此时continue,可以有可能一直走到底)当不满足条件,横向还没走到底,横向走当不是第一行的列是最后一列的时候,往回走(此时可以判断是第一行在最后一列的话,可以退出循环,直接break掉)代码如下:public class queen { /**

2015-12-06 19:54:25 756

原创 算法之4--拓扑排序

转眼已经是11月的尾巴了,这个月就写了一篇文章,趁着周六日的时间,把拓扑排序用java实现了一边实现方法import java.util.Stack;public class TopoSortMethod {int[] sort(int graph[][]){ int[] sortedArray = null; //构造一个栈,用来存放节点 Stack stack=ne

2015-11-29 21:12:23 376

原创 ArcGIS 实现框选区域查询要素后,要素点击弹出框

2015.11.12 在webGis 项目的开发中,当前已经实现使用QueryTask来针对要素进行NAME,空间,缓冲区的查询之后,

2015-11-12 17:10:04 15788 3

原创 Easyui 定制window窗口

Jquery Easyui 是一种基于JQuery的用户界面插件集合,在实际的开发种给我们带来了很大的便利,方便数据的直观展示等。 在实际的开发中,我们要使用easyui就需要先导入easyui的jar包。easyui默认的样式是这样子的但是在实际的开发中有时候需要定制自己项目使用的easyui ,那么我们就需要对easyui的样式进行相应的修改

2015-10-27 18:24:20 1484

原创 算法之3--合并排序

合并排序1.基本设计思想:将原始数组A[0...n-1]中的元素分成两个子数组:A1[0,n/2]和A2[n/2+1,n-1].分别对这两个子数组单独排序,然后将已排序的两个子数组归并成一个含有n个元素的有序数组.2.与快速排序的联系a.都是分治的思想.b.经过一次划分之后,实现对A数组的调整:其中一个子集合的所有元素均小于等于另外一个子集合的所有元素.C.快速排序按同样的策略

2015-10-11 08:43:01 608

原创 ETL工具kettle实现循环

1.   实现循环(1)    作业图(2)    转换图:获取数据_变量(3)    转换图:获取数据_查询(4)    得到数据表的主键ID,复制记录到结果中(5)    Javascript脚本处理(6)    循环控制器(7)    Regiondetail的

2015-10-09 12:38:22 4395

原创 算法之2--桶排序

桶排序桶排序是时间为o(n)的算法,属于用空间换取时间的算法,总结其用途可以有以下几点1.实现按规则的排序.2.求数据之间最大的间距.3.求数据之间间距最大的三个数.4.求时间复杂度为o(n)的排序算法.......等-----------------------------------------------------------------------------

2015-09-27 01:48:51 565

原创 关于easyui的datagrid detailview的初次点击出现的重叠错位问题

先上问题的效果图由上图可以知道,当点击按钮的时候,会出现详情页将下面的数据挤出到别的位置,正确的效果图,应该是这样子的:我们来看代码是怎么写的: view: detailview, detailFormatter:function(index,row){

2015-09-09 10:21:20 6238 3

转载 jsp的九大隐式对象及其作用域

九大对象:  内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用  1-out:  javax.servlet.jsp.JspWriter类型,代表输出流的对象。作用域为page(页面执行期)  request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTT

2015-08-24 01:25:03 813

原创 linux下安装Android Studo(elementaryOS)

所用的系统是elementaryos,第一次安装,首选就是就是优秀详细的博客,我是看http://blog.csdn.net/vblittleboy/article/details/19339311这篇博客。下面我讲我在列出我在安装的过程中出现的几个问题1.安装JDK报错:bash: /usr/lib/jvm/jdk1.8.0_60/bin/java: cannot execute b

2015-08-23 11:32:50 673

原创 算法之1--KMP

KMP,即The Knuth-Morris-Pratt Algorithm,中间的单词是创造早这个算法的三个人,该算法可以用于字符串的匹配查找,该算法的优势体现在当主串和模式串有重复字符时,可以降低时间复杂度。一般在学习算法之前所用的方法的方法都是暴力求解(Brute Force,BF),下面我将一一讲解这两种算法。 一.BF先不说介绍,先看查找过程,如下图:这边p从M的第

2015-08-16 15:14:37 386

空空如也

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

TA关注的人

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