1 xsx_only

尚未进行身份认证

静下心来才能知道自己的方向是否正确

等级
TA的排名 36w+

JVM中垃圾回收机制及垃圾收集器详解

一、垃圾收集算法1.标记-清除算法最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段。①首先标记出所有需要回收的对象②在标记完成后统一回收所有被标记的对象。不足:效率问题:标记和清除两个过程的效率都不高空间问题:标记清除之后产生大量不连续的内存碎片,空间碎片太多可能会导致以后程序运行过程中需要分配较大对象时...

2019-06-13 22:29:15

进程与线程的区别

一、进程的状态与转换运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。就绪状态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。阻塞状态,又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。注意区别就绪状态和等待状态...

2019-06-13 22:00:11

单例模式

一、单例模式1.定义作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。2.特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。二、创建单例模式的方式①懒汉式,线程不安全懒汉式其实是一种比较形象的称谓。既然懒,那么在创建对象实例的时候就不着急。会一直等到马上...

2019-06-13 21:59:26

Java中抽象类与接口有什么区别

理解抽象abstractclass和interface是Java中对于抽象类定义两种机制,正是由于这两种机制的存在,才赋予Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有相当大的相似性,设置可以互相替换,因此在进行抽象类定义时显得比较随意。其实,两者还是由差别的,对于他们的选择设置反映出对于问题空余本质的理解,对于涉及意图的理...

2019-06-13 20:55:16

计算机网络——TCP/IP

一、TCP/IP模型TCP/IP协议模型(TransmissionControlProtocol/InternetProtocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。TCP/IP协议族按照层次...

2019-06-06 23:10:27

计算机网络——HTTP

一、HTTP请求和响应步骤以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。二、TCP/IP协议TCP/IP协议模型(TransmissionControlProtocol/InternetProtocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,...

2019-06-06 23:08:36

HTTPS

我们知道HTTPS能够加密信息,以免敏感信息被第三方知道。在很多银行或者电子邮箱上都使用安全级别较高的服务都会采用HTTPS协议。HTTPS协议简介HTTPS其实是由两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端与客户端的信息都是通过TLS进行加密的,所以传输的数据都是经过加密后的数据。具体是如何加密,解密,验证的,看看下面的图片。1....

2019-06-03 10:44:31

Android中的事件分发机制

一、基础认知1.1事件分发的对象是谁?答:事件当用户触摸屏幕时(View和ViewGroup派生的控件),将产生点击事件(Touch事件)Touch事件相关细节(发生触摸的位置、时间、历史纪录、手势动作等)被封装成MotionEvent对象主要发生的Touch事件有如下四种:MotionEvent.ACTION_DOWN:按下View(所有事件开始...

2019-05-19 20:00:53

Service详细解说

一、Service简介Service是Android程序中的四大组件之一,和Activity一样是Context的子类,只不过他没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,非常适合于去执行那些不需要和用户交互而且长期运行的任务。Service默认并不会运行在子线程中,也不会运行在一个独立的进程中,他同样执行在UI线程中,因此,不要在Serv...

2019-05-18 22:52:43

IntentService详解

一、定义IntentService是Android里面的一个封装类,继承自四大组件之一的Service。二、作用处理异步请求,实现多线程三、工作流程注意:若启动IntentService多次,那么每个耗时操作则是以队列的方式在IntentService的onHandleIntent回调方法中依次执行,执行完自动结束。四、实现步骤1.定义IntentService...

2019-05-17 23:16:58

Android消息机制

一、消息机制概述1.消息机制的简介在Android中使用消息机制,我们首先想到的就是Handler。Handler是Android消息机制的上层接口,通过它可以轻松将一个任务切换到Handler所在的线程中取执行。通常情况下,Handler的使用场景是更新UI。publicclassActivityextendsandroid.app.Activity{priv...

2019-05-17 21:41:07

Fragment小记

一、这篇文章总结了点啥什么是Fragment Fragment的生命周期 Fragment的使用 什么是Fragment的回退栈? Fragment和Activity通信的优化 怎么处理运行时配置发生的变化(以屏幕翻转为例)二、Fragment详解1.什么是Fragment?简单的理解,Fragment是显示在Activity中的Activity。他可以显示在Activi...

2019-05-11 01:15:32

Java虚拟机——对象的创建、内存布局和访问定位

一、对象的创建1.虚拟机遇到一个new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用;2.检查这个符号引用代表的类是否已经被加载,解析和初始化过。如果没有,那必须先执行响应类加载过程;3.在类加载检查通过以后,为新生对象分配内存。对象所需要的内存大小在类加载完成之后可以完全确定。二、对象的内存布局分为3个区域:对象头,实例数据,对齐填充对象头...

2019-05-09 22:31:35

Java内存区域与内存模型

一、Java内存区域方法区(公有):用户存储已被虚拟机加载的类信息,常量,静态常量,即时编译器编译后的代码等数据。异常状态OutOfMemoryError其中包括常量池:用户存放编译器生成的各种字面量和符号引用。堆(公有):是JVM所管理的内存中最大的一块。唯一目的就是存放实例对象,几乎所有的对象实例都在这里分配。Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”。异...

2019-05-09 21:13:44

Java并发——Java中创建线程的方式

一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此将run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。publicclassFirstThreadTestextendsThread{inti...

2019-05-08 22:52:11

Java集合类——TreeMap

一、概述在之前总结的HashMap和LinkedHashMap,HashMap不保证数据有序,LinkedHashMap保证数据可以保持插入顺序,如果我们希望Map可以保持key的大小顺序的时候,我们就需要TreeMap了。TreeMap<Integer,String>tmap=newTreeMap<Integer,String>();tmap.pu...

2019-05-03 11:59:18

Java集合类——LinkedHashMap

一、概述在总结了HashMap以后,现在来看看LikedHashMap的工作原理以及实现。首先还是先整一段LinkedHashMap程序:LinkedHashMap<String,Integer>lmap=newLinkedHashMap<String,Integer>();lmap.put("语文",1);lmap.put("数学",2);lm...

2019-05-03 10:34:16

Java集合——HashMap

将总结的内容记录下来,方便他人,也能防止自己遗忘!脑容量不够的时候,真是捉急啊!一、概述1.什么时候会使用HashMap?有什么特点呢?2.HashMap的工作原理3.get和put的原理是怎么的?equals()和hashCode()都有什么作用?4.hash的实现,为什么要这样实现呢?5.如果HashMap的大小超过了负载因子(loadfactor)定义的容...

2019-05-03 00:13:44

Java集合——LinkedList

一、概述以双向链表实现。链表无容量限制,但是双向链表本身使用了更多的空间,也需要额外的链表指针操作。按照下标访问数据——get(i)/set(i,e),要遍历链表指针移动到位(如果i>数组大小的一半,会从末尾移起)。插入、删除元素时修改前后节点的指针即可,到那时还要遍历部分链表的指针才能移动下标所指的位置,只在链表两头的操作——add(),addFirst(),removeLas...

2019-05-02 01:55:05

Java集合——ArrayList集合

一、概述以数组实现。节约空间,但是数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。按照数组下标来访问元素——get(i)/set(i,e)的性能很高,这是数组的基本优势。直接在数组末尾加入元素——add(e)的性能也很高,但是如果按下标出入、删除元素——add(...

2019-05-02 01:54:46

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。