自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

月影随風

曾经沧海难为水

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

原创 TCP协议简介

TCP是TCP/IP体系中比较复杂的一个协议。TCP有以下几个特点:TCP是面向连接的运输层协议。在使用TCP协议之前,需要先建立连接。传输数据完毕后,释放已经建立的TCP连接。 每一条TCP连接只能是点对点(一对一)的。 TCP提供可靠交付的服务。(无差错,不丢失,不重复,按序到达)。 TCP提供全双工通信。TCP的通信双方都可以发送数据。TCP的两端都有发送缓存和接收缓存。 面...

2019-06-12 17:19:39 585

原创 计算机网络运输层协议简介

       最近在梳理计算机网络相关知识时,发现好多网络协议理解不到位,协议的层次概念模糊,后来查了一些资料,在此梳理一下运输层相关的网络协议。       首先,我们在实际应用中使用的是TCP/IP四层体系结构。它包含应用层,运输层,网际层,网络接口层。       应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议是指应用进程间通信和交互规则...

2018-09-18 20:07:29 1258

原创 Java一些语法实现机制

      近期在看阿里的Android热修复技术原理一书中,看到Java的某些语法实现机制时,感觉获益匪浅,故这里记录一下,也是对Java语言的一些理解。内部类的编译       我们都知道内部类会隐式持有外部类的引用,而静态内部类不是持有外部类的引用。其原理时Java编译器在编译时会把静态类编译成外部类一样的顶级类。非静态内部类,在编译完成后,在字节码文件中会生成一个外部类类型的this$0的...

2018-06-07 11:40:51 255

原创 Java中的线程和并发

线程简介      现代操作系统调度的最小单元是线程。在一个进程中可以创建多个线程,这些线程都可以有各自的计数器,堆栈和局部变量等属性,并且可以访问共享的内存变量。线程优先级      现代操作系统采用时间片的形式调度运行的线程,当线程的时间片用完了就会发生线程调度,并等待下次分配。而线程的优先级就是决定需要多或少分配一些处理器资源的线程属性。     在Java的Thread中,通过一个int变...

2018-04-19 19:19:22 215

原创 记JAVA单例模式的几种写法

      单例模式是应用最广的设计模式之一,也是写法和变种最多的一种设计模式。单例对象要确保在全局中只存在一个。这种模式适合消耗资源严重的使用场景。      实现单例模式主要注意以下几个关键点:1)构造函数不对外开放,一般为private;2)通过一个静态方法或枚举返回单例类对象;3)确保单例类的对象有且只有一个,尤其在多线程的环境下;4)确保单例类对象在反序列化时不会重新构建对象。下面通过代...

2018-04-10 10:51:39 546

原创 Java字节码详解系列之二--解析字节码

1、javap查看字节码内容上文介绍了字节码的结构,本文主要通过一个简单的例子说明class字节码的每一个字段。package com.zcm.test;import java.io.Serializable;public class SourceTest implements Serializable{ public int a=3; static Integer b=6...

2018-04-03 16:41:01 4320 2

原创 Java字节码详解系列之一--class文件格式简介

什么是字节码?      首先,我们知道,Java语言是可以"write once,run anywhere",要做到这一点,就要在编写代码的时候让Java代码不能依赖计算机底层的机器指令,于是就出现了Java虚拟机来代替CPU执行Java编译后的代码,也就是"字节码"这种中间语言(IL)。Java编译后生成了class字节码,每一个Java类被编译后会生成一个对应的.class字节码文件,JVM...

2018-04-01 19:04:12 470

原创 android library中使用butterknife的注解

在Android日常开发中,使用butterknife框架可以帮助我们快速的进行界面开发,但是之前butterknife不能在library中使用,原因是Android library中的R文件字段不是常量,在butterknife8.0.0以后修复了该bug,在butterknife的github主页有介绍,地址是butterknife,但是按照上面说的,To use Butte

2017-04-20 10:32:27 3722

原创 Java static关键字的使用

今天在写代码的时候突然想到了static 方法的使用和new对象调用方法的使用的区别,于是就研究了一下java中static关键字的用法。java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种是实例变量,通常有new 关键字初始化。        在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。        在

2017-02-13 22:28:09 297

转载 太用力的人跑不远

写在前面有阶段的自己,会用蛮力去学习一些东西,就是这东西不管是否适合目前自己的知识体系, 觉得学了之后会更牛逼就去学,但是这样的东西往往学了记不住。 学习的过程越用力反而显得越吃力, 太吃力的事情,自然就无法有恒心, 这就是很多人会觉得自己做事总是无法持之以恒的原因。努力不应该是某种需要被时常觉知的东西,意志力是短期内会用完的精神能量。真正坚持到最后的人靠的不是激情,而是恰到好处的

2017-02-13 21:54:41 266

原创 Java synchronized关键字用法

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象(这里是指同一对象); 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;

2017-01-18 10:14:56 418

原创 Android activity的启动模式浅析

说到activity的启动模式,就先介绍一下activity吧,activity是android与用户交互的组件,也是android开发中使用频率最高的一个组件。activity做为view的载体,可以将view展示给用户,同时具有多种生命周期形态。android系统采用activity栈的方式来管理activity。一、activity生命周期:可以参考android官网上提供的图来

2017-01-17 12:06:23 389

空空如也

空空如也

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

TA关注的人

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