自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 序列化与反序列化

//新建实体类实现序列化接口 public class People implements Serializable { private static final long serialVersionUID = 4547806378767721442L; private String name; private Integer age; } public stati...

2018-12-11 19:50:02 197

原创 Stream

目录检索为什么需要 StreamStream的特性流管道剖析JDK 中的流来源中间流操作终止流操作附加信息聚合操作累加器反模式缩减可变缩减收集器 为什么需要 Stream Java8中的stream与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念,也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实...

2018-10-16 14:01:05 365

原创 HashMap

我们先看一下集合框架的架构: 1.什么是Map   Map是一个键值对的映射,一个Map对象可以理解为一个集合容器,这个容器里可以盛放多个元素,每个元素以键值对(key-value)的形式存在。   Map的特点:键值对映射、key不重复、键对应的值唯一。   Map接口的功能概述: V put(K key,V value) //添加元素,若key存在,则覆盖原value值并返回...

2018-10-08 20:24:08 172

原创 Java基础--List

  List是集合容器的一种,在分析List之前,我们先来了解一下集合体系的架构: Why–为什么需要集合   首先,Java是一门面向对象的语言,奉承一切皆对象的思想,在实际开发过程中,免不了要经常操作对象,而且会同时操作多个甚至大量对象,这时就需要一个专门存储这些对象的容器,这样就可以利用容器对象的特性来方便的进行操作。   其次,在Java中还有数组,也是一种容器,但和集合相比,数...

2018-08-29 18:16:00 790

原创 String源码分析

前言   Java使用String类来代表字符串,实际上String对象的值是一个常量,一旦创建后不能改变,所以它是线程安全地,可以多个线程共享。 JDK8 源码 类定义 public final class String implements java.io.Serializable, Comparable<String>, CharSequence   String类被f...

2018-08-25 17:37:54 130

原创 Java的自动拆装箱

    Java 1.5后引入了自动拆箱(Unboxing)和自动装箱机制(Autoboxing),用于实现基础数据类型和包装器间的隐式转换。基础数据类型和包装器类型的对应如下:    自动拆装箱的实现 代码 public static void main(String[] args) { Integer i = 10; int n = i; } ...

2018-08-24 19:16:01 207

原创 Java虚拟机--编译与反编译

  当我们写完HelloWorld.java文件后,计算机怎么知道我们要干什么?那就需要说下编译了(可见文章:JIT编译),这里也简单补充点: 1.编程语言:   编程语言分为高级语言和低级语言:C、C++、Java等属于高级语言;机器语言和汇编语言属于低级语言。那和编译有什么关系呢?   简而言之,编译就是把程序员认识的高级语言转换成机器认识的低级语言的过程,可用命令javac进行编译...

2018-08-03 14:33:01 691

原创 Java虚拟机--常用Java命令

参考资料:Java命令学习系列 1.Java常用命令   jps:查看本机的Java进程信息。   jstack:打印线程的栈信息,制作线程Dump。   jmap:打印内存映射,只做堆Dump。   jstat:性能监控工具。   jhat:内存分析工具。   jconsole:简易的可视化控制台。   jvisualvm:功能强大的控制台。 2.什么是Java Dump?...

2018-08-01 20:33:31 592

原创 Java虚拟机--类加载机制

1.什么是类加载机制   虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 2.类的加载时机                图中的七个阶段代表着类的生命周期,其中加载、验证、准备、初始化和卸载的顺序是确定的,按这种顺序按部就班的“开始”,而解析则不一定:它在某些情况下可以在初始化阶...

2018-08-01 20:01:38 150

原创 Java虚拟机--JIT编译器

1.什么是JIT编译器   JIT编译器,即Just-In-Time Compiler(即时编译器)。JIT编译属于动态编译(即运行时编译)的一种,与之对应的是静态编译(AOT)。 2.为什么要用JIT编译器   我们都知道,通常通过javac将程序源代码编译(前端编译,与语言有关,机器无关)成字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释...

2018-08-01 11:33:56 657

原创 Java虚拟机--垃圾回收机制

  Java与C++相比,具有动态分配内存和垃圾回收机制的技术优势,使得我们不用把精力集中在内存的管理上,那我们为什么还要去了解GC和内存分配呢?原因很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 1.为什么进行垃圾回收    随着程序的运行,系统内存中存在的对象实例、各种变量越来越多,如果不进行...

2018-07-31 21:06:21 204

转载 Java虚拟机--JVM内存结构 VS Java内存模型 VS Java对象模型

   转载:HollisChuang’s Blog   Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。   可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和J...

2018-07-30 15:55:35 158

原创 Java虚拟机--对象模型

  参考:Hollis博客–深入理解多线程      让我们思考这样一个问题:一个Java对象如何在基于c++实现的系统中运行?对象在JVM内部是如何表示的?它在内存中是如何存储的…… 1.OOP-Klass 二分模型   Java是面向对象的语言,面向对象有三个特征:封装、继承和多态。而HotSpot基于C++实现,C++也是面向对象的语言,那这样的话为每一个Java类生成一个C++类不...

2018-07-30 15:30:17 169

原创 Java虚拟机--内存模型

  内存模型同并发息息相关,熟悉内存模型将对虚拟机、多线程及线程安全问题有更深入的了解。 1.什么是内存模型?   给出定义之前,让我们先来了解一下物理计算机中的并发问题。我们都知道,处理器运行时必然要和内存交互,而且这个I/O操作是很难消除的,但由于计算机存储设备和处理器的运算速度有几个数量级的差距,所以在两者之间加入了一层读写速度尽可能接近处理器运算速度的高速缓存,这样处理器就不用等待...

2018-07-30 12:49:43 172

原创 Java虚拟机--内存结构

1.JVM是什么?   JVM:Java Virtual Mechinal(Java虚拟机).它是一个虚构的计算机,是通过在实际的计算机上模拟各种功能来实现的。JVM的主要工作是解释自己的指令集(字节码,如java源码编译成class文件在虚拟机上运行)并映射到本地的CPU指令集或OS的系统调用。Java语言跨平台的本质就是不同的操作系统使用不同的JVM映射规则,使其与操作系统无关,从而实现跨平...

2018-07-30 10:55:34 2962

空空如也

空空如也

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

TA关注的人

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