自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (7)
  • 收藏
  • 关注

原创 TCP协议原理详解

在阅读之前,你需要了解网络协议的基本知识,这篇博文并不会具体介绍,只是粗浅的总结Tcp协议相关知识。

2017-08-10 20:14:33 2080

原创 GC相关问题

ps:以前看的好多书,都忘了,决定好好写博客,写总结了GC的问题大致分为三大类:1.要gc哪些对象?2.通过什么方法来gc?3.什么时候触发gc?怎样gc的?下面通过对这三个问题的思考来捋一捋gc相关的知识点: 一.要GC哪些对象?通常来说,不使用的对象,就应该被回收,怎么找到不使用的对象呢?有两种算法:引用计数法,可达性分析法。对于java语言来说,由于循环引用...

2018-07-19 18:32:06 399

原创 矩阵覆盖的解题思路

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:错误的思路:在看到这个题的时候,想的是按照第一种方式,第一个采用2*1的形式那结果有 f(n-1),第二种开头分为 2*1 2*1 或者 1*2 1*2 所以有两种结果2f(n-2); f(n) = f(n-1)+2f(n-...

2018-07-18 17:25:20 1521 1

原创 java.util源码解析(五)CyclicBarrier

一.CyclicBarrier的基本使用在所有子线程运行过程中,设置屏障 cyclicBarrier.await(); 突破屏障后,调用CyclicBarrier中带的一个barrierCommand方法。public class CyclicBarrierDemo { public static class Soldier implements Runnable { ...

2018-07-12 15:05:55 269

原创 java.util源码解析(四)共享锁之CountDownLatch

一.CountDownLatch的基本使用CountDownLatch的应用:使得主线程要等待所有子线程完成工作之后,再继续执行后面的代码具体使用也很简单所有子线程run方法的finally中调用 countDownLatch.countDown();在开启所有子线程后,主线程中调用 countDownLatch.await();public class Test...

2018-07-12 10:54:15 276

原创 java.util源码解析(一)AQS介绍

一.AQS介绍AbstractQueuedSynchronizer 它是java.util包实现的基础,甚至可以说它就是锁,相比于Synchronzied关键字实现的内置锁,只实现了排他锁。AQS通过一个类变量 private int state 来表示锁状态,通过继承类实现了多种锁模式,如排它锁,共享锁,以及可重入锁等。 在AQS中通过一个内部类Node 来包装线程,代码如下stati...

2018-07-11 17:45:05 221

原创 Spring初始化Ioc源码分析以及Aop原理分析(四)

Spring AOP原理经过前面的分析,大致已经了解了Spring的原理,其中在使用的时候,有一个很重要的点就是AOP编程,什么是AOP,就不多做概述了,一句话:面向切面编程,在原有业务逻辑上,通过动态代理进行功能增强。 在Spring中主要是利用了BeanPostProcessor可以在Bean生命周期进行拦截的特性。因此主要有两步:解析xml的时候,注册aop相关的BeanPost...

2018-07-07 19:29:22 676

原创 Spring初始化Ioc源码分析以及Aop原理分析(一)

一. 什么是Spring Ioc思想?Spring Ioc的目的就是通过一个容器来控制对象的生命周期以及对象之间的关系。所有的类都会在Spring容器中进行注册登记,由Spring Ioc容器来创建、控制运行和销毁。1.1 Spring Ioc容器的基本构成通过上面这段话,首先可以确立两个角色,一个是容器,一个是存在容器中的类。那么首先来分析Spring源码中这两个角色的代表对象是什么...

2018-07-06 21:30:22 601

原创 Mybatis源码解析以及和Spring整合后的变化

MyBatis源码解析先看看不整合Spring,mybatis原生的基本用法: //1.第一步获取SqlSessionFactory工厂 String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Test1.class...

2018-07-05 16:47:50 271

原创 最大奇约数

小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求出 f(1) + f(2) + f(3)…….f(N) 例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + ...

2018-06-19 19:44:17 624

原创 暗黑字符串

题目:一个只包含’A’、’B’、’C’的字符串,如果存在一段长度为3的连续子串中,恰好有’A’、’B’、’C’各有一个,那么这个字符串就是纯净字符串,否则这个字符串是暗黑的。 例如:BAACAACCBAAA这个字符串就是暗黑的。例如: BAACAACCBAAA这个字符串就是纯净的,因为其连续子串中包含了’C’、’B’、’A’各一个。你的任务就是计算出长度为n的字符串(包含’A’、’B’...

2018-06-19 18:52:43 470

原创 跳石板之动态规划

题目描述小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3……. 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。 例如: N = 4,M = 24: 4-&...

2018-06-18 18:39:58 447

原创 动态规划之合唱团

问题:有n个学生站成一排,每个学生有一个能力值,从这n个学生中按照顺序选取k名学生,要求相邻两个学生的位置编号的差不超过d,使得这k个学生的能力值的乘积最大,求返回的最大乘积。输入描述: 每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 ai(-50 ...

2018-06-04 14:25:56 473

原创 docker 的学习(一)

一.docker的win10安装对于win10专业版,docker官方提供了可以直接使用的docker for windows。 下载地址 下载完成后, 点击运行,如果win10 没有开启 hyper-v ,会提示你开启。 开启之后,docker不一定可以安装成功,因为电脑的cpu虚拟化可能没开通过。查看是否开通,通过任务管理器查看: 上面的虚拟化:已启用 如果没有启用,就...

2018-04-19 22:02:59 351

原创 Spring初始化Ioc源码分析以及Aop原理分析(三)

1.分析这行代码:ApplicationContext beanFactory = new ClassPathXmlApplicationContext(“spring/springmvc.xml”);public ClassPathXmlApplicationContext(String configLocation) throws BeansException { // 直接调...

2018-03-27 21:40:01 289

原创 Spring初始化Ioc源码分析以及Aop原理分析(二)

xmlBeanFactory初始化加载资源public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { super(parentBeanFactory); this.reader = new XmlBeanDefinitionReade...

2018-03-26 22:54:10 217

原创 Servlet和Servlet容器概念

1.什么是Servlet?在查看javax包下的Servlet,可以看到,servlet仅仅是一个普通的java接口。package javax.servlet;import java.io.IOException;public interface Servlet { // 初始化方法 void init(ServletConfig var1) throws Ser...

2018-03-26 19:51:42 2654 3

原创 java8 中Lambda表达式

一. lambda表达式的使用:在 c/c++ 中可以使用函数指针的形式,把一个函数(一段代码块)传给另一个函数。而在 c# 中可以使用委托的形式也可以实现delegate int methodName (int a);public int sum(int a){ return a + 4;}// 只要返回值 和 参数类型一致那么就能把方法委托给methodNameme...

2017-11-07 19:24:06 298

原创 HashMap 的源码分析

一.java中的位运算符在具体分析之前,先补充点基础知识1.1 算术位运算符<< :代表左移 << 3 左移三位,即本来数值 乘于 2^3; 左移低位补0public void test(){ int x = 4; System.out.println(Integer.toBinaryString(x)); //100 int y = 4<<2; System.out.

2017-11-06 20:44:58 304

原创 java8中的String

ps: 这篇博客是乱写的,笔记的形式,后面有空再整理。1.加载:生成Class对象,不放在堆中,存放在方法区中的元空间。 2.准备:正式为类变量(static),分配内存,并设置默认初始值(数据类型的0值,比如,int 为 0); 3.至此,类加载结束。但初始化还是要看时机的。实例化的时候 new 调用其中的静态字段或者静态方法。反射调用的时候。4.什么时候被动引用,不引发初始化呢?

2017-11-02 14:11:21 1474

原创 java类加载模式与web容器的类加载模式

一.概述在初学java的时候,很多书和资料都会说java是一个跨平台的语言,是一个动态语言,可以在运行期间加载类。首先说,java是一个跨平台的语言,是因为它的两个关键点:java虚拟机 jvm.class 字节码文件任何一个java文件都是先编译成 .class文件,然后再经过jvm解释成机器码。只要拥有.class文件和jvm,那么任何一个平台都可以运行。然后再看,java是一个动态语

2017-10-30 21:42:46 2215

原创 Tomcat与Servlet的笔记

最近要使用springMvc框架做一个项目。突然想研究一下,Tomcat服务器和Servlet的关系。一.Tomcat的模块结构和简单流程看了很多关于介绍Tomcat服务器的资料,这里写一个总结。Tomcat服务器主要有几个模块构成 ,Server,Service,Connector,Container(Engine、Host、Context、Wrapper) 它们的关系如下:Server:代

2017-10-26 21:08:44 1339

转载 机器学习的入门讲解

目录(?)[+]转自 飞鸟各投林史上最强—-机器学习经典总结—入门必读—-心血总结—–回味无穷让我们从机器学习谈起转自 飞鸟各投林史上最强—-机器学习经典总结—入门必读—-心血总结—–回味无穷让我们从机器学习谈起导读:在本篇文章中,将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。当然,本文也面对一般读者,不会对阅读有相关的前提要

2017-10-11 13:17:48 469

转载 递归的理解

递归是编程中一个相对难以理解但是却又很重要的概念. 对于从命令式语言开始学习编程的程序员天生对此有理解缺陷, 而对于从类似C++这种对函数式编程范式不友好的语言开始学习编程的程序员就更加如此了.(比如我自己) 碰巧(其实不巧)最近在读这本书(这本书国内没有引进, 网上只有巨贵的亚马逊卖的原版, 我读的是网上的中文版), Paul Graham在书中讲述的如何写递归函数的部分, 让我印象深刻. 因为

2017-08-27 16:39:16 731

原创 ThreadLocal的原理以及在Spring中的应用

前言问题的引出是在项目的时候使用spring框架,在spring中bean都是单例的,因此在想这样会不会导致多线程的问题呢?然后再网上看了很多blog,都是说是使用ThreadLocal来避免多线程问题的,但其实读起来都是很难理解,说的最多的就是,threadLocal是多线程中使用共享资源而避免线程安全问题的另一个解决办法(一个是采用同步)。但其实我的理解不是如此: ThreadLocal是对线

2017-08-23 18:00:24 4194 3

原创 leetcode之 Longest Substring Without Repeating Characters

problem: Given a string, find the length of the longest substring without repeating characters. Examples: Given “abcabcbb”, the answer is “abc”, which the length is 3. Given “bbbbb”, the answer is

2017-08-04 16:02:53 256

转载 oracle 查询总结

全部看完收益良多,遂转载,原博客网址http://blog.csdn.net/rosekin/article/details/39298255本次预计讲解的知识点1、 多表查询的操作、限制、笛卡尔积的问题;2、 统计函数及分组统计的操作;3、 子查询的操作,并且结合限定查询、数据排序、多表查询、统计查询一起完成各个复杂查询的操作;一、多表查询的基本概念在

2017-05-26 15:56:47 267

原创 二叉树以及遍历算法

这两天看了很多关于二叉树的资料,遂来写个总结。 1>什么是二叉树?树:树不同于数组Array以及链表 List ,前面两种都是线性结构。而树是介于线性和非线性之间的半线性结构。实质上就是链表的链表,即一个节点可以发散出多条链表,形成树状结构,如下图: 那么我们如何在计算机中表达这种结构呢? 这里有一种很经典的表示法:长子+兄弟 表示法。 长子+兄弟:每个节点都有:parent域

2017-04-13 13:00:37 463

原创 出栈序列的判断,以及栈混洗。

栈:栈的结构是很简单的,简单来说就是一个先入后出的列表。 栈混洗:一个放在栈序列入中间栈再出中间栈得到一个新的栈。那么如何判断一个序列是否是出栈序列呢? 1.简单判断: 首先,我们拿一种简单情况来看 初始栈:(1,2,3] 很明显新的栈不可能是[3,1,2) 圆括号代表栈顶 从这里我们就能看出, 对于(…i,…j…..,k..],只要序列为[….k,…i,…j)那么这个序列一定

2017-04-08 15:10:52 5511 1

原创 js的变量和闭包的理解

最近项目里涉及到关于js方面的知识,花了点时间研究下,遂记录下来: 先来点开胃小知识: 1>全局变量和局部变量 全局变量:非局部变量就是全局变量,且在引入的多个js文件中通用。 局部变量:定义在方法内部的变量,函数的形参也属于。在方法内部定义变量,一定要加var,否则会被定义为全局变量,例子如下:var B = A(2);B(10);function A(x) {

2017-03-30 10:30:19 452

转载 http中Content-Type详解

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在spring MVC中如何使用它们来映射请求信息。Content-TypeMediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息

2017-03-27 21:27:57 1769

原创 2017网易实习编程题以及其他几个算法总结

首先,这里给自己提一个醒,能得出结果的算法才是好算法,即使不是很优化! 1.终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug。假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上。小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打

2017-03-27 18:13:19 473

原创 排序算法的总结

1>冒泡排序 原理:拿相邻的数比较,如果a[i]>a[i+1] ,两者互换,那么第一轮就会把最大的数拍到最后一个。 (规模响应减小,且每一轮都可以得到正确结果) 优化:设立一个flag,把他放在每一轮最后不在交换的位置,那么在flag之后的数都是有序的。2>插入排序 原理:那一个数和他前面的数比较,如果它小于它前面的数,就把它前面的数放到它的位置上,那就空出一个位置,最终可以找到合适的位置,

2017-03-26 21:55:53 245

转载 session机制和cookie机制的理解

虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。    一、术语session     在我的经验里,session这个词被滥用的程度大概仅次于transacti

2017-03-14 15:25:45 875

转载 java程序的编译和执行

http://www.360doc.com/content/14/0218/23/9440338_353675002.shtmlJava整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。                 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)  2、字节码由java虚

2017-02-27 20:27:59 349

原创 apache-tomcat部署虚拟主机和虚拟目录的简单分析

如何安装apache-tomcat我就不再赘述,在安装之后,会出现如下几个文件夹 1. bin 2. conf Tomcat配置文件 3. lib 服务器运行使用的jar包 4. logs 日志文件,运行时产生的日志。 5. temp 6. webapps

2017-02-26 20:06:46 829

转载 js中怎么获取系统当前时间 格式 yyyy-MM-dd HH:MM:SS

http://www.cnblogs.com/hanwenhua/articles/3853352.htmljs获获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”123456789101112131415

2017-02-17 19:42:36 3237

原创 asp.net导出excel表格的总结

需求:把客户所需要的数据不仅显示在网页上,还需要可以通过excel表格导出。 上面是客户提的要求,为了实现这个功能,我查了很多博客资料,但是大部分都是给你一段代码,并没有告诉你,这段代码用在什么地方,需要什么样的引用。下面是我研究的一点心得:1.通过查阅资料,找到NPOI导出excel的方法。 通过一般处理程序.ashx文件 <%@ WebHandler Language="C#" Class

2017-01-18 19:36:56 1841

原创 数组插入问题<剑指offer>

*最近在做剑指offer,因为书上都是用c/c++实现的,我又看不懂c++,只能努力试试看用java来实现。* 题目: 有两个已经排好序的数组(假定它们是从小到大排序)A1和A2,请实现一个函数,把A2中的所有数字插入到A1中,并且所有的数字都是排序的。 思路: 因为两个数组都是排好序的,如果我们从前面逐个比较,后面的数字就要不断往后移动,且会重复移动,很明显,这样时间复杂度很大,那么我们从

2016-09-24 10:35:31 426

原创 简单算法之插入排序及其优化shell排序

1>插入排序:顾名思义是通过不断把新的元素插入到前面有序的序列中。 思路:1.当数组只有一个元素时,不需要排序。所以插入排序从a[1]开始; 2.当数组长度为n时,那么所要插入的元素a[1]~a[n-1],这利用for循环遍历所有需要被插入的元素 3.当a[i]小于a[i-1],那么a[i]就需要往前插入,以使得a[0-i]数组有序,而且a[i]

2016-09-19 20:00:15 432

idea中ssh框架整合

ssh框架如何在idea中整合

2017-08-18

数据结构与算法 java版本

数据结构与算法中的java版本,相比于c版本,对java学习者更有用处

2017-08-18

c3p0连接池使用所需jar包

使用c3p0所需jar包

2017-08-18

java使用json的jar包集合

里面包含java使用json的所有jar包

2017-08-18

github学习与在idea上使用

为像我一样的初学者提供便利

2017-06-07

优化理论An Introduction to Optimization 中文版

最优化理论的经典书籍。

2016-11-02

空空如也

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

TA关注的人

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