Java学习日志(八): 可变参数,debug断点调试,静态导入,集合嵌套
JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇)
Java学习日志(八)
- 可变参数
- debug断点调试
- 静态导入
- 集合嵌套
可变参数
JDK1.5之后的新特性
作用:当我们定义方法的时候,方法参数的数据类型已经确定,但是参数的个数不确定,就可以使用可变参数
格式
修饰符 返回值类型 方法名(数据类型...变量名){方法体;
}
底层原理
数据类型…变量名,传递参数个数可以是任意个(0,1,2,…n),会根据传递参数的个数,创建一个对应的数字,来存储这些参数,可以把可变参数看成一个数组,只是这个数组会根据参数个数产生变化
示例
public class Demo01 {public static void main(String[] args) {//int sum = getSum();//int sum = getSum(10);//int sum = getSum(10,20);int sum = getSum(10,20,30,40,50,60,70,80,90,100);System.out.println(sum);}//getSum(),会创建一个长度为0的数组,存储参数int[] arr = new int[]{}//getSum(10),会创建一个长度为1的数组,存储参数int[] arr = new int[]{10}//getSum(10,20),会创建一个长度为2的数组,存储参数int[] arr = new int[]{10,20}//getSum(10,20,30,40,50,60,70,80,90,100),会创建一个长度为10的数组,存储参数int[] arr = new int[]{10,20,30,40,50,60,70,80,90,100}private static int getSum(int... arr) {//System.out.println(arr);//[I@5fd0d5ae//System.out.println(arr.length);//定义一个变量,初始值为0,记录累加求和int sum = 0;for (int i : arr) {//累加和求sum += i;}return sum;}
}
注意事项
- 一个参数列表中,只能包含一个可变参数
public static void method(int...a,int...b){}//报错
- 参数列表中有多个参数,可变参数需要写在末尾
public static void method(int a,String b,double d,int...arr){}
- 可变参数终极写法
public static void method(Object...o){}
debug断点调试
作用:
- 查找程序执行的流程
- 调试程序运行过程中出现的一些问题
使用步骤:
- 在行号的左边,鼠标左键单击增加一个断点
- 右键debug执行
- 程序就会停止到添加的第一个断点处
快捷键:
- F8:逐行执行代码
- F7:进入到方法中
- Shift+F8:跳出方法
- F9:跳到下一个断点,没有下一个断点,程序结束
- Ctrl+F2:停止debug,也会停止程序
- console:切换到控制台
- variables:显示程序中所有变量的区域
静态导入
JDK1.5新特性,静态导入
作用:减少开发的代码量
标准写法:导入包的时候才能使用
import static java.lang.System.out;
最末尾(out),必须是一个静态成员
示例
import java.util.ArrayList;import static java.util.Collections.sort;
import static java.lang.System.out;
public class Demo01 {public static void main(String[] args) {out.println(1);//System.out.println(1);out.println(2);ArrayList<Integer> list = new ArrayList<>();list.add(2);list.add(1);list.add(3);sort(list);//Collections.sort(list);out.println(list);}
}
集合嵌套
集合可以随意嵌套(Map可以嵌套Collection,Collection也可嵌套Map)
示例
public class Demo01 {public static void main(String[] args) {//定义一个存储省份名称和城市的Map集合Map<String, ArrayList<String>> map = new HashMap<>();//创建存储城使的ArrayList<String>集合ArrayList<String> hb = new ArrayList<>();hb.add("石家庄");hb.add("张家口");hb.add("承德");hb.add("邯郸");ArrayList<String> nmg = new ArrayList<>();nmg.add("呼和浩特");nmg.add("包头");nmg.add("赤峰");nmg.add("锡林郭勒");ArrayList<String> gd = new ArrayList<>();gd.add("深圳");gd.add("广州");gd.add("东莞");gd.add("赤峰");//添加到map中map.put("河北省",hb);map.put("内蒙古",nmg);map.put("广东省",gd);//遍历map集合:keySet+增强forSet<String> set = map.keySet();for (String key : set) {//通过key获取valueArrayList<String> value = map.get(key);//遍历ArrayList集合for (String cityName : value) {System.out.println(key+"-->"+cityName);}}}
}
Java学习日志(八): 可变参数,debug断点调试,静态导入,集合嵌套相关推荐
- Java学习第十二天----方法参数类型以及返回值类型问题、链式编程、package包、权限修饰符、内部类、成员内部类
Java学习第十二天----方法参数类型以及返回值类型问题.链式编程.package包.权限修饰符.内部类.成员内部类 1.方法参数类型: (1)类名作为形式参数: public class MyTe ...
- 题解,java学习日志(3)
题解 U - 速算24点 D - Bank(标记) E.2xN Grid C.Findand Replace D.Odd Queries 搜索题组 U - 速算24点 思路:map映射将特定字符转化成 ...
- python中debug断点调试
python Debug 断点调试 断点(break point)是指在代码中指定位置,当程序运行到此位置时变中断下来,并让开发者可查看此时各变量的值.因断点中断的程序并没有结束,可以选择继续执行. ...
- Java基础笔记 – 枚举类型的使用介绍和静态导入
Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由 arthinking 发表于404 天前 ⁄ Java基础 ⁄ 暂无评论 ⁄ 被围观 1,433 views+ 1.枚举(Enum): JD ...
- java 使用反射调用可变参数方法
使用反射操作对象-调用可变参数方法 要把可变参数都当做是其对应的数组类型参数; 如 show(XX... is)作为show(XX[] is)调用; 若可变参数元素类型是引用类型: JDK内部接收到参 ...
- Java方法4:可变参数
可变参数 这是从 JDK 1.5才开始有的特性(Java支持传递同类型的可变参数给一个方法) 在方法声明中在指定的参数类型后面加三个点(-) public static void main(Strin ...
- JAVA学习第八周总结
CSS定位属性 <!DOCTYPE html> <html><head><meta charset="utf-8" /><ti ...
- 【Java学习笔记八】包装类和vector
包装类 在Java语言中,每一种基本的数据类型都有相应的对象类型,称为他们基本类型的包装类(包裹类). 字节byte:Byte.短整数型short:Short 标准整数型int:Integer.长整数 ...
- java周志第二周_第二周JAVA学习日志
从这周老师讲的东西中,我了解了许多以前不懂得东西.这周老师布置的作业,对我来说真的有点困难.通过上课的学习和下来翻书,勉强完成了一个登录界面的制作.这周学习的事件处理和swing组建以及swing组建 ...
最新文章
- 【delphi】Byte数组与String类型的转换
- [ARM-assembly]-ARMv8-A64指令集总结和学习
- unresolved external symbol怎么解决_收藏!用Kubernetes和PKS 1.5解决Windows Server2008的问题...
- python中的引用类型_Python 中的引用和类属性的初步理解
- 传递function_boost库function与bind
- 跟益达学Solr5之使用Tika从PDF中提取数据导入索引(转字:http://www.tuicool.com/articles/JfUfaey)
- Anaconda python3.6版本下载
- 有关计算机科学导论的说法,计算机科学导论__练习题_汇总.docx
- java 单向链表 双向链表_java 单向链表与双向链表的实现
- python if elif else
- ACM-ICPC 2018 南京赛区网络预赛Sum,线性筛处理积性函数
- LaTex中“图片引用失败,显示(??)”的解决办法
- 日历的java包_java11教程--包java.time.chrono介绍
- 34个非常实用的JS一行代码
- 数据分析案例-电影数据分析
- 服务器数据库只读怎么修改权限,设置mysql数据库为只读权限
- java jks 转pfx_JKS、BKS、PFX证书格式之间转换
- Spring错误——Spring 注解——factory-bean reference points back to the same bean definition
- 用D3.js绘制完整的流程图demo
- Windows下的gotoxy 函数