自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟程序猿的博客

阿猫形色匆匆,阿狗心事重重,不见得谁比谁天真,谁比谁浅薄,毕竟,所有人都在同一片大雨中。努力吧 !少年……

  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 newinstance()和new有什么区别?

在初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别?用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩、可扩展,可重用等软件思想上解释了。Java中工厂模式经常使用newInstance来创建对象,因此从为什么要使用工厂模式上也可以找到具体答案。例如:C

2016-09-17 09:35:20 607

原创 句子逆序,带输入输出

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/** * 反转句子 *  * @param sentence 原句子 * @return 反转后的句子 */public String reverse(String sent

2016-08-19 11:19:14 683

转载 leetcode——8 String to Integer (atoi)(自定义字符串转整型,如何避开各种奇葩输入)

Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input case

2016-08-17 09:17:49 792

原创 Java基础

51.servlet生命周期及各个方法参考文章http://www.cnblogs.com/xuekyo/archive/2013/02/24/2924072.html52.servlet中如何自定义filter参考文章http://www.cnblogs.com/javawebsoa/archive/2013/07/31/3228858.html53.JSP原理

2016-08-16 16:44:07 388

原创 我的基础知识

面向过程与面向对象的区别  面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可。面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。下面举一例说明面向过程和面向对象编程。overload与override的区别

2016-08-12 19:40:29 483

转载 Java并发编程:线程池的使用

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?  在Java中可以通过线程池

2016-07-29 10:02:45 520

转载 Inotify: 高效、实时的Linux文件系统事件监控框架

在日常工作中,人们往往需要知道在某些文件(夹)上都有那些变化,比如:通知配置文件的改变跟踪某些关键的系统文件的变化监控某个分区磁盘的整体使用情况系统崩溃时进行自动清理自动触发备份进程向服务器上传文件结束时发出通知通常使用文件轮询的通知机制,但是这种机制只适用于经常改变的文件(因为它可以确保每过x秒就可以得到i/o),其他情况下都非常低效,并且有时候会丢失某些类型的变化,例如文件的修改时

2016-07-28 15:51:11 1856

转载 成为JavaGC专家(1)—深入浅出Java垃圾回收机制

于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开发经验。如果你曾经想过如何正确的选择GC算法,那意味着你已经完全理解你所开发的应用的特点。当然

2016-07-28 15:36:20 318

原创 Java学习

一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133http://ifeve.com/jmm-faq/1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具

2016-07-27 21:19:06 1177

转载 简单理解Socket

题外话前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括php的、C#的、甚至Node.js的

2016-07-27 15:03:45 434

转载 B 、B-、B+树总结

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关

2016-07-27 15:02:36 322

转载 select、poll、epoll之间的区别总结

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用

2016-07-27 09:49:56 1005

原创 多路复用epoll()总结

1、基本知识  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口  epoll操作过程需要三个接口,分别如下:

2016-07-27 09:39:41 942

原创 多路复用select()总结

1、基本概念  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用

2016-07-27 09:38:31 3685

原创 多路复用poll() 总结

1、基本知识  poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数

2016-07-27 09:37:29 1595

转载 TCP连接的建立与中止

TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接。这和前面讲到的协议完全不同。前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送到,UDP尤其明显,从编程的角度来说,UDP编程也要简单的多----UDP都不用考虑数据分片。书中用telnet登陆退出来解释TCP协议连接的建立和中止的过程,可以看到,TCP连接的建立可以简单的称为三次握手,而连接

2016-07-26 13:06:17 629

转载 tomcat 工作原理

大致的架构是 jsp+tomcat+mysql,记录tomcat学习一点笔记。Tomcat是Servlet运行环境(容器),每个servlet执行init(),service(),destory()以下是servlet的作用Servlet的调用Tomcat的工作模式3种:独立Servlet,进程内servlet,进程外servlet。Tomc

2016-07-25 18:20:27 38089 6

转载 GC的三种方式

术语解释:1.垃圾所谓垃圾(Garbage),就是需要回收的对象。作为编写程序的人,是可以判断“这个变量已经不需要了”的,但是计算机做不到。因此,如果程序直接或间接的引用一个对象,那么这个对象就被视为“存活”;反之,已经引用不到的对象被视为“死亡”。将这些“死亡”的对象找出来,然后作为垃圾进行回收,这就是GC的本质。2.根所谓根(Root),就是判断对象是否可被引用的起始点,至于哪

2016-07-22 12:29:47 17660 1

转载 hashmap 实现原理

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。

2016-07-22 08:28:47 348

原创 http post和get的区别

一 原理区别    一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST

2016-07-21 19:22:20 2281 1

原创 servlet

Serverlet简介:Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指 Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Server

2016-07-21 19:19:38 2662 2

原创 DDL DML

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.DDL是SQL语言的四大功能之一。用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束DDL不需要commit.CR

2016-07-21 19:13:45 1858

原创 数组中的逆序对

题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,有一个数组为Array[0..n] 其中有元素a[i],a[j].如果 当ia[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6,4}中一共存在5对逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)。参考文献

2016-07-16 16:21:48 1146

原创 丑数

面试题34:丑数题目:我们把只包含因子2,3和5的数称作为丑数。求按从小到大的顺序的第1500个丑数。例如6,8都是丑数,但是14不是,因为它包含因子7。习惯上我们把1作为第一个丑数。方法一:遍历法使用遍历法求第k个丑数,从1开始遍历,如果是丑数则count++,直到count==k为止。那么如何判断丑数呢?根据丑数的定义,丑数只有2,3,5这三个因子,那么

2016-07-15 15:34:57 287

转载 字符串的排列组合问题

来源http://blog.csdn.net/wuzhekai1985问题1 :输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。    思路:这是个递归求解的问题。递归算法有四个特性:(1)必须有可达到的终止条件,否则程序将陷入死循环;(2)子问题在规模上比原问题小;(3)子

2016-07-14 09:54:27 363

转载 JAVA多线程和并发基础面试问答

JAVA多线程和并发基础面试问答  原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/  多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问

2016-07-13 15:24:53 1460

转载 Java中的static关键字解析

Java中的static关键字解析  static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲:  一.static关键字的用途  二.static关键字的误区

2016-07-13 15:13:09 267

原创 冒泡排序

要点冒泡排序是一种交换排序。什么是交换排序呢?交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 算法思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端

2016-07-05 20:52:38 534 1

原创 归并排序

归并排序【1】归并排序归并排序是建立在归并操作上的一种有效的排序算法。该算法也是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序的算法复杂度为O(N*logN)。归并排序算法是稳定的(参见随笔《常用排序算法稳定性分析》)。【2】归并排序逻辑分析与代码实现在分析归并排序的逻辑之前,让我们也利用一下分治法理念:先从基层做起(个人之

2016-07-05 20:17:59 398

转载 LeetCode-分类题解

https://github.com/soulmachine/leetcode/raw/master/C%2B%2B/leetcode-cpp.pdf原作者:戴方勤([email protected])本书的目标读者是准备去北美找工作的码农,也适用于在国内找工作的码农,以及刚接触ACM 算法竞赛的新手。本书包含了LeetCode Online Judge(http://le

2016-07-03 14:53:04 2602

原创 遍历Map的四种方法

public static void main(String[] args) {  Map map = new HashMap();  map.put("1", "value1");  map.put("2", "value2");  map.put("3", "value3");    //第一种:普遍使用,二次取值  System.out.println("通过

2016-06-28 16:53:04 344

原创 算法、数据结构、排序

如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。开这个系列的目的是为了自我不断积累。不积跬步无以至千里嘛。 数据结构篇线性表顺序表的算法单链表的算法双链表的算法循环链表的算法栈队列 

2016-06-14 15:59:11 428

原创 技术发展的驱动力

互联网行业是一个快速发展、快速变化的行业,新的业务、新的机会层出不穷,新的技术如雨后春笋般冒出,NoSQL、大数据、云、Node.js、Docker等,无时不刻都在轰炸程序员们的脑袋,难怪中国的程序员都流传一个说法:过了30岁不能做技术工作了,因为技术发展太快了! 快节奏带来机会,但对于技术人员来说,更多的是带来挑战,甚至有时候是困惑。例如:Docker很火哦,咱们要不要用

2016-06-14 08:46:26 3787

原创 业务如何驱动技术发展

在《BAT解密(一):聊聊技术发展的驱动力》一文中,我们详细阐述了对于服务类的业务来说,业务发展是技术发展的驱动力。那接下来我们就看看业务究竟是如何驱动技术发展的。互联网业务千差万别,但由于他们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、快速发展期、竞争期、成熟期。不同时期的差别主要体现在两个方面:复杂性、用户规模。

2016-06-14 08:37:44 3323

原创 evaluate-reverse-polish-notation

根据逆波兰式(后序遍历),计算出相应的结果,,Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*,/. Each operand may be an integer or another expression. Some examples: [

2016-06-13 16:31:43 302

原创 找出二叉树的最小深度

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.写递归步骤: (1)写出一个带形参的方法,明白方法实

2016-06-13 09:19:28 1900

转载 量子计算机---------下一个科技拐点

量子计算机可以比普通电脑或人类更为高效快速的筛选大量数据,并在可用的相关信息内做进一步数据分析,它可以丢掉那些用途细微的信息,加强主导数据信息的延展分析。  2013年5月,谷歌、NASA和美国大学空间研究联合会联合买下了加拿大D-Wave Systems公司制造的第二代量子计算机D-Wave Two。 D-Wave Two 配备了一个512量子位的Vesuvius处理器,测试

2016-05-19 16:04:34 851

转载 剑指offer—第二章算法之快速排序

算法:排序和查找(二分查找,归并排序,快速排序),位运算等。查找:顺序查找,哈希查找,二叉排序树查找,哈希表。二分查找可以解决:"旋转数组中的最小数字","数字在排序数组出现的次数"等问题。哈希表:优点:O(1)时间内查找一个元素的效率最高。           缺点:需要额外的空间来实现哈希表。二叉排序树查找:对应二查搜索树查找,可以解决:"二叉收索树的后

2016-05-17 21:44:03 983

转载 epoll讲解--转自”知乎“

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。    不管是文件,还是套接字,还是管道,我们都可以把他们看作流。    之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,

2016-05-17 15:29:44 273

原创 互联网行业的鄙视链之装逼与反装逼

“鄙视链“一词的兴起,源于2012年南方都市报一则《鄙视链——生活中那些微妙的优越感之社会心理分析》的报道。形形色色的鄙视链从现实蔓延至网络,不管承不承认,我们都有意或无意中被拉进了鄙视链的某一层,鄙视别人还是被别人鄙视,在鄙视链的流行中,除了鄙视,我们不会收获任何。  1、互联网行业鄙视链  国内互联网公司之间:BAT>老牌互联网公司>新三板>AB轮融资>天使轮>零融资 

2016-05-17 11:00:15 4476

分布式多媒体 简介

分布式多媒体 简介,适合计算机多媒体初学者,接触了解

2015-10-07

空空如也

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

TA关注的人

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