liyanlei的专栏

学海无涯,温故而知新! Stay Hungry, Stay Foolish

Java开发中的23种设计模式详解

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模...

2017-07-31 18:48:34

阅读数:261

评论数:0

栈和栈帧

栈的概念: 每个任务(进程)有一个栈(stack),在这个进程中每个函数被调用时分别从这个栈占用一段区域,称为帧(frame)。寄存器esp指向当前整个栈的栈顶,寄存器 ebp指向当前帧的帧底。这里务必要区分清楚,栈相对于整个系统而言,调用栈(call stack)相对于某个进程而言,帧...

2017-07-27 17:53:43

阅读数:225

评论数:0

浅谈栈帧

一、 什么是栈帧? 什么是栈帧,首先引用百度百科的经典解释:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。 实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关信息的记录单元。也许这样感觉更复杂了,好吧,让我们从栈开始来理解...

2017-07-27 17:52:52

阅读数:129

评论数:0

对象的访问定位:句柄与直接指针

对象的访问定位:句柄与直接指针 Java程序通过栈中的reference数据来操作堆上的具体对象,而对象的访问方式取决于虚拟机的实现。主流访问方式有句柄和直接指针两种 句柄方式 Java堆中将会划出一块内存来作为句柄池,reference对象存储的就是对象的句柄地址。句柄中包含了对象实例...

2017-07-27 17:51:39

阅读数:169

评论数:0

深入理解JVM之七:静态分派与动态分派

前言这里所谓的分派指的是在Java中对方法的调用。Java中有三大特性:封装、继承和多态。分派是多态性的体现,Java虚拟机底层提供了我们开发中“重写”和“重载”的底层实现。其中重载属于静态分派,而重写则是动态分派的过程。除了使用分派的方式对方法进行调用之外,还可以使用解析调用,解析调用是在编译期...

2017-07-27 17:47:53

阅读数:146

评论数:0

深入理解JVM之六:类加载机制

前言虚拟机的类加载机制可以简单描述如下:Java虚拟机把描述类的数据从Class文件中加载到内存中,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的Java类型。虚拟机加载进行类加载的过程是在程序运行期间完成的,在程序运行期间加载的好处是可以动态扩展,说白了就是在编译期间虚拟机是不知...

2017-07-27 17:47:01

阅读数:165

评论数:0

深入理解JVM之五:类文件结构

前言我们平时在DOS界面中往往需要运行先运行javac命令,这个命令的直接结果就是产生相应的class文件,然后基于这个class文件才可以真正运行程序得到结果。自然。这是Java虚拟机的功劳,那么是不是Java虚拟机只能编译.java的源文件呢?答案是否定的。时至今日,Java虚拟机已经实现了语...

2017-07-27 17:45:45

阅读数:118

评论数:0

深入理解JVM之四:详解垃圾收集器

前言前面已经对垃圾收集算法有了较为详细的介绍,这里我们将对JVM中具体的垃圾回收器进行介绍,在虚拟机规范中并没有对垃圾回收器如何实现具体介绍,因此每个厂商的垃圾回收器可能会完全不同,但是我们介绍的是基于JDK1.7之后的Hotspot虚拟机(包括前面对Java虚拟机的介绍也是基于jdk1.7版本的...

2017-07-27 17:37:00

阅读数:150

评论数:0

深入理解JVM之三:垃圾回收算法

前言垃圾收集算法是JVM中垃圾收集器的方法论,所以了解算法是必要的,在算法领域只做最简单的介绍,力求文章的简单易懂。垃圾收集算法主要有以下几种:标记-清除算法(mark-sweep)、复制算法(copying)和标记-整理算法(mark-compact)。随着jdk版本的升级,垃圾收集器也在不断的...

2017-07-27 17:33:36

阅读数:162

评论数:0

深入理解JVM之二:垃圾收集器概述

前言我们知道Java的内存区域分为程序计数器、虚拟机栈、本地方法栈、Java堆和方法区,而且其中的程序计数器、虚拟机栈和本地方法栈都是线程独立的,也就是说这三块内存区域的生命周期与线程是同生共死的。栈中帧栈在类结构确定的时候就已经知道该分配多少内存了,所以当线程结束的时候,内存也跟着一起回收了,从...

2017-07-27 16:58:19

阅读数:124

评论数:0

深入理解JVM之一:Java内存区域

前言 Java虚拟机运行时数据区分为以下几个部分:  方法区、虚拟机栈、本地方法栈、堆、程序计数器。如下图所示: 程序计数器 程序计数器可以理解为当前线程执行的字节码的行号指示器,字节码解释器就是通哟改变这个值来获取需要执行的下一条需要执行的字节码指令。对于多线程来说,每条线程都有...

2017-07-27 16:12:20

阅读数:124

评论数:0

深入理解JVM之一:Java内存区域

前言Java虚拟机运行时数据区分为以下几个部分:方法区、虚拟机栈、本地方法栈、堆、程序计数器。如下图所示:程序计数器程序计数器可以理解为当前线程执行的字节码的行号指示器,字节码解释器就是通过改变这个值来获取需要执行的下一条需要执行的字节码指令。对于多线程来说,每条线程都有自己的程序计数器,这样各线...

2017-07-25 17:46:46

阅读数:132

评论数:0

如何优化tomcat配置(从内存、并发、缓存4个方面)优化

Tomcat有很多方面,我从内存、并发、缓存三个个方面介绍优化方法。    ** 一.Tomcat内存优化 **   Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。  ...

2017-07-22 18:22:59

阅读数:210

评论数:0

TOMCAT原理详解及请求过程

Tomcat:   Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。 Tomcat目录: tomcat   |---bin:存放启动和关闭tomcat脚本   |...

2017-07-22 17:53:37

阅读数:224

评论数:0

tomcat 工作原理

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

2017-07-22 17:25:07

阅读数:221

评论数:0

面试心得与总结—BAT、网易、蘑菇街

先说一下LZ的基本情况,LZ是四川某985学校通信专业的研究生(非计算机),大学阶段也就学了C语言,根本没想过最后要成为码农。大四才开始学Java,研一下开始学Android,所以LZ觉得自己开始就是一个小白,慢慢成长起来的。 一、心态 心态很重要! 心态很重要! 心态很重...

2017-07-22 15:15:30

阅读数:403

评论数:0

阿里面试回来,想和Java程序员谈一谈

其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为...

2017-07-22 14:55:40

阅读数:342

评论数:0

115个Java面试题和答案——终极列表(下)

第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。异常处理Java小应用程序(Applet)SwingJDBC远程方法调用(RMI)Se...

2017-07-22 14:35:00

阅读数:122

评论数:0

115个Java面试题和答案——终极列表(上)

本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要讨论异常处理,Java小应用程序,Swing,...

2017-07-22 13:33:53

阅读数:122

评论数:0

40个Java集合面试问题和答案

1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Jav...

2017-07-22 11:08:27

阅读数:142

评论数:0

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