首页
学习
活动
专区
圈层
工具
发布

JavaSE 总复习:夯实基础,迈向进阶之路

(二)引用数据类型 包括类、接口、数组等。例如创建一个字符串对象:String str = “Hello”; (三)变量声明与初始化 变量在使用前必须先声明,声明格式为数据类型 变量名。...也可以在声明时直接初始化:int[] arr = {1, 2, 3, 4, 5}; (二)二维数组 声明与创建二维数组:数据类型[][] 数组名 = new 数据类型[行数][列数]; 例如:int...对于一维数组: for (int i = 0; i length; i++) { System.out.println(arr[i]); } 对于二维数组: for (int i =...二)封装 将类的成员变量设为private,通过public的getter和setter方法来访问和修改成员变量,实现数据的隐藏和封装。...可以将基本数据类型转换为包装类对象(装箱),反之亦然(拆箱)。

30010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java基础之int和Integer有什么区别

    1 Java两种数据类型 1.1 Java两种数据类型分类 (1)基本数据类型,分为boolean、byte、int、char、long、short、double、float; (2)引用数据类型 ,...分为数组、类、接口。...int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较) Integer...因为非new生成的Integer变量指向的是静态常量池中cache数组中存储的指向了堆中的Integer对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的对象引用(地址)不同...cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k length

    75120

    JAVA入门3-1 原

    在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。 那什么是装箱和拆箱呢?...我们分别来看下 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱 ? 拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱 ?...再来看,将字符串转换成基本类型有两种方法: 1. 调用包装类的 parseXxx 静态方法 2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱 ?...PS:其他基本类型与字符串的相互转化这里不再一一列出,方法都类似 public class HelloWorld { public static void main(String[] args)...,长度为10 int[] nums = new int[10]; //通过循环给数组赋值 for (int i = 0; i length; i+

    1.2K40

    数据结构基础温故-6.查找(下):哈希表

    1.3 解决哈希冲突的方法 (1)闭散列法   闭散列法时把所有的元素都存储在哈希表数组中,当发生冲突时,在冲突位置的附近寻找可存放记录的空单元。寻找“下一个”空位的过程则称为探测。...根据di的不同,又可以分为几种探测方法:线性探测法、二次探测法以及双重散列法。 (2)开散列法   开散列法的常见形式是将所有关键字为同义词的记录存储在一个单链表中。...本次测试会首先创建一个100万个随机排列整数的数组,然后将数组中的数字依次插入三种数据结构中,最后从三种数据结构中删除所有数据,每个操作分别计算耗费时间(这里计算操作使用了老赵的CodeTimer类实现性能计数...(1)准备工作:初始化一个100万个随机数的数组 int length = 1000000; int[] arrNumber = new int[length...arrNumber[i] = i; } Random rand = new Random(); // 随机将数组中的数字打乱顺序

    77610

    Java网络编程——粘包拆包出现的原因及解决方式

    用一句话总结就是,客户端发送的一段数据包到服务端接收后可能会被拆分为多个数据包。...用一句话总结就是,客户端发送的多段数据包到服务端接收后可能会合并分为一个数据包。...解决粘包、拆包问题的核心,就是要确认消息边界,当接收到一个较大的数据包时,可以正确把它拆分为几段正确的、有意义的业务数据,当收到若干个小的数据包时,也可以根据消息边界把他们合并、再拆分为正确的、有意义的业务数据...1、分隔符解决粘包、拆包问题 可以用特定的分隔符来分隔消息,比如当发送“你好”([-28, -67, -96, -27, -91, -67])时,需要让“你”对应的字节数组([-28, -67, -96...为了防止粘包/拆包造成数据不可读的情况,可以约定把消息分为两部分:消息长度+消息内容,客户端发送数据之前,先把数据长度放到数据包的开头,接着再加上真正的数据内容,服务端读取的时候,可以先获取到消息的长度

    1.6K21

    包装类及 LeetCode 每日一题

    对于这几种类型的基本数据,都有相似的方法实现基本数据和实例的相互转换:把基本数据类型变量变成包装类实例通过包装类的 valueOf()静态方法;将包装类对象转换成基本类型变量,通过包装类提供的xxxValue...用基础类型包装类的 parseXxx(String s)静态方法将字符串转成基本类型变量(除了 Character)。...利用基础类型包装类提供的 valueOf(String s)静态方法将字符串转成基本类型变量。 用 String 类提供的多个重载的 valueOf()方法将基本类型转换成 String。...事实上从JDK 1.5 之后,Java 对包装类都提供了自动装包和自动拆包,我们完全可以将一个基本类型数据直接赋给一个包装类的变量,或者将一个包装类赋值给一个基本数据类型变量,系统会自动装包成相应的对象或拆包成基本数据...128 - 127 的整数放入了一个名为 cache 的数组中缓存起来, 当将这个范围内的整数自动装箱成一个 Integer 实例时,实际上直接指向对应的数组元素,因此 a 和 b 指向同一个数组元素,

    66330

    奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true?

    Java两种数据类型 3.1 Java两种数据类型分类 原始数据类型,分为boolean、byte、int、char、long 、short、double、float 引用数据类型 ,分为数组、类、接口...3.2 Java为每个原始类型提供了封装类 为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每 一个基本数据类型都引入了对应的包装类型(wrapper class...),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。...int,long,float,double 封装类类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double 4、 基本解析 4.1 自动装箱:将基本数据类型重新转化为对象...cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k length

    3.4K31

    数据结构--初始数据结构

    1、算法的效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。...代码示例(双层嵌套循环) // 冒泡排序(N是数组长度) void bubbleSort(int[] arr) { for (int i = 0; i length; i++) {...空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进表示法。...1、基本数据类型和对应的包装类 2、装箱和拆箱 装箱(Boxing):将「基本数据类型」转换为对应的「包装类对象」; 拆箱(Unboxing):将「包装类对象」转换为对应的「基本数据类型」。...自动拆箱(包装类 → 基本类型) 当需要基本类型时,编译器自动将包装类对象转换为基本类型。

    15710

    JAVA面试50讲之4:int和Integer的区别

    int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较) Integer...cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k length...3.理解自动装箱和拆箱 3.1 什么是装箱?什么是拆箱? 装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。...6.关于其他知识延伸 6.1 对象的内存结构 对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。...另外,如果对象是一个Java数组,那在对象头中还必须有一块用于记录数组长度的数据,因为虚拟机可以通过普通Java对象的元数据信息确定Java对象的大小,但是从数组的元数据中却无法确定数组的大小。

    1.2K20

    Netty 粘包和拆包问题及解决方案

    ,这就形成了粘包问题;如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP 就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小包进行发送。...客户端在每个包的末尾使用固定的分隔符,例如 \r\n,如果一个包被拆分了,则等待下一个包发送过来之后找到其中的 \r\n,然后对其拆分后的头部部分与前一个包的剩余部分进行合并,这样就得到了一个完整的包; 将消息分为头部和消息体...; ​ public FixedLengthFrameEncoder(int length) { this.length = length; } ​ @Override protected...it's limited " + length); } if (msg.length() length) { msg = addSpace(msg);...User 对象序列化为 json 对象,然后在其字节数组前面添加一个长度字段的字节数组;解码器主要是对接收到的数据进行长度字段的解码,然后将其反序列化为一个 User 对象。

    60710

    粘包和拆包及Netty解决方案

    ,这就形成了粘包问题;如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小包进行发送。...; B包比较大,因而将其拆分为两个包B_1和B_2进行发送,而这里由于拆分后的B_2比较小,其又与A包合并在一起发送。...客户端在每个包的末尾使用固定的分隔符,例如\r\n,如果一个包被拆分了,则等待下一个包发送过来之后找到其中的\r\n,然后对其拆分后的头部部分与前一个包的剩余部分进行合并,这样就得到了一个完整的包; 将消息分为头部和消息体...; public FixedLengthFrameEncoder(int length) { this.length = length; } @Override protected...User对象序列化为json对象,然后在其字节数组前面添加一个长度字段的字节数组;解码器主要是对接收到的数据进行长度字段的解码,然后将其反序列化为一个User对象。

    2.4K30

    【愚公系列】2023年11月 数据结构(三)-列表

    哈希表通常由数组和散列函数组成,可以在常数时间内进行插入、删除和查找操作。树(Tree):是一种非线性数据结构,它由一系列的节点组成,每个节点可以有若干个子节点。...列表的基本思想是将元素按照一定顺序组织起来,并且支持在列表中插入、删除和遍历元素。列表可以使用数组或链表实现。在数组实现中,列表的元素在内存中是连续的,而在链表实现中,元素可以在内存中任意位置。...:int[] myArray = {1,2,3,4,5};List myList = new List(myArray);注意,以上初始化方法都需要在列表变量声明时进行。...)方法将元素添加到开头。...这样就避免了类型的不安全、以及数据强制转换导致装箱拆箱损耗性能。备注:哈希表(散列),就是数组的升级版通过hash运算快速查找到值,数组下标就是哈希值。

    72500

    【Java】——数组深度解析(从内存原理到高效应用实践)

    Java 将数组设定成引⽤类型, 这样的话后续进⾏数组参数传参, 其实只是将数组的地址传⼊到函数形参中....⼆维数组本质上也就是⼀维数组, 只不过每个元素⼜是⼀个⼀维数组. 1.基本语法 数据类型[][] 数组名称 = new 数据类型 [⾏数][列数] { 初始化数据 }; 列可以省略,行不可以省略...⼜是⼀个数组 arr.length 代表⼆维数组的⾏数 arr[row].length 代表⼆维数组的列数 2....不规则二维数组 不规则的⼆维数组指的是,⼆维数组的列在定义的时候,没有确定。...第1⾏有3列,第2⾏有5列。 【总结】 数组作为Java编程的基础数据结构,掌握其定义和使用方法是迈向高级编程的重要一步。

    24110

    第2章 C#程序设计基础

    C#中类的方法可以分为三种类型:无返回值方法、有返回值方法和 带参数方法 。 9. C#方法的参数有四种类型: 值参数 、 引用参数 、 输出参数 和参数数组。 10....简述C#中装箱和拆箱的基本概念。 值类型和引用类型之间是可以相互转换的,装箱操作就是将值类型转换为引用类型的过程,同理拆箱操作就是将引用类型转换为值类型的过程。...在装箱和拆箱的过程中,任何类型都可以和object类型之间进行转换。 4. 叙述C#中变量的命名规则。...索引器是一种特殊的类成员,其主要功能是使对象能够像数组一样被方便地引用。当一个类包含有数组或者集合成员时,使用索引器将大大简化对数组或集合成员的存取操作。...(6)构造函数可分为实例构造函数和静态构造函数。

    2.3K40

    Java程序设计(Java9版):第4章 简单复合类型

    4.1.1 数组定义 数组是复合数据类型,所以分为数组变量声明与数组创建两步完成。...“长度”个存储空间,然后将这些存储空间的首地址赋值给数组名。...a=new int[5]; 实际上,可以将数组声明和开辟空间两步合并为: 元素类型[] 数组名=new 元素类型[长度]; 此外,Java语言允许使用int型变量来指定数组的长度,C语言是不允许的。...这就是Java语言中的复合数据类型的变量被称为引用变量的原因。 在Java语言,内存是可以分为栈内存和堆内存。栈内存,存储基本类型的数据和引用变量;堆内存存放复合数据类型的数据实体。...很容易发现杨辉三角的规则:第一列和斜边都为1;其他元素值等于上一行的同列元素与前一列的元素之和,用数组表示为a[i][j]=a[i-1][j]+a[i-1][j-1]。

    1.4K100

    【Java数据结构】---泛型

    装箱操作,新建一个 基本类型对象,将 i 的值放入对象的某个属性中(把基本数据类型变为包装类类型) 拆箱操作:将 Integer 对象中的值取出,放到一个基本数据类型中(把包装类类型变为基本数据类型...) int a=10; Integer i=Integer.valueOf(a);//显示装箱 int j=i.intValue();//显示拆箱 //在使用过程中,装箱和拆箱带来不少的代码量,所以为了减少开发者的负担...就传入什么类型 泛型语法 class 泛型类名称 { // 这里可以使用类型参数 } class ClassName { } 泛型类变量名...总结: 泛型是将数据类型参数化,进行传递 使用 表示当前类是一个泛型类。...编译器生成的字节码在运行期间并不包含泛型的类型信息 泛型的上届 在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。

    5610
    领券