自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

转载 Java虚拟机(JVM)内存区域

Java虚拟机内存区域分为五部分:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。其中程序计数器、Java虚拟机栈、本地方法栈属于线程私有内存区,其生命周期与线程相同,随线程的产生而产生,随线程的消亡而消亡。这几个区域的内存在方法或线程结束时,自然就跟着回收了。因此这三个区域的内存分配和回收具有确定性,不需要考虑内存回收的问题。而Java堆和方法区属于线程共享内存区...

2018-10-09 20:35:00 126

转载 Java基础之this和super关键字用法

this在java中,this是一个引用当前类对象的引用变量,主要有以下几种用法:引用当前类的实例变量·this关键字可以用来引用当前类的实例变量。如果实例变量和某个方法的参数之间存在歧义(实例变量和参数命名相同),则通过this.变量名 可用于明确地指定实例变量以解决歧义问题。调用当前类方法可以使用this关键字调用当前类的方法,格式:this.方法名。如果不使用t...

2018-05-31 22:12:00 200

转载 Java基础之instanceof和transient关键字用法

instanceof用于检测指定对象是否是某个类(本类、父类、子类、接口)的实例。Java中的instanceof也称为类型比较运算符,因为它将类型与实例进行比较。 返回true或false。 如果对任何具有null值的变量应用instanceof运算符,则返回false。用法:Boolean result = object instanceof class;本类对象一定是本类的...

2018-05-30 20:57:00 212

转载 排序算法之快速排序

基本概念 快速排序是非常流行、应用非常广泛的排序算法,而且实现简单,适用于各种不同的输入数据,在一般应用中比其他排序算法都要快很多。快速排序是基于分治思想的原地排序的排序算法,将长度为N的数组排序所需时间和NlgN成正比,而且内循环比大多数排序算法都要短小和简单,因此一般情况比其他排序算法效率高。它的缺点是非常脆弱,某些情况可能导致它的性能达到平方级别,...

2018-05-22 20:55:00 296

转载 Java基础之final和abstract关键字

finalfinal在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。修饰变量(例如Math类的PI=3.1415926就是变量不可修改)用final关键字修饰的成员(实例)变量或局部变量统称为final变量。final变量经常和s...

2018-05-16 21:32:00 101

转载 排序算法之归并排序

前面几篇介绍的选择排序、插入排序、冒泡排序等都是非常简单非常基础的排序算法,都是用了两个for循环,时间复杂度是平方级别的。本篇介绍一个比前面稍微复杂一点的算法:归并排序。归并排序算法里面的归并思想和递归方法是值得我们学习的,归并的过程往往伴随着递归,其他很多地方都会用这两种方法,比如前面一篇《剑指offer题目系列三》中第12题“合并两个排序的链表”就用到这两种思想方法...

2018-05-10 20:26:00 101

转载 Java基础之static关键字的用法

Java中的static关键字主要用于内存管理。我们可以应用static关键字在变量、方法、块和嵌套类中。 static关键字属于类,而不是类的实例。 静态(static)可以是:变量(也称为类变量)方法(也称为类方法)代码块嵌套类 修饰变量 被static修饰的变量称作静态变量或类变量;没有被st...

2018-04-25 22:00:00 79

转载 剑指offer题目系列三(链表相关题目)

本篇延续上一篇剑指offer题目系列二,介绍《剑指offer》第二版中的四个题目:O(1)时间内删除链表结点、链表中倒数第k个结点、反转链表、合并两个排序的链表。同样,这些题目并非严格按照书中的顺序展示的,而是按自己学习的顺序,每个题目包含了分析和代码。 9、O(1)时间内删除链表结点 题目: 在O(1)时间内删除链表...

2018-04-24 20:21:00 98

转载 数据结构之栈和队列及其Java实现

栈和队列是数据结构中非常常见和基础的线性表,在某些场合栈和队列使用很多,因此本篇主要介绍栈和队列,并用Java实现基本的栈和队列,同时用栈和队列相互实现。 栈:栈是一种基于“后进先出”策略的线性表。在插入时(入栈),最先插入的元素在栈尾,最后插入的元素在栈顶;在删除时(出栈),最后插入的元素先出栈,最先插入的元素最后出栈。由此可见,对栈的插入和删除操作都...

2018-04-20 22:03:00 150

转载 数据结构之链表及其Java实现

数据的存储一般分线性存储结构和链式存储结构两种。前者是一种顺序的存储方式,在内存中用一块连续的内存空间存储数据,即逻辑上相连的物理位置相邻,比较常见的就是数组;后者是一种链式存储方式,不保证顺序性,逻辑上相邻的元素之间用指针所指定,它不是用一块连续的内存存储,逻辑上相连的物理位置不一定相邻。本篇主要介绍链式存储结构基于链表的实现,使用的语言为Java。 ...

2018-04-19 20:38:00 78

转载 剑指offer题目系列二

本篇延续上一篇,介绍《剑指offer》第二版中的四个题目:从尾到头打印链表、用两个栈实现队列、旋转数组的最小数字、二进制中1的个数。 5、从尾到头打印链表 题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。 链表节点定义的类如下: 解答:这里提供两种方式:用栈和递归。 ...

2018-04-18 21:56:00 115

转载 剑指offer题目系列一

本篇介绍《剑指offer》第二版中的四个题目:找出数组中重复的数字、二维数组中的查找、替换字符串中的空格、计算斐波那契数列第n项。 这些题目并非严格按照书中的顺序展示的,而是按自己学习的顺序,每个题目包含了分析和代码,代码都是用Java语言编写的。 1、找出数组中重复的数字 题目: 在一个长度为n的数组里...

2018-04-16 22:25:00 105

转载 Servlet生命周期与线程安全

上一篇介绍了Servlet初始化,以及如何处理HTTP请求,实际上在这两个过程中,都伴随着Servlet的生命周期,都是Servlet生命周期的一部分。同时,由于Tomcat容器默认是采用单实例多线程的方式处理多个请求,这一特性就导致了线程安全问题的存在。因此,本篇主要讲述Servlet生命周期与线程安全问题。 1、Servlet生命周期 ...

2018-02-08 22:11:00 142

转载 Servlet初始化及处理HTTP请求

上一篇详细介绍了与Servlet相关的几个核心的接口和类,当我们自己写Servlet类时,一般需要继承HttpServlet类,实现init()、doGet()、doPost()等方法。当我们写好Servlet类时,它在什么时候被初始化(init())?什么时候执行doGet()、doPost()等方法?本篇重点介绍这两个问题。 1、Servlet初始化...

2018-02-07 21:38:00 368

转载 Servlet及相关类和接口

上一篇介绍了在Web项目中web.xml文件的配置信息,本篇主要介绍里面非常重要的配置——Servlet配置,重点介绍与Servlet相关的几个接口和类,包括Servlet接口、ServletConfig接口、ServletContext接口、GenericServlet类、HttpServlet类。 1、Servlet介绍 什么是Se...

2018-02-05 22:21:00 347

转载 web.xml配置文件详解

笔者从大学毕业一直从事网上银行的开发,都是一些web开发项目。接下来会写一些关于web开发相关的东西,也是自己工作以来经常用到的内容。本篇先从web.xml文件开始介绍,笔者接触到的项目中都有这个文件,这个文件是Tomcat工程中最基础也是最重要的配置文件,Tomcat启动项目的时候会加载并读取这个文件,所以很有必要弄懂这个文件。 1、XML 声明和根元...

2018-02-01 22:27:00 241

转载 递归与斐波那契数列

递归是程序设计中经常遇到的概念,一些数学问题经常能用递归的方式解决,并且在算法设计中也能用到递归。笔者在最近学习算法的过程中,遇到了一种可以用递归方式实现的算法——归并排序,在介绍这个算法之前,有必要先把递归的概念介绍一下。所以本篇主要介绍递归的概念,并通过它的一个应用——斐波那契数列来说明。 递归简单来说就是如果一个函数或方法在执行时,直接或间接地调用...

2017-11-14 22:41:00 151

转载 中英文金额大写转换器

因为自己大学毕业以后一直从事网上银行的开发工作,所以工作中经常遇到把金额转化为大写的情况。起初只有人民币一种币种,将金额数字翻译成中文大写的形式在各种票据中很常见,时至今日依然还在使用,在网络上很容易能找到翻译的代码。而最近在开发“贸易金融”的需求时,涉及到进口信用证的开立功能,而进口证的申请书中除了人民币之外,还涉及到很多种外币供用户选择,比如美元、日元、英镑等等。同时...

2017-11-13 21:45:00 1184

转载 排序算法之冒泡排序

前面两篇介绍了两个非常简单和基础的排序算法——选择排序和插入排序,除了这两个,冒泡排序也是非常简单的一种排序算法。同样,本篇主要从“基本原理、排序流程、核心代码、算法性能、稳定性、参考代码”等几个方面介绍这一算法。 基本原理:依次比较两个相邻元素的大小,如果前一个元素大于(或小于)后一个元素,则两个元素交换位置。这样每一趟都能确定一个最大(或最小)的元...

2017-11-11 22:56:00 101

转载 希尔排序增量研究

上一篇介绍了希尔排序,它又被称为缩小增量排序,这就说明了增量在希尔排序中的重要性。 本篇使用四组不同的增量,通过统计排序的比较次数、移动次数、执行时间,来讨论不同的增量对希尔排序效率的影响。 选取的增量:h1=N/2, N/4, N/8,……,1(每次增量减半) h2=N/3,...

2017-11-08 20:25:00 663

转载 排序算法之希尔排序(缩小增量排序)

前面两篇介绍了两个非常简单又非常基础的算法——选择排序和插入排序,并通过一篇关于大乐透的小应用程序介绍了插入排序的一个简单应用。本篇介绍一个基于插入排序算法的、快速的排序算法——希尔排序。同样,本篇主要从“基本原理、排序流程、核心代码、算法性能、稳定性、参考代码”等几个方面介绍这一算法。 对于大规模的乱序的序列,插入排序算法执行效率并不太高,因为它只会交...

2017-11-01 22:31:00 451

转载 大乐透号码随机生成与排序

前面两篇介绍了两个非常简单的排序算法,本篇介绍排序算法的一个简单应用——对大乐透随机号码进行排序。 由于工作中涉及很多前端的开发,所以对前端技术有一定了解,前端的一个好处是可以直观地看到页面的布局。每次下班回家的路上总会路过一家彩票代售点,偶尔和同事一起去买几注机选的,所谓机选,其实就是机器随机生成的号码,而且是已经排序好的随机号码。于是就萌生了写一个大...

2017-10-30 21:25:00 3502

转载 排序算法之插入排序

上一篇介绍了选择排序算法,本篇介绍插入排序算法。 插入排序同样是非常简单又非常基础的排序算法,同样是逻辑简单、容易实现,好多复杂算法也经常离不开它的身影。和上篇一样,本篇也从“基本原理、排序流程、核心代码、算法性能、稳定性、参考代码”等几个方面介绍这一算法。 基本原理:简单来说就是将一个元素插入到已经排好的序列中,插入之后序列依然有序...

2017-10-27 21:07:00 104

转载 排序算法之选择排序

选择排序是所有排序算法中非常简单又非常基础的算法,逻辑简单、容易实现,好多复杂算法都是由这些简单的算法演变而来。所以想要学好算法,必须先从这些简单算法学起,循序渐进,为后面学习复杂算法打下基础。本篇主要从“基本原理、排序流程、核心代码、算法性能、稳定性、参考代码”等几个方面介绍这一算法。 基本原理:从待排序列中找到最小(或最大)的元素,和序列的第一个元素...

2017-10-26 21:51:00 90

空空如也

空空如也

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

TA关注的人

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