如何为长沙网站开发一个去水印的小程序?
摘要:长沙网站seo技术,去水印小程序搭建,python做网页界面,wordpress live space一、数据类型方法论 程序本质上是对数据的处理(逻辑运算)&#x
长沙网站seo技术,去水印小程序搭建,python做网页界面,wordpress live space一、数据类型方法论
程序本质上是对数据的处理#xff08;逻辑运算#xff09;#xff0c;因此任何语言都需先解决如何表征【数据】这个核心概念。数据作为抽象的概念#xff0c;天然的包含2个方面属性#xff1a;
类型#xff1a;类型决定了数据只能和同类型的数据进行…一、数据类型方法论
程序本质上是对数据的处理逻辑运算因此任何语言都需先解决如何表征【数据】这个核心概念。数据作为抽象的概念天然的包含2个方面属性
类型类型决定了数据只能和同类型的数据进行运算才有意义不同类型的数据必须进行类型转换数值是数据的数学意义上的大小或内容。
同时数据保存在内存或磁盘中总是占用一定的存储空间因此一个数据在程序中是由类型、数值和存储空间表示的。
二、Java 数据类型
Java 是一种强类型语言每个变量在声明时必须指定其数据类型。根据参数传递时的赋值方式Java 中的数据类型分2类
1、基本数据类型值类型
参数传递时总是以值拷贝的形式赋值给接收变量。
本质是对数学意义上的纯数值类数据的抽象因此又叫值类型.
注意 基本数据类型在语言层面是不可分割的基本单元但硬件层面并非是不可分割的因为内存的读写是以内存行64位为基本单位的占用2个或2个以上内存行的数据在高并发下是不安全的。
java-basic-assign.png2、引用类型
即参数传递时是以拷贝引用地址的方式传递给接收变量而非复制整个数据本体。
除了基本数据类型外的、其他结构化的数据类型如字符串类型String、或自定义的类如Person本质上是对现实世界结构化、关系化数据的抽象因为一个对象如人总是具备多个特征属性的每个属性都是一个基本数据类型。
为什么不是拷贝值
这类类型的变量本质上是一段存储空间的起始地址因为结构化数据的存储空间的大小是由所有属性叠加的且是可变的不能或很难实现原子性的拷贝且空间代价很大因此参数传递时并不是机械的拷贝所有属性、所有空间而是仅复制拷贝起始地址就行了其他字段可以据此基地址和字段顺序进行偏移计算所得。
java-reference-assign.png3、值类型和引用类型的区别
概念方面
基本类型变量名指向具体的数值参数传递会拷贝值的副本原值不受影响 引用类型变量名指向存数据对象的内存地址参数传递是复制内存段的起始地址最终指向同一内存段。
相等语义
基本类型使用时需要赋具体值使用 号判断值是否相等。 引用类型 是判断引用地址是否相同通常应重写 equals 方法实现自定义的逻辑如同一学生会存在多个缓存中重写equals根据学号no是否相等判断是否是同一学生。
三、基本数据类型值类型
Java 语言共提供了4 类、8 种基本类型
java-value-type1、整数型
是对数学中整数的表达按照数值范围和存储空间大小顺序byte short int long
2、浮点型
是对数学中的小数的表达即有浮动小数点的数
float - 32 位直接赋值时必须在数字后加上 f 或 F指示编译器这是一个float型浮点数double - 64 位赋值时一般在数字后加 d 或 D指示编译器这是一个double型浮点数
3、Unicode 字符型
是对Unicode编码的表达Unicode编码是对全世界所有主要语言中各类字符、符号的编码是将文档转存成计算机的二进制序列进行保存的理论基础。
char- 16 位存储 Unicode 码用单引号赋值。
java-unicode可计算的
java 提供字符型可以更方便的表述字符同时支持基于编码的数值计算因此char类型的值本质还是数值可以参与数值计算。
4、布尔型真假
是对逻辑运算值的表达即真True和假False。
boolean - 只有 true 和 false 两个取值。
非数值
boolean 类型是非数值类型的因此和其他基本数据类型不能参与计算。
5、最小使用原则
即在满足需求的前提下优先使用更小的类型可以节省大量的内存提升程序的性能。Java每个大类都提高了多个大小不一的类型即是灵活的需要更是内存优化的需要。
四、类型转换
正如方法论中所说不同类型的数据不能直接混合计算必须转换同一种类型。
Java 中数据类型转换有两种方式自动转换 和 强制转换
1、自动隐式转换
在符合下面的规则下Java编译器会安全的、隐式的进行转换降低用户手动转换的压力。
自动膨胀原则
即在精度不一致的混合场景下Java编译器会隐式的将精度较小的类型转换成精度稍大的类型后才进行计算由小转大数据精度并不会丢失因此是安全的。
