自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的网络协议

OSI七层模型 TCP/IP四层模型HTTP协议HttpClient HttpURLConnectionTCP协议 UDP协议Socket实现TCP通信Socket实现UDP通信为了使不通类型的计算机之间可以相互通信,国际化标准组织提出了OSI七层网络模型,从下到上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。但是OSI七层网络模型仅仅用于实验室,并没有真正的使用它,实际的环境中用的是TCP/IP四层模型,TCP/IP四层网络模型包括:链路层、网络层、传输层、应用层。链

2022-03-01 10:53:25 1738

原创 Java中的多线程与高并发

进程和线程进程是系统进行资源调度和分配的基本单元,是操作系统的基础。线程是系统调度的最小单元,是线程的运算单元,一个进程可以包括一个或多个线程。线程的三种创建方式:一、继承Thread类 class MyThread extends Thread { @Override public void run() { Log.i(TAG, "MyThread-->" + Thread.currentThread()); }

2021-12-03 18:04:57 2508

原创 Java中的垃圾回收和GC

Java中垃圾回收主要在堆中,Java 内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由 JIT 编译器进行一些优化),因此这几个区域的内存分配和回收都具备确定性,不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而 Java 堆不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我

2021-06-23 16:31:32 152

原创 Java中的I/O

IO流是Java中数据传输的通道,根据传输数据的不同可以分为:字节流(InputStream、OutputStream)和字符流(Reader、Writer),根据流向的不同可以分为:输入流(InputStream、Reader)和输出流(OutputStream、Writer),此外还有缓冲流(Buffre+流)和转换流(InputStreamReader、OutputStreamWriter)。输入流只能读,输出流只能写。字节输入流的基类是InputStream,我们不能直接使用它,FileInput

2021-03-23 17:22:05 128

原创 Java中的代理模式

为某个对象提供一个代理以控制对该对象的访问,这种模式称之为代理模式。代理模式有三个主要的角色,分别为:抽象主题、具体主题和代理类。同时根据代理创建时机的不同,又有静态代理和动态代理之分。静态代理:由程序员手动创建代理类或特定工具自动生成源代码再对其编译,在程序运行前代理类的.class文件已经存在。静态代理中代理类和委托类都实现了同一个接口,同时代理类中持有委托类对象,代理类主要作用就是调用触发委托类的方法。具体代码实现如下:抽象主题:public interface ISubject { v

2021-03-05 15:38:06 111

原创 Java中的反射

反射用得最多的地方是在框架的开发中,平时项目中用得比较少。反射机制允许程序在运行时获取一个已知名称的类的内部信息,包括属性(Field)、方法(Method)、构造函数(Constructor)等,并且可以在运行时改变属性和调用方法。Java文件被编译后生成.class文件,Java虚拟机(JVM)会去解读.class文件,当某个类被使用时JVM会通过加载、连接和初始化三个步骤把.class文件解析为一个对象,这个对象就是java.lang.Class。每一个Java源文件最终都会有一个唯一的类对象(Cla

2021-02-04 10:11:20 108 1

原创 Android中的工厂模式

工厂模式具体有三类,分别是简单工厂模式、工厂方法模式和抽象工厂模式。工厂,顾名思义,就是生产东西的地方。在代码开发中生产的“东西”指的是对象,所以通俗来讲工厂模式就是生产对象。使用工厂模式可以把对象的具体创建和使用分开,使用者不必了解对象是如何创建的,只管使用。...

2020-11-06 11:34:00 676

原创 Android中的观察者模式

Android中的观察者模式是对象间的一种一对多的依赖关系,当一个对象发生改变时,所有依赖于它的对象都会得到通知并且做出相应的更新。观察者模式的实现比较简单,主要就是定义并维护以下几个角色:1、观察者接口:这个接口中一般会定义一个接收通知的方法。2、具体的观察者:观察者接口的具体实现类,在收到通知时做具体的响应操作。3、被观察者接口:这个接口中定义了被观察者需要做的事情,通常这些事情包括:注册观察者、解注册观察者、消息通知。4、具体的被观察者:被观察者接口的具体实现类,这个实现类中一般会有一个观察

2020-08-25 09:53:56 1830

原创 Android中的Builder模式

Builder模式:将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。什么时候可以使用builder模式:1、一个类中有很多个属性,并且很多属性都有可能在创建对象的时候初始化。2、相同的方法,不同的执行顺序,产生不同的事件结果时3、多个部件或零件,都可以装配到一个对象中,但是产生的运行效果又不相同时4、产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用建造者模式非常合适Android builder模式的特点:1、Android builder模式

2020-08-20 15:07:53 1546

原创 Android中的单例模式

单例模式是我们在项目开发中用得最多的一种设计模式。单例模式要求:1、单例模式的类在整个应用中只有一个实例对象。2、单例模式的类有一个对外方法提供类的实例。为此我们设计单例模式需要满足以下几点:1、构造函数私有化:使用private私有化构造函数,使外部程序不能创建对象。2、通过静态方法或者枚举返回一个单例对象。3、确保单例类的对象有且只有一个,特别是在多线程模式下。4、确保单例类对象在反序列化时不会重新创建对象Android中实现单例主要有以下几种方式:饿汉式:public class Sin

2020-08-14 11:48:25 593

原创 Java中的抽象类和接口

在Java中抽象类和接口是实现面向对象抽象的两种方式。抽象类被abstract修饰的类我们称为抽象类,抽象类有如下几点特点:1、抽象类只能被子类继承,没有自己的对象。2、抽象类中可以有普通方法和抽象方法,抽象方法用abstract修饰。3、抽象类中可以有各种权限的成员变量。4、含有抽象方法的类一定是抽象类,但是抽象类不一定有抽象方法。接口Java中接口用interface定义,接口用于描述行为,只管定义,不管实现,实现流程由实现接口的类来做。接口有如下几点特点:1、接口中只有抽象方法,默认

2020-08-12 11:20:45 104

原创 Java中的内部类

在Java中类可以定义在另一个类的内部或者某一个方法中,这样的类称之为内部类。而包含了内部类的类我们称为外部内。根据定义的位置和定义方式的不同,内部类可以归纳为四类:成员内部类、静态内部类、局部内部类以及匿名内部类。成员内部类:定义在类内部,并且非static修饰。成员内部类定义的位置与一般成员变量一致,相当于是一个特殊的成员变量。成员内部类有如下特点:1、成员内部类可以访问外部类的成员变量或者成员方法(不管是否是私有的或者是静态的成员变量或者方法)。2、成员内部类如果是用private修饰的,那

2020-08-11 11:31:03 161

原创 Java中this、super、final关键字详解

Java中this、super和final关键字详解

2020-08-06 11:47:38 404

原创 Java中的构造函数

构造函数是Java面向对象设计的直接体现,构造函数又叫构造方法、构造器。那么Java中设计构造函数来干什么呢?我们在前面章节中讲过面向对象(面向对象),对象是类的具体实列,当我们用new方法创建这个类的具体实列时就会调用一次构造函数,并且可以在这个构造函数中做一些初始化工作。构造函数必须和类名一致,并且没有返回值。构造函数是一种特殊的函数,也有重载,同一个类中可以拥有多个重载的构造函数,普通的函数不能调用构造函数,但是构造函数之间可以互相调用,构造函数调用其他构造函数时必须注意:1、只能用this关键字

2020-08-04 12:01:22 319

原创 面向对象

面向对象是一种抽象的编程思想,类是这种思想的具体实现。对象是类的具体实列。面向对象有三大特征:封装、继承、多态封装:封装指隐藏类的内部实现,不允许外部程序直接访问,外部程序只能通过对外提供的方法访问和操作隐藏的信息。通过权限操作符private来实现类的封装,被private修饰的属性或方法仅归本类所有,在任何其他类中不能直接访问。修饰符本类同包子类其他privatetruefalsefalsefalse默认truetruefalsefalse

2020-08-03 16:56:13 122

原创 HTML中的属性

HTML标签都拥有属性,比如class属性、id属性等。属性定义在HTML标签的开始标签中:<div id="div1"></div>HTML中的属性总是以属性/值的形式出现,值都有引号:当属性值本身带有双引号时就用单引号包围,反之则用双引号:name = "this 'demo' is";name = 'this "demo" is''HTML标签的属性有很...

2020-03-24 14:49:27 237

原创 HTML中的基础标签

<!DOCTYPE>:<!DOCTYPE>是一个声明而不是一个标签,<!DOCTYPE>声明的作用是告诉web浏览器当前HTML文档使用的编写版本。我们在编写HTML文档的时候需要始终加上<!DOCTYPE>声明以便浏览器知道文档的HTML版本。<!DOCTYPE>声明始终在HTML文档的第一个位置,在<html>标签之前。...

2020-03-20 14:30:43 202

原创 HTML简介

HTML(Hyper Text Markup Language)是一种用来描述网页的超文本标记语言。特别注意的是HTML并不是一种编程语言,而是一种标记语言,使用标记标签来描述网页,比如:a标签,p标签等。HTML等价于网页,web浏览器通过读取HTML文档内容然后以网页的形式显示他们,当然浏览器并不是直接显示HTML标签,而是使用标签来解释页面内容。接触过Android的朋友应该会发现HTML...

2020-03-16 10:36:00 138

原创 JavaScript中的!!运算符

JavaScript中的运算符大体分为:算术运算符、比较运算符、布尔运算符、二进制运算符。运算符都比较基础,今天只讲布尔运算符中的!!运算符。!!运算符用语言描述就是:取反再取反。单看一个!就是对一个值做取反运算。在所有的JavaScript值中除了以下六个值做 ! 运算后是true外其他所有的值做 ! 运算后都是false:1、undefined2、null3、Nan4、05、fal...

2019-11-29 15:09:24 875

原创 JavaScript中函数的自调用(自执行函数)

JavaScript中的函数可以自调用也就是可以自己执行,当执行环境执行到该函数时该函数自己就运行。要了解自执行函数首先要了解函数的几种定义方式,前面的章节讲过函数的三种定义方式,但是最常用的就两种:函数申明和函数表达式。//函数申明function f(a,b){ console.log(a+b);}//函数表达式var fn = function(a,b){ console.lo...

2019-11-25 17:32:43 2266 1

原创 JavaScript中的函数

函数是一段可以反复调用,可以接收参数并且根据参数的不同返回不同结果的代码块。函数有三种定义方法:1、function命令:function f(a,b){ if(a>b){ return a; }}2、函数表达式:var f = function(a,b){ if(a>b){ retuen a; }};3、Function 构造函数:var f =...

2019-11-25 11:03:44 139

原创 JavaScript中的对象

对象是现实中的具体事物在编程中的的抽象表达,JavaScript中的对象是用来保存一系列数据的集合,以键值对的形式体现。var obj = { name:"xiaoming", age:10};对象中的“键”:JavaScript中对象的键默认是字符串,键名如果不是标准的标识名且不是数字,则必须加上引号或者双引号,不然会报错:var obj = { 1x:123};上面会报...

2019-11-04 16:18:56 130

原创 JavaScript中的数据类型

JavaScript中的数据类型可以分为两大类:基本数据类型和引用数据类型。基本数据类型包括:number、string、boolean、null、undefined、symbol。引用数据类型包括:侠义对象(object)、函数、数组。其中基本数据类型中的symbol是在ECMAScript6中新增的一种数据类型。JavaScript语言是弱类型语言或者说是一种动态类型语言:声明变量时不用指定...

2019-10-21 16:10:33 419

原创 JavaScript中的break、continue和return

JavaScript中break、continue和return都可以结束循环,其中break和continue只能用在for循环、while循环和do while循环中,而return只能用在函数体内,在函数外使用return会报错。break:结束循环,只能结束离break最近的那个循环。break结束循环后循环体内break后面的代码不会继续运行,如果是嵌套循环,break只能结束与之最...

2019-10-08 16:26:46 475

原创 JavaScript变量的命名

JavaScript中变量的命名大小写敏感,所以变量A和变量a不是同一个变量。对于JavaScript中变量的命令需要遵循一下几点:1、JavaScript中的变量只能由字母、下划线(_)、美元符($)和数字组成。2、变量的首个字符只能是字母、下划线或者美元符,不能是数字。3、不能使用关键字或者保留字。4、常量必须采用全大写命名,且单词用下划线分割。在JavaScript中一般采用驼峰式...

2019-09-30 09:57:22 346

原创 JavaScript变量的提升和作用域

对于变量的提升首先我们先来看这个小例子:a = 10;var a;console.log(a);如果不了解变量提升,你可能会认为第三行输出的是undefined,其实结果是输出10。再看下面一个例子:console.log(a);var a = 10;对于这个例子,你可能会认为输出的地方会报错,其实不然,这里会输出undefined。要了解上面代码输出结果的原因首先我们得知道Jav...

2019-09-26 16:35:11 165

原创 JavaScript变量的声明

变量是用来存储数据的容器,在JavaScript中变量是松散类型,松散类型的变量可以用来保存任意类型的数据。在ECMAScript6之前JavaScript变量只能使用var和function来声明,在后来的ECMAScript6中又添加了let、const、import、Class这几种。不同的声明方式作用域等都不同。所谓作用域就是指变量的有效范围,比如只在某个方法内有效,出了这个方法变量声明就...

2019-09-21 14:47:45 119

原创 JavaScript的组成、特点、用途

JavaScript的组成:JavaScript主要由三部分组成:1、ECMAScript:ECMAScript前面介绍过(为统一规格而指定的标准),JavaScript就是基于这个标准开发的。ECMAScript是JavaScript的核心,它规定了JavaScript的数据、语法、结构等,简单的说就是JavaScript的代码该怎么写必须得按ECMAScript的标准来。2、DOM(Do...

2019-09-20 10:38:30 1350

原创 JavaScript简介

初接触JavaScript,那么JavaScript是什么呢?JavaScript又是拿来干什么的?关于JavaScript的简介网上一搜一大推:首先JavaScript是由Netscape(网景)公司的Brendan Eich这位大神花了10天的时间设计出来的,没错这位大神虽然不是从零开始设计的JavaScript,但是在两周内开发出了JavaScript,这速度也只能说特TM快了。Java...

2019-09-20 10:35:59 196

空空如也

空空如也

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

TA关注的人

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