`
步青龙
  • 浏览: 295716 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

Java基础特殊应用

阅读更多

古老的代码,java代替goto,代码没有实际的意思,测试这种功能而已。注释解释啦功能。不知道还有没人会这样用。只是测试下这个功能。

 

Java代码 
  1. aa: if (true) {  
  2.     int a = 101;  
  3.     if (a == 10) {  
  4.         System.out.println("==10");  
  5.     } else {  
  6.         break aa;  
  7.     }  
  8.     System.out.println("last");// 如果a不等于10的话就跳出aa代码块,不会打印last  
  9. }  
  10.   
  11. bb: for (int num = 1; num <= 5; num++) {  
  12.     System.out.println("--------------- 第一层循环: " + num);  
  13.     for (int i = 0; i < 3; i++) {  
  14.         if (num == 4)  
  15.             continue bb;    
  16.         System.out.println("第二层循环: " + i);  
  17.     }  
  18. }  

 

1  三元运算符 对于只有赋值的形式的if else if else if 如果很多的话,不妨试试三元运算符,多三元运算符:

 

 

 

public class Test {
	public static String test1(String args){
		if(args.equals("a1")){
			if (!args.equals("a1")) {
				return "a other!";
			}
			return "a1";
		}else{
			if (!args.equals("b1")) {
				if (args.equals("b2")) {
					return "b2";
				}else{
					return "b other!";
				}
			}
			return "b1";
		}
	}
	public static String test2(String args){
		return args.equals("a1")?
				( args.equals("a1")?"a1":"a other!" ):
				( args.equals("b1")?"b1":
					(args.equals("b2")?"b2":"b other!") );
	}
	public static void main(String[] args) {
		
		System.out.println(test1("a1"));
		System.out.println(test2("a1"));
		System.out.println("-------------");
		
		System.out.println(test1("b1"));
		System.out.println(test2("b1"));
		
		System.out.println("===============");
		
		System.out.println(test1("a1d"));
		System.out.println(test2("a1d"));
		System.out.println("-------------");
		
		System.out.println(test1("b1d"));
		System.out.println(test2("b1d"));
		
		System.out.println("===============");
		
		System.out.println(test1("b2"));
		System.out.println(test2("b2"));
		System.out.println("-------------");
 
	}
}
 

对于if(if else) else( if else)更简单

三目运算符的效率和if else差不多,一亿次的运算也相差32毫秒左右,而加强的for比普通的for效率要高很多,不到一倍,本地的测试:

 

int[] arrays = new int[10000];
		int[] results = new int[10000];
		long startTime = System.currentTimeMillis();
		for (int i = 0; i < arrays.length; i++) {
		    for (int j = 0; j < arrays.length; j++) {
		     results[j] = arrays[j];
		    }
		   }
		 long  endTime = System.currentTimeMillis();
		 System.out.println("普通for循环:" + (endTime - startTime) + "毫秒");
		 startTime = System.currentTimeMillis();
		 for (int i : arrays) {
		    for (int j : arrays) {
		     results[j] = arrays[j];
		    }
		   }
		 endTime = System.currentTimeMillis();
		 System.out.println("加强for循环:" + (endTime - startTime) + "毫秒");
		 
 

 

结果如下:

普通for循环:360毫秒

加强for循环:250毫秒

 

下面的代码集中方法是同一种效果

 

	public static void main(String[] args) {
		boolean boo1 = "415sdg".matches("\\^\\d \\$ ");// if it contains the
		boolean boo2 = "1515151515".matches("\\d*"); // if it not contains
		String a = "a";
		System.out.println(threetype(a));
		System.out.println(ifelse(a));
		System.out.println(ifelse(a));
		System.out.println(zhezhong(a));
		System.out.println(zhezhong2(a));
		a = "b";
		System.out.println("===================");
		System.out.println(threetype(a));
		System.out.println(ifelse(a));
		System.out.println(ifelse(a));
		System.out.println(zhezhong(a));
		System.out.println(zhezhong2(a));
		a = "c";
		System.out.println("===================");
		System.out.println(threetype(a));
		System.out.println(ifelse(a));
		System.out.println(ifelse(a));
		System.out.println(zhezhong(a));
		System.out.println(zhezhong2(a));
		a = "d";
		System.out.println("===================");
		System.out.println(threetype(a));
		System.out.println(ifelse(a));
		System.out.println(ifelse(a));
		System.out.println(zhezhong(a));
		System.out.println(zhezhong2(a));
		a = "d6%^&*(((()_++++|";
		System.out.println("===================");
		System.out.println(threetype(a));
		System.out.println(ifelse(a));
		System.out.println(ifelse(a));
		System.out.println(zhezhong(a));
		System.out.println(zhezhong2(a));
	}

	public static String threetype(String args) {
		return "a".equals(args) ? "a" : ("b".equals(args) ? "b" : ("c"
				.equals(args) ? "c" : ("d".equals(args) ? "d" : "other!")));
	}

	public static String ifelse(String args) {
		String a = "";
		if ("a".equals(args)) {
			a = "a";
		} else {
			if ("b".equals(args)) {
				a = "b";
			} else {
				if ("c".equals(args)) {
					a = "c";
				} else {
					if ("d".equals(args)) {
						a = "d";
					} else {
						a = "other!";
					}
				}
			}
		}
		return a;
	}

	public static String zhezhong(String args) {
		String a = "";
		boolean boo = "a".equals(args) || "b".equals(args) || "c".equals(args)
				|| "d".equals(args);
		if (boo) {
			a = args;
		} else {
			a = "other!";
		}
		return a;
	}

	public static String zhezhong2(String args) {
		boolean boo = "a".equals(args) || "b".equals(args) || "c".equals(args)
				|| "d".equals(args);
		return boo ? args : "other!";
	}

一种是if else太多看的人头晕,一种是代码让人看着苦涩难懂。一种是代码臃肿,一种是代码简洁。 那么你更喜欢那种呢?

 

	public String toman(String inrole){
		return  
		"a".equals(inrole)? 
				"a":("b".equals(inrole)?
				"b":("c".equals(inrole)?
				"c":("d".equals(inrole)?
				"d":"others!")
		));
	}
分享到:
评论
1 楼 Coder211 2011-03-01  
不错,文章写的很好!不过多个三元运算符,严重的降低了可读性,很不好!

相关推荐

    Java基础应用实例

    "Java基础应用实例"这个主题旨在为初学者提供一系列实用的示例,帮助他们理解和掌握Java编程的基本概念。这些实例覆盖了从简单的数据类型、控制结构到面向对象编程的各个方面,为初学者提供了实践和探索的平台。 1....

    \Java基础类 \Java基础类

    Java基础类是Java编程中的核心组成部分,主要涵盖了Java标准库中的各种基础类和接口,用于构建复杂的GUI(图形用户界面)应用。Java基础类(JFC,Java Foundation Classes)是Sun Microsystems为提升Java GUI功能而...

    Java基础尚硅谷宋红康学习笔记

    【Java基础】 Java是一种广泛使用的面向对象...这些是Java基础知识和高级技术的主要组成部分,掌握它们能够帮助开发者构建稳定、高效、可维护的Java应用程序。通过深入学习和实践,你可以不断提升自己的Java编程能力。

    javaoop基础和应用

    【Java OOP基础和应用:抽象类与final类】 面向对象编程(OOP)是Java的核心,其中抽象类和final类是两个关键概念,它们帮助我们实现代码的封装、继承和多态性。 **5.6.1 抽象类** 抽象类在Java中是一种特殊类型...

    java基础知识总结

    JavaSE 是桌面应用程序的开发基础,JavaEE 是企业环境下的应用程序开发,而 JavaME 是用于电子消费产品和嵌入式设备的开发。 Java 的开发和运行环境是 JDK(Java Development Kit),包括 Java 语言的开发工具和 ...

    java基础知识技术

    ### Java基础知识技术详解 #### 一、Java语言概述 ##### 1.1 Java简介 Java是一种面向对象的编程语言,自1995年由Sun Microsystems公司发布以来,因其跨平台性和强大的功能,在软件开发领域占据了重要的地位。...

    《Java基础案例教程(第2版)》课后习题答案1

    【Java基础知识点】 1. **Java的起源与特性** - Java是由SUN Microsystems公司(后被Oracle收购)开发的一种面向对象的编程语言。 - Java有三个主要版本:Java Standard Edition (JavaSE),用于桌面应用;Java ...

    java基础整理笔记超详细

    【Java基础整理笔记超详细】 Java是一门广泛使用的高级编程语言,由Sun Microsystems(后被Oracle收购)在1995年推出。它的设计目标是跨平台、面向对象,并且具有健壮性和安全性。Java这个名字源于印度尼西亚的咖啡...

    Java基础知识加强

    Java是一种广泛使用的面向对象的编程语言,...总的来说,Java基础知识的加强不仅涉及语言语法,还包括工具的熟练使用和新特性的理解和应用。通过深入理解并实践这些知识点,开发者能够编写出更高效、更安全的Java代码。

    魔乐Java基础

    ### 魔乐Java基础知识点详解 #### 一、Java基础概述 在《魔乐Java基础》这门课程中,主要涵盖了Java编程语言的基础部分,包括但不限于语法基础、面向对象编程(OOP)、异常处理、多线程编程等内容。通过本课程的学习...

    Java基础编程实例

    Java基础编程实例是Java初学者入门的绝佳资源,它涵盖了Java语言的核心概念和技术。这个教程旨在帮助新手理解并掌握Java编程的基本元素,从而能够独立编写简单的程序。以下是一些主要的知识点: 1. **Java环境配置*...

    java基础的详细案例笔记

    Java基础是编程世界中至关重要的一步,尤其对于初学者来说,掌握好Java基础知识将为后续的进阶学习打下坚实的基础。"Java基础的详细案例笔记"无疑是一份宝贵的资源,它涵盖了学习Java过程中最核心的概念和实战技巧。...

    java基础知识java基础知识java基础知识java基础知识

    根据提供的信息,我们可以深入探讨Java基础知识中的几个关键概念:JVM、JRE与JDK的关系、类与对象的关系、接口的定义与实现以及包的概念。 ### 1. JVM、JRE与JDK之间的关系 #### JVM (Java Virtual Machine) - **...

    Java 基础核心总结_.zip

    16. **关于null的处理方式**:在Java中,null是一个特殊的值,代表没有对象引用。理解null的性质,避免空指针异常(NullPointerException),以及使用Optional类等现代实践来处理null,是提高代码质量的关键。 以上...

    Java 基础知识总结(超级经典)

    ### Java基础知识总结(超级经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人发起的Oak项目,最初目标是为了控制嵌入式设备,如有线电视交换盒和个人数字助理(PDA)。...

    java基础理论论习题

    本资源包包含了针对不同学习阶段的Java基础习题,旨在帮助学习者逐步深入理解Java的核心概念。 1. **基本语法与数据类型** Java的基础语法包括变量声明、常量定义、运算符使用等。数据类型分为基本数据类型(如int...

    Java 基础核心总结.pdf

    Java分为三个主要平台版本:Java SE(标准版)用于桌面应用,Java EE(企业版)用于服务器端应用开发,Java ME(微型版)则适用于移动设备和嵌入式系统。Java的设计哲学是“一次编写,到处运行”(Write Once, Run ...

    Java基础核心总结.PDF

    总的来说,Java基础知识覆盖了编程语法、面向对象、异常处理、集合、泛型、反射、I/O、枚举、注解等多个方面,掌握这些知识点对于Java开发者来说至关重要,尤其是在面试过程中,能够体现出对Java的深入理解和实践...

Global site tag (gtag.js) - Google Analytics