本文主要是介绍java古怪代码(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- public class AutoboxTester {
- public static void main(String[] args) {
- Integer i1 = 127;
- Integer i2 = 127;
- System.out.println(i1 == i2);
- Integer i3 = 128;
- Integer i4 = 128;
- System.out.println(i3 == i4);
- }
- }
返回的结果:
- true
- false
在java中从-127到127之间的值是不可变的wrapper类型,jvm会对 i1 与 i2 使用同样的对象实例和同样的内存地址,所以,== 运算的结果是true。
(2)可变长度的参数list
- /**
- * 测试可变参数
- * @author jond
- *
- */
- public class VarargTester {
- public static void printArg(String… strings){
- System.out.println("方法一:/n strings.length="+strings.length);
- for (int i = 0; i < strings.length; i++) {
- System.out.print(strings[i]+" ");
- }
- }
- public static void printArg(String str,String[] strings){
- System.out.println("方法二:/n ");
- System.out.println(" strings.length="+strings.length);
- for (int i = 0; i < strings.length; i++) {
- System.out.print(strings[i]+" ");
- }
- }
- public static void main(String[] args) {
- //调用方法一
- VarargTester.printArg();
- VarargTester.printArg("a","b","c");
- VarargTester.printArg("a","b","c","d");
- String[] strings={"a","b","c"};
- //调用方法二
- VarargTester.printArg("eee", strings);
- }
- }
- 方法一:
- strings.length=0
- 方法一:
- strings.length=3
- a b c 方法一:
- strings.length=4
- a b c d 方法二:
- strings.length=3
- a b c
注解:
- public static void printArg(String… strings)
代码一中的String… strings,在编译器会被解读成String[] strings,效果如以下代码(代码二)。代码一和代码二不能同时定义在一个类中。
- public static void printArg(String[] strings)
代码一和代码二有类似的效果,但调用的方式完全不一样:
- VarargTester.printArg();
- VarargTester.printArg("a","b","c");
- VarargTester.printArg("a","b","c","d");
- public class MathUtils {
- /**
- * 求最大值,没传参数时返回Integer.MIN_VALUE
- * @param values
- * @return
- */
- public static int max(int… values){
- int max = Integer.MIN_VALUE;
- for(int i : values){
- if(i > max)
- max = i;
- }
- return max;
- }
- public static void main(String[] args) {
- System.out.println(MathUtils.max());
- System.out.println(MathUtils.max(0,1,2,12,3));
- System.out.println(MathUtils.max(2,43,566,32,23,23,23,234));
- }
- }
(3)静态import
- import static java.lang.System.out;
- import static java.util.Arrays.sort;
- public class ImportTester {
- public static void main(String[] args) {
- //等同于System.out.println("abc");
- out.println("abc");
- int[] i = {2,1,3};
- for(int a : i )
- out.print(a+" ");
- sort(i);
- for(int a : i )
- out.print(a+" ");
- }
- }
静态import 可以应用在静态method和静态变量上。
(4)Formatter格式化输出
- import java.util.Formatter;
- public class FormatterTester {
- public static void main(String[] args) {
- StringBuilder sb = new StringBuilder();
- float balance = 223.33522f;
- String str = "String values";
- Formatter formatter = new Formatter(sb);
- formatter.format("格式化输出balance的值(float):$%.2f "
- +"字符串值:%s",balance,str);
- System.out.println(sb.toString());
- System.out.printf("格式化输出balance的值(float):$%.2f "
- +"字符串值:%s",balance,str);
- }
- }
- 格式化输出balance的值(float):$223.34 字符串值:String values
- 格式化输出balance的值(float):$223.34 字符串值:String values
语法类似C语言中的printf,习惯用C语法的可以试试这个。
这篇关于java古怪代码(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!