Java最难的语法<泛型>

时间过得很快,我们马上就进入了,Java最难语法的学习,加油吧!

1.包装类 

想要学好泛型就要了解包装类。

在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类。

除了 Integer 和 Character, 其余基本类型的包装类都是首字母大写。

1.2 装箱和拆箱 

    public static void main(String[] args) {int a = 10;Integer aa = a; //装箱Integer b = 20;int bb = b;     //拆箱  }

这是一种自动 装箱/拆箱 。

装包:把一个基本类型转变为包装类型。

拆包:把一个包装类型转变为基本类型。

 也有手动 装箱/拆箱。

int a = 10;
Integer aa = Integer.valueOf(a); //装箱Integer b = new Integer(20);
int bb = b.intValue();     //拆箱

两者基本一样,在底层都是调用的同一个方法。

2.泛型

2.1什么是泛型 

 泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多类型。从代码上讲,就是对类型实现了参数化。

2.2语法 

class 泛型类名称<类型形参列表> {
       // 这里可以使用类型参数
}

代码示例

class MyArray<T> {public T[]array = (T[]) new Object[10];public void setval(int pos,T val){array[pos] = val;}public T getval(int pos){return array[pos];}
}
public class Main {public static void main(String[] args) {MyArray<String> myArray = new MyArray<String>();myArray.setval(1,"hello");myArray.setval(2,"bit");String str = myArray.getval(1);System.out.println(str);MyArray<Integer> myArray1 = new MyArray<>();myArray1.setval(0,1);int val = myArray1.getval(0);System.out.println(val);}
}

泛型的意义 

  • 1.在编译的时候检查数据类型是否正确
  • 2.在编译的时候帮助进行类型转换 

2.3泛型类的使用 

泛型类<类型实参> 变量名; // 定义一个泛型类引用
new 泛型类<类型实参>(构造方法实参); // 实例化一个泛型类对象 

 示例

MyArray<Integer> list = new MyArray<Integer>();

 注意:泛型只能接受类,所有的基本数据类型必须使用包装类!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springBoot实现的学生成绩在线管理

一、系统架构 前端&#xff1a;html | js | css | jquery | bootstrap 后端&#xff1a;springboot | ibatis 环境&#xff1a;jdk1.7 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理员-首页 03. 管理员-学生管理 04. 管理员-教师管理 05. 管理员-班级管…

任务管理流程及任务管理工具

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo支持敏捷研发管理全流程&#xff0c;包括小型团队敏捷开发&#xff0c;规模化敏捷SAFe&#xff0c;Scr…

【LeetCode】每日一题 2023_11_29 无限集中的最小数字(哈希/堆)

文章目录 刷题前唠嗑题目&#xff1a;无限集中的最小数字题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 今天的题目也比较的简单&#xff0c;因为数据量不大&#xff0c;所以什么做法都能过的去 题目&a…

主流之选!Galaxybase荣获工信部赛宝信创解决方案全国三等奖

喜报&#xff01;“创邻图智能方案”再获工信部官方认可&#xff01; 11月23日&#xff0c;由工业和信息化部电子第五研究所和中国通信企业协会联合主办的“第二届中国赛宝信息技术应用创新优秀解决方案征集活动”结果正式公布&#xff0c;创邻科技Galaxybase智能风控解决方案…

leetcode刷题详解十一

⭕️583. 两个字符串的删除操作 思路&#xff1a;核心代码就是最长公共子序列&#xff0c;但是需要注意的是结果 就是如果说公共子序列为0&#xff0c;则需要两个字符串长度的才行 如果有&#xff0c;就是 n m ∗ 2 d p [ n ] [ m ] nm*2dp[n][m] nm∗2dp[n][m] int minDist…

【LeetCode刷题】数组篇1

&#x1f387;数组简单题Part &#x1f308; 开启LeetCode刷题之旅 &#x1f308; 文章目录 &#x1f387;数组简单题Part&#x1f370;1.两数之和&#x1f451;思路分析1.暴力法2.哈希表法 &#x1f370;26.删除有序数组中的重复项&#x1f451;思路分析1.双指针2.利用vector…

Trapcode Suite 2024.0.2

Trapcode Suite是一款用于在After Effects中模拟和建模3D粒子和效果的软件。 该软件包包含11种不同的工具&#xff0c;可以帮助用户模拟火、水、烟、雪等粒子效果&#xff0c;以及创建有机视觉效果和3D元素。它还支持在AE与PR 2022插件&#xff0c;使得用户可以轻松地在后期制作…

11月第4周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年11月20日-11月26日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数、带货数据等维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营…

《第一行代码:Android》第三版-如何为一个Activity添加layout文件

确切地说就是讲如何给一个不带view的Activity添加一个view&#xff0c;就是添加一个layout文件。 新建安卓项目&#xff0c;如果选择&#xff1a;就会给你创建一个没有view的Activity&#xff0c;如果后来你发现需要为这个Activity添加view&#xff0c;就是添加一个布局文件怎…

又有两大巨头官宣加入鸿蒙, 鸿蒙已成, 华为余承东说得没错

自从华为发布HarmonyOS 4系统后&#xff0c;宣布下一个鸿蒙版本将不再支持安卓应用&#xff0c;并启动鸿蒙原生应用&#xff0c;随后国内巨头纷纷响应&#xff0c;为鸿蒙系统开发原生应用。 如今&#xff0c;又有两大巨头官宣加入鸿蒙&#xff0c;一家是广汽传祺&#xff0c;M…

软著项目推荐 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…

CodeTON Round #7 (Div. 1 + Div. 2)

A.jagged Swaps 题意&#xff1a; 给出一个包含 n n n个数字的序列&#xff0c;每次可以选择一个同时大于左右两边相邻的数字&#xff0c;将这个数字与它右边的数字交换&#xff0c;问能否在经过若干次操作后使序列变为升序。 分析&#xff1a; 由于交换只能向后进行&#…

Java 基础学习(四)操作数组、软件开发管理

1 操作数组 1.1.1 System.arraycopy 方法用于数组复制 当需要将一个数组的元素复制到另一个数组中时&#xff0c;可以使用System.arraycopy方法。它提供了一种高效的方式来复制数组的内容&#xff0c;避免了逐个元素赋值的繁琐过程。相对于使用循环逐个元素赋值的方式&#x…

C#-串口通信入门及进阶扩展

目录 一、串口相关参数介绍 1、端口&#xff08;COM口&#xff09; 2、波特率&#xff08;Baud rate&#xff09; 3、起始位 4、停止位&#xff08;StopBits&#xff09; 5、数据位 6、校验位 7、缓存区 二、串口通信助手 三、虚拟串口工具 四、进阶扩展 1、位运算…

InnoDB存储引擎中的锁

文章目录 概要一、需要解决的问题二、共享锁和独占锁1.1 锁定读1.2 表级别的共享锁、独占锁 三、行锁3.1 数据准备3.2 几种常见的行级锁3.3 行锁升级为表锁 概要 关于MySQL涉及到的锁&#xff0c;大致可以总结如下&#xff1a; MyISAM存储引擎在开发过程中几乎很少使用了&…

SpringSecurity+JWT实现权限控制以及安全认证

一.简介 Spring Security 是 Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 认证&#xff1a;验证当前访问系统的是不是本系统的用户&#xff0c;并且要确认具体是哪个用户​ 授权&…

Spring Boot + MyBatis-Plus实现数据库读写分离

文章目录 1. 引言2. MyBatis-Plus简介3. 准备工作4. 配置数据源5. 配置MyBatis-Plus6. 创建实体类和Mapper接口7. 编写Service8. 控制器层9. 测试10. 数据库读写分离的原理11. 拓展11.1. 动态数据源11.2. 多数据源事务管理11.3. 多租户支持 12. 总结 &#x1f389;Spring Boot …

【多线程】-- 06 线程状态之线程停止与休眠

多线程 5 线程状态 线程的五大状态&#xff1a;创建状态、就绪状态、阻塞状态、运行状态、死亡状态。如下图所示&#xff1a; 具体解释如下&#xff1a; 线程方法&#xff1a; 5.1 停止线程 不推荐使用JDK提供的stop()方法、destroy()方法【已废弃 – deprecated】推荐线程自…

NX二次开发UF_CSYS_create_csys 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_create_csys Defined in: uf_csys.h int UF_CSYS_create_csys(const double csys_origin [ 3 ] , tag_t matrix_id, tag_t * csys_id ) overview 概述 Creates a CSYS. 创…

京东API接口的接入(京东工业)

在技术交流群&#xff0c;大家有探讨稳定获取京东商品主图、价格、标题&#xff0c;及sku的完整解决方案。这个引起了我技术挑战的兴趣。 目前&#xff0c;自己做了压测&#xff0c;QPS高、出滑块概率极低&#xff0c;API整体稳定&#xff0c;可满足业务场景的性能需求。 公共…