自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BridgeGeorge

专注于Android开发,架构和性能优化

  • 博客(16)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java虚拟机(六)——内存溢出和内存泄露分析

内存溢出和内存泄露内存溢出:内存泄露:内存溢出场景内存泄露场景内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。内存泄露有时不严重且不易察觉,这样开发者就不知道存在内存泄露,但有时也会很严重,会提示你Out of memory。Java内存泄漏的根本原因是什么呢?长生命周期的对象持有短生命周期对象的引用就很

2016-08-31 23:44:08 1737

原创 Java 并发编程深入学习(四)——线程中断

使用interrupt()中断线程  当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。如下代码所示:public class SleepInterrupt implements Runn

2016-08-31 22:10:49 1215 1

原创 Java 并发编程深入学习(一)——实现多线程的方式

介绍实现方式继承Thread类class MyThread extends Thread{ private int ticket = 5; public void run(){ for (int i=0;i10;i++) { if(ticket > 0){

2016-08-30 12:51:04 1158

原创 Java虚拟机(五)——垃圾收集机制

垃圾回收介绍   Java虚拟机内存划分讲到了Java 内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈三个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来是就已知了。因此这几个区域的内存分配和回收都具有确定性,在这几个区域就需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收

2016-08-29 23:29:19 2567 10

原创 Java String类源码分析

String类介绍String 类是日常开发中使用最频繁的类之一,String类源码一 String类String类被final所修饰,也就是说String对象是不可变量,并发程序最喜欢不可变量了。String类实现了Serializable, Comparable, CharSequence接口。Comparable接口有compareTo(String s)方法,CharS

2016-08-29 22:11:50 11821 3

原创 Java虚拟机(四)——对象的创建、存储和定位

对象的创建  Java是一门面向对象的编程语言,Java 程序运行过程中无时无刻都有对象被创建出来,在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已,例如下面的语句。Object obj = new Object();其实在在虚拟机中,当遇到上述语句时,其执行过程大致要经历下面几个阶段。类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中

2016-08-26 00:16:43 1480 4

原创 Java虚拟机(三)——类加载机制

介绍  虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被Java虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类从被加载到虚拟内存中开始,到卸载内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使

2016-08-25 21:48:39 1188

原创 Java虚拟机(二)——Java堆内存划分

堆内存介绍  在《Java虚拟机(一)——Java内存区域划分》一文中介绍了Java 虚拟机 内存划分的内容,其中讲到堆内存(Heap)。对于大多数应用来说,Java堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。此内存区域的唯一目的就是存在对象实例,几乎所有的对象实例都在这里分配内存。这个区域也是Java 垃圾收集器管理的主要区域,因此很多时候也被称为”GC堆”。所以堆内

2016-08-23 17:21:37 4822

原创 Java 集合框架源码分析(七)——HashSet

此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例,对于HashMap的分析可以参见另外一篇博文Java 集合框架源码分析(三)——HashMap )支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。todo

2016-08-23 15:20:13 608

原创 Java虚拟机(一)——Java内存区域划分

介绍  Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。运行时数据区域  Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器

2016-08-18 19:53:53 1502

原创 Java 集合框架源码分析(六)——HashTable

HashTable经常和HashMap拿来做对比。HashTable同样是基于哈希表实现的。

2016-08-18 09:32:46 869

原创 Java 集合框架源码分析(五)——Vector

Vector介绍Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。 Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。 Vector实现了Serializable接口,可以被序列化,Cloneable接口,能被克隆,实现了RandomAccess接口,支

2016-08-15 16:01:01 669

原创 设计模式——单例模式

设计模式(Design Pattern)是一套被反复使用,多数人知晓的,经过分类编目的代码设计经验的总结。 目的使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。 基本模式分类:基本模式分类有23种。1.创建型模式对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研

2016-08-09 11:12:44 1295

原创 Java 集合框架源码分析(一)——ArrayList

简介ArrayList中是平常比较常用的一个集合类,经常帮助我们封装一些实体Bean的List集合。典型使用场景如下: List<Book> bookList=new ArrayList<Book>(); bookList.add(book1); bookList.add(book2); ...ArrayList位于java.util 属于Java集合框架的一部分。层次关系如下。

2016-08-08 15:41:17 1253

转载 Android 常用辅助工具类Utils总结

Android 项目中常常会用一些辅助工具类,便于我们在开发中使用。下面做一下总结。1、日志工具类L.java[java] view plain copy 在CODE上查看代码片派生到我的代码片 import android.util.Log; /** * Log统一管理类 */ public class L {

2016-08-04 17:22:41 1757

原创 设计模式——观察者模式

介绍  观察者模式是一个使用率非常高的设计模式,一名优秀的开发者必须掌握。它最常用的地方就是GUI系统,订阅——发布系统,因为这个模式的一个重要作用就是解耦,将观察者和被观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统为例,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也会经常性变化,但是业务逻辑基本变化不大,此时GUI系统需要一套机制来应对这种

2016-08-02 14:36:38 804

IpcBigBitmapDemo.zip

原文连接https://blog.csdn.net/ylyg050518/article/details/97671874

2019-07-29

SonarLint 代码检查工具

SonarLint 代码检查工具,IDEA 插件。

2016-11-04

phpMyAdmin使用教程

为初学者提供详细的phpMyAdmin 管理mysql的方法,帮助你快速入门。

2014-05-22

空空如也

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

TA关注的人

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