java jdk1.5的新特性——泛型 ForEach 枚举 可变参数 静态导入 线程并发库 内省

项目经理必看:如何建立高效的相关方沟通机制? 你是否遇到过这样的场景?客户突然说“这不是我要的”,开发团队抱怨“需求总变”,高层追问“进度滞后为什么不早说”?这些问题的根源往往是——相关方沟通机制失效。本文聚焦“如何建立高效沟通机制”,覆盖从识别相关方到持续优化的全流程,适用于IT、产品、工程等各类项目。本文将按“理解问题→拆解核心概念→掌握工具方法→实战落地→未来趋势”的逻辑展开,重点讲解“相关方分析矩阵”“沟通计划表”等实用工具,并用“组织生日派对”的案例贯穿全文,让抽象概念变得可感知。相关方识别:用“权力/利益矩阵”找对人(像派对邀请关键客人) 阅读详情

泛型
加泛型的目的
1.数据安全
一般在使用集合的时候,我们都会给它加一些泛型,限制添加数据的类型
2.少写几个类
例如在属性类中添加泛型:

public class Person<T>
{
    private int pid;
    private T age;
    private String name;
}

在使用时再添加类型:

Person <Integer> p=new Person<>();

T默认的类型是Object
基本数据类型不能作为泛型
也可以在泛型中继承接口,使用时必须是接口的实现类:

<T extends List>

表示当前的泛型对象一定是List的实现类或者是List本身

如果将一个泛型当作参数的时候,可以给当前的泛型类设置范围,设置参数类型:

public void sayhello(Person<? extends String> p)

表示传递的参数必须是一个泛型对象,String类型或String类型的子类

Person<? super String> p

表示传递的参数必须是一个泛型对象,String类型或String类型的父类
普通类实现泛型接口,必须将泛型也一起继承
泛型作为方法的时候,如果父类中没有泛型,可以使用?来代替泛型

public void say(List<? extends String> list){
}

泛型作为一个返回值类型

public List<? extends String> getList()
{
    return new ArrayList<String>();
}

ForEach
foreach其实就是迭代器,它可以用来遍历数组和集合(除了map之外)
1.先获取到集合或数组长度
2.判断是否有数据
3.如果存在数据,就将数据取出来

int[ ] i={1,2,3,4,5,6,7,8};
for(int k:i)
{
    System.out.println(k);
}

使用一次,指针就加一
主要用于数组或集合的遍历,是迭代器的简写方式

枚举
枚举就是有一定范围的可选值
枚举是特殊的类
枚举的对象一般都是大写
在枚举的对象后面加分号,后面可以写方法,可以写属性

public enum Color
{
	RED,GREEN,YELLOW;
	private int color;
	public void run()
	{
		System.out.println("helloword");
	}
	public static void main(String[] args)
	{
		Color c=Color.RED;
		Color c2=Color.GREEN;
		Color c3=Color.YELLOW;
	}
}

一旦构造器修改,里面定义的对象必须根据我们的构造器来实例化
枚举会给每一个对象分配一个name和(当前名称)ordinal(序号)
枚举一般使用在switch-case语句中

可变参数
数据类型…变量
表示可以传递任意多个该数据类型的数据
在使用的时候可以当做数组来看待
例如:计算几个数的和

public class VarMethod
{

	public void dosomething(int...one)
	{
		int sum=0;
		for(int a:one)
		{
			sum+=a;
		}
		System.out.println(sum);
	}
	public static void main(String[] args)
	{
		new VarMethod().dosomething(1,2,3);
	}
}

可变参数必须放在最后面

public void dosomething2(int a,int...b)
	{	
                       System.out.println(b[0]);
	}

静态导入
直接导入方法的路径,就可以直接使用该方法,不通过方法名、类名去调用
import static 包名.类名.静态方法
优点:
使用静态导入可以使被导入的所有静态变量和静态方法在当前类直接可见,
使这些静态成员无需再给出它们的类名
缺点:
可读性差

import static java.lang.System.out;
public class StaticImport
{
	public static void main(String[] args)
	{
		out.println("helloworld");
	}

}

线程并发库
线程池:
用来存放并且运行线程的管理工具
所在包:
java.util.concurrent类库下的ExecutorService
Executor是线程池最顶级的接口,线程类的祖宗
Executors 工具类 创建线程池
ExecutorService 线程池的服务员 负责加入线程
用法1:
定义了线程池的大小为2,放5个线程进去,就会先执行2个,再执行2个,再执行1个

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadGroup
{
	public static class MyThread implements Runnable
	{
		public void run()
		{
			for(int i=0;i<50;i++)
			{
				System.out.println(Thread.currentThread().getName()+"="+i);
			}
		}
	}
	public static void main(String[] args)
	{
//		定义线程池,自己去确定它的大小
		ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(2);
		newFixedThreadPool.submit(new MyThread());
		newFixedThreadPool.submit(new MyThread());
		newFixedThreadPool.submit(new MyThread());
		newFixedThreadPool.submit(new MyThread());
		newFixedThreadPool.submit(new MyThread());
//      关闭线程池
		newFixedThreadPool.shutdown();

	}

}

用法2:
使用线程池计算1到100的和

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class ThreadGroup2
{
	public static class MyCallAble implements Callable
	{
		public Integer call() throws Exception
		{
			int sum=0;
			for(int i=1;i<=100;i++)
			{
				sum+=i;
			}
			return sum;
		}
	}
	public static void main(String[] args)
	{
//		定义线程池,自己去确定它的大小
		ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(2);
		Future submit = newFixedThreadPool.submit(new MyCallAble());
		Future submit2 = newFixedThreadPool.submit(new MyCallAble());
		Future submit3 = newFixedThreadPool.submit(new MyCallAble());
		Future submit4 = newFixedThreadPool.submit(new MyCallAble());
		Future submit5 = newFixedThreadPool.submit(new MyCallAble());
		try
		{
			System.out.println(submit.get());
			System.out.println(submit2.get());
			System.out.println(submit3.get());
			System.out.println(submit4.get());
			System.out.println(submit5.get());
		}
		catch (InterruptedException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (ExecutionException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
//      关闭线程池
		newFixedThreadPool.shutdown();

	}

}

内省
java.beans包下
内省最核心的一个类:Introspector
内省可以获取类的所有属性和方法,但是不能改变这些信息

BeanInfo beanInfo = Introspector.getBeanInfo(p.getClass());
			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
		    for(PropertyDescriptor property:propertyDescriptors)
		    {
		    	Method writeMethod = property.getWriteMethod();
		        System.out.println(writeMethod);
		    }
		    MethodDescriptor[] methodDescriptors = beanInfo.getMethodDescriptors();
		    for(MethodDescriptor md:methodDescriptors)
		    {
		    	System.out.println(md.getName());
		    }

内省一般用于后台的架构,例如xml解析
xml可以存放不规则并且少量的数据
XML的解析技术:
DOM4J 是一个第三方的jar包 使用频率非常高
核心类:SAXReader

CVPR 2023 中的半监督学习: FixMatch 的升级版 UniMatch 我们首先回顾下发表在 NeurIPS 2020 上的 FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence,FixMatch 是一种更轻量的半监督分类方法。如下图所示,FixMatch 首先使用模型(带标签数据训练后的)对弱增强的未标记图像进行预测,生成伪标签。对于给定的图像,只有在模型产生高置信度的预测时,伪标签才会被保留。然后,在输入同一图像的强增强版本时,训练模型预测伪标签。 阅读详情

相关推荐

EWF写保护功能详解:从安装到实战操作指南

本文详细介绍了EWF写保护功能的安装与实战操作指南。EWF(Enhanced Write Filter)通过重定向写入操作保护硬盘分区,特别适合需要长期稳定运行的系统场景。文章涵盖从安装准备、图形界面操作到命令行高级管理的全流程,并提供了常见问题的解决方案,帮助用户轻松掌握这一实用工具。

weixin_28710999的博客 446

java之枚举类的使用和可变参数的使用

1、定义枚举的示例 2、枚举值添加参数 3、枚举的映射 4、可变参数

zouyang920的博客 1152

拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场”

本文详细解析了IGBT模块失效分析的实战技巧,通过观察铝层熔化纹路、焊锡溢出形态等物理痕迹,手把手教你识别过压、过流、过温的典型失效模式。文章提供了从基础工具包到现场快速诊断的完整流程,帮助工程师精准定位IGBT模块失效的根本原因。

weixin_30655569的博客 426

Java 枚举类型与泛型

Object类为最上层父类,为了使程序更具有普适性,通常使传入返回的值都以Object类为主,当需要使用时必须进行类型转换。类名 < T > //T为类型名使用泛型定义的类可以在类中以一个通用符号表示数据类型,声明该类对象时再根据需求指定的真正类型,而在类的方法中传参时不再需要进行类型转换。//定义泛型类 private T over;//定义泛型成员变量 public T getOver() {} }泛型的参数类型只能是类类型,不能是简单类型,如A< int >是错误的。

zjh17393161150的博客 760

人脸关键点定义汇总

前几天看一份代码临时需要找49个人脸关键点位置定义的图片发现怎么百度都搜不到,最后幸好谷歌可以使用了就用谷歌搜到了。所以在这里汇总一下我所知道的人脸关键点的定义和相关的一点东西,以备不时之需。 68个关键点 最常用的工具是Dlib,网址:http://dlib.net/ dlib的68个特征点检测算法是ERT算法【1】 使用dlib检测68个特征点的python示例见:http://dlib.n...

程序媛 7642

ComfyUI整合包、秋叶ComfyUI、Florence节点报错下载并加载Florence2模型No module named ‘timm.layers‘、ComfyUI报错解决

步骤操作1打开2地址栏输入cmd并回车3输入命令:4安装完成后重新打开 ComfyUI,执行工作流,即可解决报错。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1243

泛型、迭代、foreach问题

如果在 foreach 循环中执⾏删除操作会导致 expectedModCount属性值与实际的 modCount 属性值不⼀致,从⽽导致迭代器的 hasNext() 和 next() ⽅法抛出ConcurrentModificationException 异常。为了避免这种情况,应该使⽤迭代器的 remove() ⽅法来删除元素,该⽅法会在删除元素后更新迭代器状态,确保循环的正确性。如果需要在循环中删除元素,应该使⽤迭代器的 remove() ⽅法,⽽不是集合⾃身的 remove() ⽅法。

inspirey的博客 965

继电保护原理1.2-反时限过流保护

反时限过流保护

让你爱上电路设计 1万+

Java学习16(泛型、foreach、MAP)

Java学习16 就是不怎么想看那个课题,还是看看老杜吧哈哈 泛型(Generic) JDK5.0之后推出的新特性:泛型 <> 用泛型来指定集合中存储的数据类型 用了泛型之后,集合中的元素类型就更统一了 泛型这种机制,只在程序编译阶段起作用,只是给编译器参考的(运行阶段意义不大) 泛型的好处: 第一:集合中存储的元素类型统一了 第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的“向下转型” 泛型的缺点: 导致集合中存储的元素缺乏多样性! 在实际

windyjcy的博客 237

具身智能中的(VLA)算法与实践——第一讲 基础与概览

本文介绍了视觉-语言-动作(VLA)模型的基础概念及其在AI领域的重要性。VLA模型通过融合多模态数据实现具身智能,使AI系统能感知环境并执行物理动作。文章探讨了大型语言模型(LLMs)和视觉语言模型(VLMs)如何赋能具身智能,包括指令解析、场景理解和动作规划。同时提供了Python、PyTorch/TensorFlow开发环境的详细搭建指南,包含GPU配置建议和测试代码。VLA模型在机器人操作、导航、人机协作等领域具有广泛应用前景,是实现通用人工智能的关键技术。

u012133341的博客 1599

深入浅出之CSPBlock模块(YOLO)

YOLO CSPX模块是YOLO系列算法中的一个重要组成部分,它通过跨阶段部分连接的方式减少了计算量,同时保证了模型的准确率。在YOLOv4及后续版本中,CSPX模块被广泛应用于主干网络和Neck结构中,为模型提供了强大的特征提取和融合能力。

浩瀚之水的专栏 6754

关于泛型——java自动拆箱,装箱,遍历循环(foreach)的理解

JAVA中泛型 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参...

qq_33915826的博客 706

软考高级系统架构设计师系列论文四十九:论微服务架构及其应用

软考高级系统架构设计师系列论文四十九:论微服务架构及其应用

zhengzaifeidelushang的博客 3194

JDK5 新特性

 JDK5新特性目录导航: 自动拆装箱 Foreach 静态导入 可变参数 Var args 枚举 格式化输出 泛型 ProcessBuilder 内省 线程并发库(JUC) 监控和管理虚拟机 元数据 自动拆装箱 Java数据类型分两种:基本数据类型 和  引用数据类型(对象) 有时候我们需要将基本数据类型包装为对象进行处理 在JKD5以前我们的处...

念念就忘 1793

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

各版本JDK新特性

一、jdk1.5新特性1.泛型通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出 ClassCastExceptions的可能。2.foreachfor(Object o : c) ,这种For循环更具可读性。3.自动拆箱装箱基本数据类型,在这些基本数据类型周围又有包装类4.枚举 提供编译时类型安全 都是对象,因此你不需要将他们放入集合中。 作为一种类的实现,因此你可以添加一些方法。 为枚举

混沌世界 5685

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【JDK笔记】JDK5 新增特性

JDK5 新增特性笔记 参考博客:JDK 5 新特性 自动拆装箱 Foreach 静态导入 可变参数 Var args 枚举 格式化输出 泛型 ProcessBuilder 内省 线程并发库(JUC) 监控和管理虚拟机 元数据 1.自动拆装箱 Java中的数据类型分为 基本数据类型 和 引用数据类型(即对象) 在一些时候我们需要将基本数据类型进行包装,使其能够作为一个对象进行处理,这...

龙套的博客 242

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JDK5新特性

JDK5新特性目录导航: 自动拆装箱 Foreach 静态导入 可变参数 Var args 枚举 格式化输出 泛型 ProcessBuilder 内省 线程并发库(JUC) 监控和管理虚拟机 元数据 自动拆装箱 Java数据类型分两种:基本数据类型 和 引用数据类型(对象) 有时候我们需要将基本数据类型包装为对象进行处理 在JKD5以前我们的处理方式...

weixin_30656145的博客 104

jdk5新特性

前两天看到jdk10试用版都出来了,才发现自己连1.8都没用过,对不同版本的jdk的新特性也不是太了解,所以想还是百度一下看看人家怎么说然后自己记录总结一下,其中jdk1.8的新特性可以到edu.51cto.com上学习一下,好了,现在说说jdk1.5的常用新特性吧。   (9个)   泛型,   foreach循环,   自动拆装箱,   类型安全的枚举,   ...

QQ40153258的博客 91

【Java利器】JDK5-9新特性解析+代码 - JDK5

1.泛型 通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能。 // new HashMap 此处需要指定map的类型 Map map = new HashMap(2); 2.foreach,更简洁的for循环 // 这种for循环更具可读性 for (Object obj: Objects) { // code }

YClimb的专栏 483

【Java 进阶】JDK 5 到 13 新特性(JDK 5、6、7、8、9 、10、11、12、13)

文章目录前言一、 JDK 51.自动装箱拆箱2.Foreach其他参考相关 前言 JDK从1.5版本开始,在官方的正式文档与宣传资料中已经不再使用类似JDK1.5的名称,只有程序员内部使用的开发版本号(Developer Version,例如java-version的输出)才继续沿用1.5、1.6、1.7和1.8的版本号,而公开版本号(Product Version)则改为JDK5、JDK6、...

长生的梦呓 766

jdk1.5、1.6、1.7新特性详细介绍(整理)

jdk1.5新特性1.泛型2.foreach3.自动拆箱装箱4.枚举5.静态导入(Static import)6.元数据(Metadata)7.线程池8.Java Generics 让我们详细讨论每个新特性,并看一些例子。 1、泛型(Generics)   泛型是JDK1.5中一个最“酷”的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出 ClassCastExceptions的...

Qstduenter的博客 627

java 1.5 下载地址_jdk1.5下载

jdk1.5是编程软件,也是非常常用java程序编程工具,这款1.5版也是针对多种环境设置的编程开发产品,使用比较广泛,如果你是再学习java编程的话,那么这款软件绝对是首选学习软件,需要的朋友可以来当易网下载使用哦!java jdk1.5介绍:JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广...

weixin_34441120的博客 1142

python jdk 32位_jdk1.5 32位官方下载

今天小编为大家带来的是jdk1.5 32位,此版本适用于32位操作系统,说到jdk很多做编程的朋友应该都不陌生,是java开发必不可少的一个开发工具包,需要的朋友不要错过,赶快下载吧!基本介绍JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包...

weixin_36269396的博客 307

JDK 11都有了,你还在用哪个版本?

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

2301_82242204的博客 522

32位java1.5_jdk1.5 32位 官方版 附安装教程

授权方式:免费软件软件类型:国产软件软件语言:简体中文软件大小:56.29 MB推荐星级:软件厂商:Home Page更新时间:2017-03-20 15:30网友评论:0 条运行环境:WinXP, Win2003, Vista, Win7, Win8, Win10软件介绍相关文章猜你喜欢网友评论下载地址今天小编为大家带来的是jdk1.5 32位,此版本适用于32位操作系统,说到jdk很多做编程...

weixin_42311349的博客 965

jdk 1.5 1.6 1.7 加入新特性

jdk1.5新特性1.泛型2.foreach3.自动拆箱装箱4.枚举5.静态导入(Static import)6.元数据(Metadata)7.线程池8.Java Generics 让我们详细讨论每个新特性,并看一些例子。 1、泛型(Generics)   泛型是JDK1.5中一个最“酷”的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出 ClassCastExceptions的可

qq_37788067的博客 363
上一篇: java 使用RandomAccessFile随机文件流 把一个文件分两次读取
下一篇: java XML解析
一JJL
博客等级 码龄8年 48粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值