自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于弱一致性、强一致性、顺序一致性

    在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子。CAP原理中,有三个要素,CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾:一致性(Consistency) 可用性(Availability) 分区容忍性(Partition tolerance)    一致性就是数据保持一直,可以理解为多个节点中数据的值是一致的,一致性又可以分...

2018-11-19 17:30:52 5225 1

原创 java的数据类型

        任何一个程序都要进行数据的处理所以对于数据的保存就必须有严格的限制,这些限制就体现在数据的划分上,即不同的数据类型可以保存不同的数据内容,java的数据类型分为两个大类即基本数据类型和引用数据类型,其中基本数据类型包括最基本的byte、short、int、long、float、double、char、boolean,引用数据类型包括类、接口、数组,在操作的时候必须要进行内存的开辟而...

2018-10-31 18:35:26 284

原创 java ee容器、组件、通信类型简介

    java ee不是编程语言而是规定开发符合java ee规范的软件系统需要使用java编程语言。java ee规范定义了面向Internet的组成部分和各组成部分之间的交互协议。具体包含:1.容器规范:容器是组件的运行环境,负责组件的生命周期管理和各组成部分之间的交互协议,定义了各种组件的容器类型以及每种容器提供的服务。并管理组件的生成、调用和销毁,简化了企业级软件开发中复杂的对象...

2018-10-11 21:01:32 1937

原创 JVM的内存分配策略

1、内存分配有哪些策略从编译原理讲起,不同的开发环境、开发语言会有不同的策略。一般程序运行时有三种内存分配策略:静态的、栈式的、堆式的。静态存储分配:是指在编译时就能够确定每个数据目标在运行时的存储空间需求,所以在编译时就可以给它们分配固定的内存空间。这种分配策略要求程序代码中不允许有可变数据结构的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间...

2018-10-10 15:50:35 646 3

原创 什么是OutOfMemory以及各区内存溢出

在java虚拟机的规范描述中,除了程序计数器外虚拟机内存的其他几个运行时区域都会发生OutOfMemoryError异常的可能。在Java语言里,可作为GC Roots对象的包括如下几种: a.虚拟机栈(栈桢中的本地变量表)中的引用的对象 b.方法区中的类静态属性引用的对象 c.方法区中的常量引用的对象 d.本地方法栈中JNI的引用的对象...

2018-10-06 21:36:55 1188

原创 java虚拟机发展史

从1996年Sun公司发布的JDK1.0包含的Sun Classic VM开始就涌现过各种虚拟机。以下进行一些简单介绍,通过这些介绍可以了解到虚拟机的功能在朝着哪个方向进性发展。 Sun Classic/Exact VM:这款虚拟机的技术很原始,是世界上第一款商用的java虚拟机,只能使用纯解释的方式来执行,如果要使用JIT编译器就必须进行外挂,但是如果外挂了JIT编译器它就会完全接手虚拟...

2018-10-01 15:30:12 552

原创 操作系统——进程(1)什么是进程和对进程状态的理解

在操作系统中满足的大多数需求都涉及进程,在有了应用程序、系统软件和资源的概念,就需要一种有序的方式管理应用程序的执行,从而能够让资源对多个应用程序是可用的、能够让所有程序得以执行、充分利用所有设备。进程如此重要那么进程是什么?首先进程是一个正在计算机上执行的程序实例,即程序是静态的而程序是动态的,这么说有一些抽象,换一个说法进程是一个运动的过程这个过程能被交给处理机去执行,也就是一个应用程序运行的...

2018-05-11 11:11:05 1784

原创 设计模式中类与类之间的关系

在设计模式中类与类之间的关系主要有6种:依赖、关联、聚合、组合、继承、实现,它们之间的耦合度依次增加。一、继承关系      继承是一种“is-a”关系。继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,...

2018-04-20 23:37:10 1476

原创 面向对象七大原则详解

单一职责原则 定义:一个类只负责一个领域的相应职责。开闭原则 定义:软件实体应对扩展开放,而对修改关闭。里氏替换原则 定义:所有引用基类的对象能够透明的使用其子类的对象。依赖倒转原则 定义:抽象不应该依赖于细节,细节依赖于抽象。接口隔离原则 定义:使用多个专门的接口,而不是使用单一总接口。合成复用原则 定义:尽量使用对象组合,而不是继承来达到复合目的。...

2018-04-17 23:31:58 957 5

原创 软件项目的开发流程

首先产品总监确定产品/项目方向,交由项目经理进行需求调研和市场调研,完成业务梳理思维导图,之后产品总监进行业务梳理的评审,出现产品原型。UI设计师:了解需求——>UI界面及UI设计规范研发项目经理:了解开发难度——>项目任务分解研发工程师:得到需求规格——>概要设计——>产品测试工程师:反复测试1.立项2.可行性分析3.需

2018-04-16 16:09:26 961

原创 动态多态的原理

多态的三个条件:1.继承,2.虚函数重写,3.父类指针或引用指向子类对象什么是多态?相同对象收到不同消息或不同对象收到相同消息时产生的不同动作。首先是多态的分类,分为静态多态和动态多态,也可以称为早绑定和晚绑定,区分的时刻就是程序在编译阶段根据参数个数确定调用哪个函数,如果能够确定就是早绑定如果不能确定就是晚绑定,如果要实现多态就必须要使用虚函数从编译角度看:c++编译

2018-04-05 12:37:37 827

原创 GitHub使用教程

GitHub是为开发者提供的Git仓库的托管服务,这是一个让开发者与同事共享代码的场所。GitHub和Git的区别,GitHub和Git是完全不同的两个东西,在Git中开发者将代码存入名为Git仓库的资料库中,并加以使用而GitHub则是在网络中提上提供Git仓库的一项服务。就是说GitHub上公开的代码都由Git进行管理。(1)让开发者之间进行远程共同开发软件,这个功能就是Pul

2018-03-08 10:55:19 6269

原创 Type的子接口详解(源码解析)

以下是源码中对Type的注释:Type是Java中所有类型的常见的超接口,在编程语言中这些包括原始类型,参数化的类型,数组类型,类型变量和原始类型。Class在一定程度上挽救了擦除的类型信息,我们就可以通过这几个接口来获取被擦除的类型参数信息,这几个接口无非就是对类型参数的一个分类,通过它们提供的一些方法,我们可以逐步的获取到最原始的类型参数的Class对象。Type的直接子接口

2018-02-25 16:56:39 671

原创 java接收控制台输入的三种方法

importjava.io.BufferedReader;  importjava.io.IOException;  importjava.io.InputStreamReader;  importjava.util.Scanner;       // System.in和System.out方法   //缺点一: 该方法能获取从键盘输入的字符,但只能针

2018-02-08 20:48:19 25460

原创 type接口和class的区别(类型和类)

ClasspublicfinalclassClassT>implementsjava.io.Serializable,GenericDeclaration,Type,AnnotatedElement {...}TypepublicinterfaceType {default StringgetTypeName() {ret

2018-02-02 18:05:01 14455 1

原创 关于java的参数传递(值传递、引用传递和传值、传引用等)

所谓参数传递就是用函数调用所给出的实参(实际参数)向函数定义所给出的形参(形式参数)设置初始值的过程。基本的有三种参数分别为:(1)传值: (2)传址(即是传指针)(3)传引用以上这些都是根据参数的类型来分别的,是指传递的东西是什么,而不是指传递过程,但是在传递过程中也有和它们比较混淆的名词,这就是是值传递和引用传递,总体上函数调用可以分为两类,是根据传递时的过程来

2018-01-28 02:16:17 4097

原创 Android项目需要使用的各种文件

任何一个新建的项目都会默认使用Android模式的项目结构,但这并不是项目真实的目录结构,而是被Android Studio转换过的这个模式结构比较简洁明了,适合进行快速开发,将其切换为Project模式就是项目的真实结构了。一.首先就是.gradle和.idea这两个目录下放置的是Android Studio 自动生成的一些文件,.gradle是gradle 运行时自动生成的gradle项目产生

2018-01-23 20:41:37 1915

原创 代码点与代码单元和Unicode相关的UTF

java字符串由char序列组成,char数据类型是一个采用UTF-16编码表示Unicode代码点的代码单元,大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元来表示,length方法返回的是采用UTF-16编码表示的给定字符串所需要的代码单元的数量,要想得到真实的长度即代码点的数量可以调用xxx.codePointCount(0,xxx.length())方法

2018-01-21 23:11:52 1305

原创 多线程基础——经典的哲学家就餐问题

哲学家就餐问题是在计算机科学中的一个经典问题,用来演示在并行计算中多线程同步时产生的问题。这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。用来演示在并行计算中多线程同步时产生的问题,就可以抽象成是资源抢占问题,而筷子就是“资源”。哲学家就餐问题可以这样表述:假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候就停止

2018-01-17 11:01:13 1013

原创 迅速学java——100条小知识点快速入门

1.首先java是一种高级语言是一个面向对象的编程语言同时最重要的是它的可移植性。2.java语言的产生及发展历史,由James Gosling领导的小组在Sun公司开发,发展主要用于开发可嵌入家电产品的软件之后java的重心转移到Internet编程到现在面向网络应用,类库不断丰富性能不断提升应用领域不断扩展。3.java具有三大平台:J2ME(嵌入式平台)、J2SE(标

2018-01-14 18:37:53 2573

原创 Java如何一个类只生成一个对象,如何记录一个类生成了几个对象

public class A{private static A a = new A(); //声明为static是为了确保只有一个对象存在,详见static修饰符private A(){} //构造方法为private,外部无法使用new来创建对象.public static A getA(){return a;}}public static void main(Str

2017-12-28 15:22:05 1873

原创 语音识别的前端处理

涉及前端处理,包含语音采集过程、麦克风阵列、回波消除、波束形成算法、混响消除、端点检测、噪声抑制、语音增强。

2017-12-10 13:59:12 24900

原创 语音识别的历史和产品

语音识别的历史说到语音识别就要提到传说一样的实验室:贝尔实验室。一切又是从这里开始的,因为语音识别的研究起源于上世纪50年代,当时的主要研究者就是贝尔实验室。1952年贝尔研究所Davis等人研究成功了世界上第一个能识别10个英文数字发音的识别实验系统。实现了十个英文数字识别系统。早期的语音识别系统是简单的孤立词识别系统。从上世纪60年代开始,CMU的Red

2017-12-08 14:18:44 7168

原创 设计模式怎么使用,如何选择设计模式

设计模式的程序没有一个统一的定义,都是开发人员在开发当中不断积累,总结出来的一种可以复制重用的方案。•    设计模式是对程序设计人员经常遇到的设计问题的可再现的解决方案•    设计模式建立了一系列描述如何完成软件开发领域中特定任务的规则•    设计模式关注与复用可重复出现的结构设计方案•    设计模式提出了一个发生在特定设计环境中的可重复出现的设计问题,并提

2017-12-05 23:07:57 3825

原创 设计模式是什么(对设计模式的理解)

什么是设计模式面向对象的设计是比较困难的,一个设计应该是具有针对性的且对于未来有一定通用性,先找到相关的对象在以适当的粒度对它们归类,在对每个类定义接口和继承层次,最后确定每个对象之间的联系。有经验的设计者的确可以做出好的设计,但是对于不那么熟练的设计者在面对众多的选择时会感到无法下手。而且不是所有的问题都需要从头开始解决,有些时候会使用之前使用过的解决方案,就像代码的复用一样

2017-11-28 13:21:42 3398

原创 java的关键字和保留字

关键字和保留字的区别正确识别java语言的关键字(keyword)和保留字(reserved word)是十分重要的。Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。识别java语言的关键字,不要和其他语言如c/c++的关键字

2017-11-27 19:44:57 28502 9

原创 安卓学习日记(二)四大组件(一)活动——Activity详解

Android系统四大组件分别是活动、服务、广播接受器、内容提供器。其中活动是所有Abdroid应用程序的门面凡是在应用中你看得到的都是放在活动中的,服务是无法看到的但是它会一直在后台默默的运行即使用户退出了应用服务仍然可以继续运行,广播接受器允许你的应用接受来自各处的广播消息,当然你的应用同样也可以向外发出广播消息,内容提供器则为应用程序之间共享数据提供了可能。经过了上面的简单了解,现在

2017-11-24 00:07:24 1476

原创 c语言指针详解

什么是指针指针究竟是什么,是地址还是类型,有一些人认为是地址因为存放的是地址,有些人认为是一种类型因为国际标准已经指明指针是一种类型,但其实说指针是地址有些不太严谨,因为从编译角度来看指针是一种数据类型,其存储的地址也就是指针存储的值是才是地址,所以实际上指针的值是地址和指针本身是一个类型这两者之间是不冲突的。为什么很多人对于指针并不理解,因为他们对于指针的理解是一个笼

2017-11-20 10:45:56 1044

原创 了解Android已发布的各种版本(即1.0、2.0、3.0、4.0、5.0、6.0、7.0、8.0)

Android操作系统是一个由Google和开放手持设备联盟共同开发发展的移动设备操作系统。最早的一款系统是2008年9月,谷歌正式发布的Android 1.0系统,也就是Android最早的版本,随后不断的更新Android系统,2.1、2.2、2.3的连续推出使Android占据了大量的市场,2011年google发布了Android 3.0系统这个系统是为了平板电脑设计的,但是是一个

2017-11-07 16:44:48 26171

原创 安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)

首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层、系统运行库层、应用框架层和应用层,那就先说说这几层。1.linux内核层:Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动(如显示,音频,照相机,蓝牙,WI-FI,电源管理等等),那么Android为

2017-11-06 11:25:27 18851 4

原创 java的基础:详解Object类里的13个方法(序)

● public Object() ● private static native void registerNatives() ● protected navite Object clone() ● public boolean equals(Object obj) ● protected void finalize() ● public final native Class<? > getClass() ● public native int hashCode() ● pub

2017-10-30 20:05:50 4432

原创 java的变量和常量以及常量池

首先变量名和常量名都是用户自行定义的标志符,遵循先定义后使用的原则,常量和变量的区别是常量之后会不会改变变量占据着内存的某一存储区域,该区域有自己的名称和数据类型,该区域的数据可以在同一类型范围内不断的变化,那么为什么定义变量,可以用来存放同一类型的变量可以重复使用,每一个变量都有他自己的作用范围,定义开始到定义它的代码块结束,同一代码块范围内不允许有多个相同名字的局部

2017-10-24 17:39:10 2610

原创 面向对象和面向过程的区别和联系

————前车之鉴,后车之师:对面向对象的理解1.考虑问题的过程和思想的转变:在对问题的考虑时人的主观思维起到重要作用,遇到问题会对整体问题进行考虑看是否遇到过类似问题,人为的向经验靠拢,对问题事件进行分析,归纳,延伸,将多个经验组合在一起对更大的问题进行处理。人能够解决问题的复杂性直接取决于抽象的类型和质量,看是否能够对问题进行拆分,将一个大的问题转化为多个

2017-10-10 17:10:54 2165

原创 什么是面向对象

我认为面向对象编程的意思是以对象为基本单位进行编程,但是我觉得编写代码不是面向对象的根本,即使面向对象编程的特点也只是为了寻求一种编码方式,虽然这个编码方式达到了一些目的但是我觉得也只是面向对象的一些附属优势,而在具体就到了实现过程上,就成为了一种过程。所以面向对象是不能仅从一个方向去看待,而要从多方面去看:简单的是一种编程方式,复杂一些是一种设计,更上的则是一种思想理念。这些环节虽然都是面向对象

2017-10-10 16:53:55 855

空空如也

空空如也

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

TA关注的人

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