自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kingyxfly的博客

工作中遇到的问题

  • 博客(14)
  • 收藏
  • 关注

原创 我理解下的的虚拟机类加载机制

引言工作中,绝大多数我们多只关心业务逻辑实现,对于实现业务的类的生命周期并没有怎么关注。在我们实现业务逻辑时,不知不觉用到最多的就是类的生命周期中的“使用”阶段。曾经我也试着去看关于类加载的一些博客或者虚拟机相关的书籍,初看时一知半解,文字上能懂得七七八八,但是真正的含义却知甚微。经过对基础知识的积累,再次回头看,一阵顿悟。虽然有些还是不能完全理解,但确实感觉到了很大的进步,特此记录。若有...

2018-04-09 22:10:42 240

原创 Spring框架的基本原理分析

引言工作有一段时间了,工作中基本每个项目都用到了Spring框架,说实话,很多人应该和我一样,只是“使用”了这个框架,对于框架的基本原理应该没怎么研究过。前段时间,和同事交流时,提到了Spring核心组件:IOC(控制反转)、AOP(面向切面编程)。交流的时候,只能大概说说,并不能完整讲出来。回来后,找相关文章和源码研究了下,特此记录。Spring框架概念Spring是一个开源的容...

2018-04-05 14:47:07 26033 4

原创 单例模式:双重检查+synchronized关键字+volitle关键字

实现单例模式,有3个要点: 某个类只能有一个实例; 这个实例只能本类自己创建; 创建的这个实例必须向整个系统开放。 为了满足这3个要点,单例模式必须: 在本类中实例化; 构造器必须私有,外界不能通过调用构造器创建对象; 必须对外提供一个静态的方法供外界获取该类的实例。 简单的一个单例模式:双重检查 + synchronized关键字 ...

2018-04-03 22:38:11 1939 1

原创 HashMap源码分析以及常见问题

HashMap基本用法通过HashMap与Hashtable比较:HashMap能接受为null的键和值,Hashtable键和值都不能为null(通过put方法跟踪源码就一目了然);HashMap是非synchronized的,所以快,Hashtable是synchronized,相对慢(源码);HashMap 数组+链表 的存储结构,存储键值对;而一般的集合List、Set则是存

2018-01-07 21:39:27 317

原创 如何使用Maven搭建SpringMVC项目

创建一个Maven Project右键 -> New -> Other... -> 搜索‘maven’ -> 选择‘Maven Project’ -> Next创建一个简单项目勾选:Create a simple project(自动创建约定的项目目录结构,即不使用骨架)-> Next确定唯一标示填写如截图中的内容 -> Nex -> FinishGroup id: 组织id,域名倒写;Arti

2017-12-31 17:15:37 1480

原创 Maven入门介绍

个人博客:http://letus179.com项目依赖管理在项目合作开的时,我们是如何进行项目依赖管理的呢? 我们通常会在新建项目的时候,同时建立一个lib目录,在其中放着项目所依赖的各方类库,这样提交到SVN之后, 每个开发人员检出项目到本地,得到项目的工作副本,这样所有开发人员就会持有统一的项目依赖了。这样有2个比较明显的问题。管理中的问题依赖冗余随着项目的增多,模块的增多,这种方式就会有问

2017-12-24 16:19:05 188

原创 SpringMVC基本介绍

个人博客:www.letus179.com对SpringMVC的了解来自实际项目以及在项目过程遇到问题时,查找相关资料,并没有系统地学习这些。很多会用,但是不太清楚具体原理,最新重新学习SpringMVC,开头一章系统的介绍,让我有所顿悟。对于这些知识的学习,让我对SpringMVC基本配置认识更加深刻,特此将重要的知识点摘录下来。依赖注入有两个组件A和B,A依赖于B。现在假定A是一个类,且A有方法

2017-12-17 00:38:27 208

原创 jvm加载class文件的原理机制分析

个人博客:www.letus179.com案例分析A、B类中均包含静态代码块,非静态代码块以及构造器,A类是B类的父类。public class A { static { System.out.print("A中静态代码块>>>"); } { System.out.print("A中非静态代码块>>>"); } public A() { System.out.p

2017-11-29 22:22:48 2000

原创 抽象类(abstract class)和接口(interface)分析

个人博客:www.letus179.com概念抽象类:包含抽象方法的类就称为 抽象类; 接口: 抽象方法的集合,方法没有具体实现即不包含方法体。两者异同相同点都不能被实例化;接口的实现类或抽象类的子类都必须实现接口或抽象类中的方法后才能被实例化不同点接口中的方法是高度抽象的,只有定义,没有具体的实现;抽象类中可以有定义也可以有实现;接口中的方法默认为public abstract, 可以

2017-11-24 22:22:25 237

原创 重载(Overload)和重写(Override)解析

个人博客:www.letus179.com概念重载Overload重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)。访问修饰符:重载与访问修饰符无关 返回类型: 重载与返回值无关方法名: 重载方法名需完全一致 参数列表: 重载参数列表需完全不同重写Override发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父

2017-11-21 22:26:54 396

原创 反射机制基础解析

个人博客:www.letus179.com概念 Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to op

2017-11-12 13:38:02 200

原创 浅谈java对象浅度克隆和深度克隆

浅谈java对象浅度克隆和深度克隆标签(空格分隔): 浅度克隆 深度克隆个人博客:www.letus179.com需要克隆的原因在工作中我们有时会遇到这样的需求: A对象包含一些有用信息,这时候需要一个和A完全相同的B对象。拿到B对象后,只需要稍微调整下就ok。A和B是两个独立的对象,只是B的初始值来自于A。而A/B对象中包含了比较复杂的数据结构。此时通过简单的赋值,并不能满足这种需求。我之

2017-11-12 13:33:05 707

原创 JDK8新特性之接口的静态方法和默认方法

JDK8之前我们在接口中定义成员变量只能是public static final的,定义的成员方法只能是public abstract的,默认省略。JDK8前后这一概念等价。定义接口BeforeJDK8Interface如下: name和name1表述等价,getName()和getName1()表述等价。public interface BeforeJDK8Interface { Stri

2017-11-07 23:18:42 353

原创 int和Integer解析

Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。Java 为每个原始类型提供了包装类型:原始类型: boolean,char,byte,

2017-11-06 23:14:18 255

空空如也

空空如也

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

TA关注的人

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