引用类型

java 网络编程-UDP-引用(对象)类型传输

随声附和 提交于 2019-11-28 14:52:12
public class my implements java.io.Serializable { public void rr() { System.out.println("杜雨龙最帅a"); } } 引用类型接收端 Address already in use: Cannot bind同一个协议下端口不允许冲突 1、使用DatagramSocket指定端口 创建接收端 2、准备容器封装成DatagramPacket 包裹 3、阻塞式接受包裹receive(DatagramPacket p); 4、分析数据,将字节数组还原为对应类型 getData()返回类型为字节数组,getLength()返回数据长度,类型为int 5、释放资源 */ public class http{ public static void main(String[]args) throws IOException, ClassNotFoundException { System.out.println("接收方启动子..."); //创建接口 DatagramSocket server=new DatagramSocket(8888); //封装包裹 byte[] data=new byte[1024*60]; DatagramPacket packet= new DatagramPacket(data

Java类和对象

烂漫一生 提交于 2019-11-28 13:41:57
了解类和对象前,简单提及面向对象程序设计。面向对象程序设计就是通过对象来进行程序设计,对象表示一个可以明确标识的实体。例如:一个人、一本书、一个学校或一台电脑等等。每个对象都有自己独特的标识、状态和行为。 对象的状态(特征或属性,即实例变量),由该对象的数据域来表示。 例如:一个人可以具有名字、年龄、身高、体重、家庭地址等等属性,这些就是“人这个对象的数据域”。 对象的行为(对象执行的动作,即功能),由方法来定义。例如:定义getName()来获取姓名, getHeight()获取身高,setAddress(String addr)修改地址。 类和对象的关系 类是一种抽象的概念集合,是最基础的组织单位,作为对象的模板、合约或蓝图。 类是对象的类型,使用一个通用类可以定义同一类型的对象,类中定义对象的数据域是什么以及方法是做什么的。 对象是类的实例,一个类可以拥有多个实例,创建实例的过程叫做实例化。实例也称为对象,两者说法一致。 构造方法 构造方法在使用new操作符创建对象时被调用,作用就是用于初始化对象数据域。 构造方法相比于普通方法比较特殊的地方: 构造方法名和所在类的类名一致;无返回值(即void也没有);只有创建对象时才会被调用。 构造方法和普通方法一样,也可以重载,根据不同的初始参数,来构造对象。   //只初始化名字和性别 public Person(String

javascript-类型、值和变量

筅森魡賤 提交于 2019-11-28 12:23:22
基本类型和引用类型 MDN-JavaScript 数据类型和数据结构 ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是 简单的数据段,而引用类型值指那些可能由多个值构成的对象。 其中基本类型是按值访问的,可以操作保存在变量中的实际的值: undefined 、 null 、 number 、 boolean 、 string 、 symbol (es6新增)、 BigInt (提案阶段); 引用类型是保存在内存中的对象,引用类型的值是按引用访问的: Function 、 Object ( Array 、 Date 、 RegExp ) !> 除 Object 以外的所有类型都是不可变的(值本身无法被改变),我们称这些类型的值为“原始值”。 graph LR reference_type --> Object subgraph 栈区 reference_type[Object类型引用地址] Undefined Null Number Boolean String Symbol BigInt end subgraph 堆区 Object[引用类型值] end 类型检测 typeof 类型 举例 Null typeof(null) => object Number typeof(1) => number Boolean typeof

C#8.0—非空引用类型

陌路散爱 提交于 2019-11-28 07:07:48
原文: C#8.0—非空引用类型 非空引用类型——C#8.0 原文地址: https://devblogs.microsoft.com/dotnet/try-out-nullable-reference-types/?utm_source=vs_developer_news&utm_medium=referral 该新增的特性最关键的作用是处理泛型和更高级 API 的使用场景。这些都是我们从 .NETCore 上注解衍生过来的经验。 通用不为 NULL 约束 通常的做法是不允许泛型类型为 NULL。我们给出下面代码: interface IDoStuff<Tin, Tout> { Tout DoStuff(Tin input); } 这种做法对为空引用和值类型也许令人满意的。也就是说对 string 或者 or 来说很好,但是对 string? 或 or 却不是。 这样可以通过 notnull 约束来实现。 interface IDoStuff<Tin, Tout> where Tin: notnull where Tout: notnull { Tout DoStuff(Tin input); } 像下面这样的实现类如果没有应用相同的泛型约束还是会生成一个警告。 //警告:CS8714 - 可空类型参数 TIn 无法匹配 notnull 约束 //警告:CS8714 -

基本数据类型和引用类型的区别

こ雲淡風輕ζ 提交于 2019-11-28 05:51:23
基本数据类型: byte: JAVA中数据类型最小的单位,在内存中占8个位(bit),占一个字节,取值范围为-128~127,默认为0; short: 短整型,在内存中占16位,即占2个字节,取值范围为-32768-32717,默认为0; int: 整型,在内存中占32位,即占4个字节,取值范围为-2147483648~2147483647,默认为0; long: 长整型,内存中占64位,即占8个字节,取值范围为-2^63~2^63-1,默认值OL; float: 浮点型,在内存中占32位,即4个字节,用于存储带小数的数字(与double的区别是有效小数点只有6~7位有效数字),默认为0; double: 双精度浮点型,也是用于存储带小数的数字(有效小数点后只有16位有效数字),在内存中占64位,即8个字节,默认为0; char:字符型,用于存储单个字符,在内存中占16位,占2个字节,取值范围0~65535,默认值为空; boolean:布尔类型,占一个字节,用于判断真或假(仅有2个值,即true和false),默认为false; Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言

JVM的学习2____内存分配原理

可紊 提交于 2019-11-28 04:18:34
之前介绍过,为了提高GC的执行效率Java的实例对象也可以创建在堆区之外,但是绝大多数的实例对象还是创建在了堆区中。在JVM中包含三种引用类型即:类类型(class type),数组类型(array type),接口类型(interface type),这些引用类型的值分别由类实例,数组实例,接口的实现类实例动态创建。 来源: https://www.cnblogs.com/xbfchder/p/11392062.html

变量和方法调用过程中会出现的参数传递

喜欢而已 提交于 2019-11-28 03:51:19
变量对于基本数据类型来说变量名和值同时存储于栈内存里面的一块空间之中 对于引用类型来说则是栈内存里面的变量指向堆里面的实际对象,在栈中的变量来说变量名和指向对象的地址存在同一块内存里面。 方法的参数和基本类型变量都是存储于栈中的 对于方法来说进入方法开辟空间,方法执行完退出则回收内存,很明显方法中的参数,变量的作用域问题 方法的参数又包括基本类型和引用类型,对于两种不同的参数来说在参数的传递过程中是基本类型的值被copy后传进去也即是值传递, 而引用类型来说传递的是引用也就是他的地址,从某方面来说也是进行的值传递只不过这个的值是引用的地址。 在分析变量以及参数的时候从他们的类型和作用域去考虑 来源: https://www.cnblogs.com/zrmj/p/11390501.html

CTS,CLS,CLR解释

半城伤御伤魂 提交于 2019-11-28 03:07:42
问题阐述 CTS、CLS和 CLR分别是什么意思? 专家解答 CTS、CLS和 CLR是.NET框架的 3个核心部分,下面分别对它们进行介绍。 (1)CTS CTS即通用类型系统,它定义了如何在.NET Framework运行库中声明、使用和管理类型,同时也是.NET Framework运行库支持跨语言集成的一个重要组成部分。通用类型系统主要执行以下功能: .建立一个支持跨语言集成、类型安全和高性能代码执行的框架。 .提供一个支持完整实现多种编程语言的面向对象的模型。 .定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够发生交互作用。 .NET Framework类库中的通用类型系统支持两种类别的类型,分别为值类型和引用类型,下面分别对它们进行简单介绍。 ? 值类型 值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。值类型可以是内联的(由运行库实现)、用户定义的或枚举的。 ? 引用类型 引用类型存储对值的内存地址的引用,位于堆上。引用类型可以是自描述类型、指针类型或接口类型。引用类型的类型可以由自描述类型的值来确定,自描述类型进一步细分成数组和类类型,类类型是用户定义的类、装箱的值类型和委托。图 1.1 显示了通用类型系统的一般结构。 图 1.1 通用类型系统的结构 (2)CLS CLS 即公共语言规范,它是许多应用程序所需的一套基本语言功能。CLS

C#Strings-Getting Started with Strings

大兔子大兔子 提交于 2019-11-28 02:40:12
对大多数C#程序员来说字符串处理是很常见的工作。 .NET Framework为处理字符串提供了很多的工具,但是必须特别注意,因为有几个陷阱会绊倒初学者。 首先要注意的是在.NET中string是引用类型。 在.NET中引用类型是存放在托管堆中。所以他们被.NET的垃圾回收器管理着。与值类型不同的是,当他们超出范围,他们不会自动销毁。 使用下面的语法字符串可以很简单的被实例化: string s1;    注意string没有默认值。因此在试图访问它之前你需要为string赋值。 string s1; Literal1.Text = s1; // Will give run-time error 运行错误   1 string s2 = " " ; 2 Literal1.Text = s2; // 你可以为字符串赋一个空值。    在.NET framework中有许多的内置方法可以用来处理字符串。也就是说,字符串是不可变的并且因此原始字符串永远不会改变。 因此如果你需要修改字符串,你需要给他重新分配使用一个新字符串值: 1 string s1 = " all lower case " ; 2 s1.ToUpper() ; // s1 is unchanged 3 Literal1.Text = s1; // outputs 'all lower case' since s1 is

.NET Framework学习笔记(四)

两盒软妹~` 提交于 2019-11-27 22:49:58
类型与通用语言运行时 5. 基元类型、引用类型与值类型 编译器直接支持的数据类型称为 基元类型 primitive type . 基元类型和 .NET 框架类库 FCL 中的类型有直接的映射关系,对于那些和 CLS 兼容的类型,其他语言也都提供了类似的基元类型。 提倡使用 FCL 类型名。 编译器能够在基元类型之间进行隐式或者显示的转型,如果转型存在潜在的 不安全 ( 造成数据丢失 ) ,则要求显示转换 System.Convert 关于 C# 溢出的检查,默认情况下是关闭的 ; C# 编译器提供了 /checked+ 命令行开关来控制溢出检查。 同时, C# 也提供了 checked 和 unchecked 操作符,及相应的语句; Byte b=100; b=checked((byte)(b+200)); checked{ Byte b=100; b=(byte)(b+100); } //checked 操作符和语句只影响加、减、乘以及 IL 指令产生的版本,在 checked 操作符和语 // 句内调用一个方法并不会对该方法产生任何影响 。 当开发应用程序时,应使用编译器的 /checked+ 命令行开关,此时系统会对任何代码做溢出检查。 CLR 不会把 System.Decima l 看做一个基元类型,当编译使用 Decimal 值的代码时,编译器产生的代码实际上会通过调用