在JAVA中如何跳出当前的多重嵌套循环?

package com.study.Cyclic;import org.junit.Test;/*** @Description 在JAVA中如何跳出当前的多重嵌套循环? * @Classname ForDemo* @Date 2021/9/4 15:21* @Created by 折腾的小飞*/
public class ForDemo {/*在外层定义标号 XX:在里层循环体使用带有标号的break语句*/@Testpublic void test1() {System.out.println("测试标号");xx:
//        System.out.println("测试标号"); 好像编号下面不能加其他语句for (int i = 0; i < 10; i++) {for (int j = 0; j < 10; j++) {System.out.println("i:" + i + "," + "j:" + j);if (j == 5) {break xx;}}}System.out.println("测试标号");}/*通过变量控制查找元素*/@Testpublic void test2() {int arr[][] = {{1, 2, 3}, {4, 5, 6, 7}, {9}};boolean found = false;for (int i = 0; i < arr.length && !found; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println("i=" + i + ",j=" + j);if (arr[i][j] == 5) {found = true;break;}}}}
}


switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

package com.study.JavaBase;import org.junit.Test;/*** @Description switch语句能否作用在byte上,能否作用在long上,能否作用在String上? * @Classname switchDemo* @Date 2021/9/4 15:38* @Created by 折腾的小飞*/
public class switchDemo {@Testpublic void test1(){Long numLong=234L;/*Incompatible types. Found: 'java.lang.Long',required: 'char, byte, short, int, Character, Byte, Short, Integer, String, or an enum'参数可以是Byte和String,不能是Long*/switch (numLong){case 234L:System.out.println(true);break;default:System.out.println(false);}}
}

short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

package com.study.JavaBase;import org.junit.Test;/*** @Description short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?* @Classname AssigningOperatorDemo* @Date 2021/9/4 16:23* @Created by 折腾的小飞*/
public class AssigningOperatorDemo {@Testpublic void test(){short s1=1;System.out.println(s1 = (short) (s1 + 1)); // 提示提升类型为int,int赋给short需要强制转型System.out.println(s1 += 1); // += 会进行特殊处理}
}

Math.round(11.5)等于多少? Math.round(-11.5)等于多少?

package com.study.JavaBase;import org.junit.Test;/*** @Description Math.round(11.5)等于多少? Math.round(-11.5)等于多少?* @Classname RoundDemo* @Date 2021/9/4 16:28* @Created by 折腾的小飞*/
public class RoundDemo {@Testpublic void test(){System.out.println(Math.floor(11.5)); //向下取整System.out.println(Math.floor(-11.5)); //向下取整System.out.println(Math.ceil(11.5)); // 向上取整System.out.println(Math.ceil(-11.5)); // 向上取整System.out.println(Math.round(11.5)); // 11.5+0.5 向下取整 12System.out.println(Math.round(-11.5)); // -11.5+0.5 向下取整 -11}
}

StringStringBuffer的区别

JAVA平台提供了两个类:StringStringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String类提供了数值不可改变的字符串。
StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。
典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。

如何把一段逗号分割的字符串转换成一个数组?

package com.study.JavaBase;import org.junit.Test;import java.util.Arrays;
import java.util.StringTokenizer;/*** @Description 如何把一段逗号分割的字符串转换成一个数组?* @Classname SegmentationStrDemo* @Date 2021/9/4 16:38* @Created by 折腾的小飞*/
public class SegmentationStrDemo {static String str = "我是,一个,不开森的,程序员"; // 有中文和英文逗号static String strEng = "我是 ,一个 ,不开森的 ,程序员"; // 英文逗号@Testpublic void testRegx() {String[] split = str.split("[\\,\\,]+"); // 正则匹配出现中文和英文符号,出现1次或多次System.out.println(split.length);for (String s : split) {System.out.println(s);}}
/*
Java StringTokenizer 属于 java.util 包,用于分隔字符串。StringTokenizer 构造方法:1. StringTokenizer(String str) :构造一个用来解析 str 的 StringTokenizer 对象。java 默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)。
2. StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
StringTokenizer 常用方法:1. int countTokens():返回nextToken方法被调用的次数。
2. boolean hasMoreTokens():返回是否还有分隔符。
3. boolean hasMoreElements():判断枚举 (Enumeration) 对象中是否还有数据。
4. String nextToken():返回从当前位置到下一个分隔符的字符串。
5. Object nextElement():返回枚举 (Enumeration) 对象的下一个元素。
6. String nextToken(String delim):与 4 类似,以指定的分隔符返回结果。*/@Testpublic void StringTokenizerDemo() {StringTokenizer tokenizer = new StringTokenizer(strEng," ,");while (tokenizer.hasMoreTokens()){System.out.println(tokenizer.nextToken());}}
}



感觉还是split好用一些,可以匹配任意字符
StringTokenizer可以匹配连续的多个字符

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

也许你的答案是在return之前,但往更细地说,我的答案是在return中间执行,请看下面程序代码的运行结果:

public  class Test {public static void main(String[] args) {System.out.println(new Test().test());;}static int test(){int x = 1;try{return x;}finally{++x;}}
}
/*
---------执行结果 ---------
1
return x; 在程序执行到这一步的时候,这里return 1; 这个返回路径就确定了
但是呢,它发现后面还有finally,所以继续执行finally的内容,++x; x为2
再次回到以前的返回路径,继续走 return 1;
*/
public class smallT
{public static void main (String args[]){smallT t = new smallT();int b = t.get();System.out.println(b);}public int get(){try{return 1;}finally{return 2;}}
}
/*
返回的结果是2。我可以通过下面一个例子程序来帮助我解释这个答案,
从下面例子的运行结果中可以发现,
try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,
所以,返回的结果是2。
return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,
此时函数并不是马上返回,它要执行finally语句后才真正开始返回。
*/
public  class Test {public static void main(String[] args) {System.out.println(new Test().test());;}int test(){try{return func1();}finally{return func2();}}int func1(){System.out.println("func1");return 1;}int func2()
{System.out.println("func2");return 2;}
}
/*
-----------执行结果-----------------func1
func2
2
*/

结论finally中的代码比return 和break语句后执行

Java基础关键知识点(1)相关推荐

  1. 这些Java基础面试知识点,你都掌握了吗?

    想了解一下学Java的小伙伴们,在学习Java的时候有没有去总结知识点,哪些知识点我们没有掌握,哪些知识点是我们还没有掌握的,今天小编来发掘一些Java基础面试知识点,不知道大家掌握没有. 小编分享的 ...

  2. 清华学长免费分享Java基础核心知识点基础篇(2)

    Java编程作为入门比较容易的编程语言,发展前景很好,非常适合零基础的小白入门学习. 对所学知识点没有全面了解,学习的过程中容易进入误区,影响学习进度,成从入门到放弃.所以,今天播妞整理了一些适合小白 ...

  3. java基础教程知识点,[Java教程]js基础知识点总结

    [Java教程]js基础知识点总结 0 2016-11-01 21:00:04 如何在一个网站或者一个页面,去书写你的js代码: 1.js的分层(功能):jquery(tool) 组件(ui) 应用( ...

  4. java基础加强知识点

    文章目录 day01[Object类.常用API] day02[Collection.泛型] day03 [List.Set.数据结构.Collections] day04 [Map] day05 [ ...

  5. java基础 小知识点汇总篇

    1.&和&& |和|| 的区别? a&b,会执行a,执行b ,得出结论 a&&b,会执行a,如果a false,则不执行b,直接返回false 2.Ma ...

  6. Java 基础常见知识点面试题总结(上)

    基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...

  7. Java 基础常见知识点面试题总结(上),2022 最新版

    基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...

  8. Java 基础常见知识点面试题总结(上),2022 最新版!

    基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...

  9. Java基础零碎知识点,有这一篇就够了!

    Java零碎知识点整理 Java命名规范 数据类型 三元运算符 Random类 switch语句 方法重载 方法的参数传递 ArrayList集合创建 基本数据类型对应的引用数据类型 创建集合的代码实 ...

最新文章

  1. redis最大储存512m_redis系列篇01
  2. Spring越来越强,而我们越来越快餐!离开了Spring,居然API都写不出来了!
  3. Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化
  4. RF设计天线 PI型匹配layout注意事项–物联网设计小技巧
  5. Android --- Serializable 接口与 Parcelable 接口的使用方法和区别,怎么选择?
  6. 软件项目验收的准备工作
  7. 由手机上网带来病毒引发的三大疑问?
  8. [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
  9. [ZJOI2016]旅行者(网格图分治最短路)
  10. P1032-字串变换【bfs】
  11. C-Power 自主无人海上电力系统有望通过高效能源传输及远程高带宽通信技术,开启新的海上应用
  12. thinkphp视图中插入php代码
  13. OBIEE中设置动态变量为列名
  14. 操作系统 - 调度算法(高响应比优先算法)
  15. TOM邮箱|163邮箱如何注册?怎么登陆?
  16. 电脑安全证书错误怎么处理比较好
  17. 【模式串匹配】Aho-Corasick algorithm - AC字符串匹配算法实现与测试【Python】
  18. Spring:applicationContext.xml的头文件信息
  19. Python使用Eel和HTML开发桌面应用
  20. OpenStack T版服务组件--Keyston身份服务

热门文章

  1. maven仓库读取顺序
  2. 双 JK 触发器 74LS112 逻辑功能。真值表_时序逻辑电路设计(一):同步计数器...
  3. 女孩子取名起名字:寄托希望、字字用心的女孩名字
  4. 网络爬虫-今日头条-街拍
  5. bugly热更新、多渠道集成及加固问题
  6. 在什么场景下要使用类方法
  7. 复数类 class complex
  8. JavaScript中常用的API
  9. 公历转农历matlab,公历转农历
  10. android硬编解码MediaCodec