首页

来自智得网
跳转至: 导航、​ 搜索

精选文章

代理模式查看全文
代理模式.png
代理模式(Proxy)是一种常用的设计模式,该模式一般情况下通过组合的方式包装了实际的服务提供方。

代理模式中增加了代理的角色,代理类似于中介横在客户端和服务提供方之间,客户端通过代理对象访问目标对象,屏蔽了实际的目标对象。 除了中介功能之外,代理模式通常可以在目标对象实现的基础上会增加扩展的功能,这些功能一般是横向的功能,例如权限,日志等功能。代理模式可以不修改实际的服务提供方而通过代理实现这些通用的功能,符合软件设计中的开闭原则。 代理模式有两种实现,分别是静态代理或者动态代理。 静态代理 静态代理一般和目标服务对象提供类似的接口,但是实际的执行逻辑一般通过组合实际的目标提供方来实现,而代理提供扩展的功能。 动态代理 动态代理不需要手动实现静态代理中的接口逻辑,而可以通过反射或者字节码技术自动生成代理的实现类。 JVM内置了动态代理的方案,一般使用Proxy类的 newProxyInstance 方法:而扩展方法通常使用 InvocationHandler 来实现:但是JVM提供的动态代理方案需要被扩展的服务提供者必须定义有接口,如果希望对没有接口的类进行扩展,可以使用字节码技术,例如AspectJ等。

Spring中AOP的实现就是通过动态代理实现的。
Java查看全文
阿里巴巴Java开发手册.pdf
java是一款面向对象的编程语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。

java是目前市场中最广泛使用的编程语言之一,其主要版本引入的新特征如下: JDK1.5新特性 自动装箱与拆箱、枚举、泛型、For-Each循环 JDK1.7新特性 switch支持字符串、try语句自动关闭资源 JDK8新特性 Lambda表达式 跨平台 Java跨平台的特性源自其虚拟机的架构,编程语言分为编译型语言和解释性语言。 编译型语言是提前将源代码通过编译过程转换为CPU可以识别的二进制机器码指令。现代的PC或者智能手机硬件有数百个身子上千个指令,而单片机则只有几十个指令,而且不同的硬件平台的指令是不同的,所以编译器需要基于不同的硬件体系进行编译。所以编译型语言是不能跨平台的,除了其编译出来的可执行程序不能在异构平台运行之外,源代码也不能跨平台,例如linux平台下C语言的long型8个字节,睡眠函数是sleep(),但是windows下long只有4个字节,睡眠函数是大写字母开头的Sleep()。 C、C++、Golang是常见的编译型语言。 解释性语言都是跨平台的,因为解释性语言和程序真正在硬件执行是通过解释器翻译的,解释器屏蔽了底层硬件的差异,不同平台的解释器将遵循标准语法的源代码转成匹配硬件的指令进行执行,从而实现了“一次编写,到处运行”。 Python,Javascript,PHP都是常见的解释型语言。

相较于单纯的编译型语言和解释性语言,Java是两者的结合体,源代码先编译为硬件无关的字节码,然后通过虚拟机执行字节码,而且在执行过程中还可以会被进一步编译为机器码…
计算机编码查看全文
二进制和十进制的互相转换.png
在早期机械的计算装置中,计算器是辅助人脑进行计算的,所以使用的都是十进制,例如西方发明的手摇机械计算器利用内部精密的齿轮完成计算,齿轮上的10个格子代表数字,从第一个格子1以此类推至第9个格子代表9,转动一圈完成进位计算,将此类齿轮级联10个可以表示0到999999999的数字。再配合其他的机械设备,就可以实现加减乘除的计算。

中国的算盘也是十进制的计算器,传统的算盘每一个格子分上下两栏,下方5个算珠每个代表1,上侧2个算珠每个代表5,所以算盘的每一格表示10。 十进制计算器和人类数学的知识体系是相通的,所以中间不需要进行额外的转码操作。 电子计算机的发明使得十进制的表达出现了困境,电子元件只有开和关两种基本的状态,表达十进制过于复杂。物理限制决定了以电子管为基础的电子计算机采用二进制来存储和表达数据。 计算机使用二进制有以下优点: 电路中容易实现 当计算机工作期间,电路通电工作,每个输出端就有了电压。电压的高低通过模数转换很方便转换为二进制,例如高电平(一般3.2伏以上)表示1,低电平(一般2.5伏以下)表示0,模拟电路转换成为数字电路就实现了二进制的转换。 物理存储方便实现 二进制在物理上最易实现存储,通过磁极的取向、表面的凹凸、光照的有无等可以实现数据存储。例如光盘,就是将激光束聚集为小光束融化盘片表面上的合金薄膜形成凹坑来记录1的,而没有被激光照耀过的位置可以记录0。 计算机使用二进制表示信息例如数字,但是人类数学知识体系中的数字是用10进制表达的,表达方式的差异就需要进行编码。

计算机世界只有0和1两个数字,但是需要表现的信息如此的复杂,从计算程序使用的数字到表现各种信息的字符,英文字符,中文字符,拉丁字符等,还有各种声音的信息…

热门分类

算法题库

精选内容