大多数初级开发人员不知道的十个 Java 技巧!
2023-02-27 16:06:00来源:今日头条
有两种类型的开发人员,优秀的开发人员和聪明的开发人员,你是哪一种?掌握一些技巧能让我们变成一个聪明的开发人员。
1.main()函数的不同写法从使用 Java 的第一天开始,我们应该就会这么写:
(资料图片仅供参考)
public class Example { public static void main(String [ ] args){ System.out.println(“Hello World”); }}
那么你知道 main() 方法的不同写法吗?
方式一public class Example { public static void main(String . . . args){ System.out.println(“Hello World”); }}方式二
public class Example { static public void main(String . . . args){ System.out.println(“Hello World”); }}
看出什么差别了吗?
2.数值交换数值交换的典型写法:
class Example { public static void main(String a[]) { int x = 10; int y = 5; x = x + y; y = x - y; x = x - y; System.out.println("交换后的值为:"+ " x = " + x + ", y = " + y); }}
聪明的写法:
class Example { public static void main(String a[]) { int x = 10; int y = 5; y= x+y - (x=y); System.out.println("After swaping:"+ " x = " + x + ", y = " + y) }}3.没有main()函数的Java代码
{ static { System.out.println("Hello World!"); System.exit(0); // 防止“main method not found” 错误 }}4.测量程序运行时间
currentTimeMillis():返回自大纪元以来以毫秒为单位的当前时间,以长为单位。
long startTime = System.currentTimeMillis();long estimatedTime = System.currentTimeMillis() - startTime;
nanoTime():返回最精确的可用系统定时器的当前值,以纳秒为单位,以 long 为单位。nanoTime() 用于测量相对时间间隔而不是提供绝对时间。
long startTime = System.nanoTime();long estimatedTime = System.nanoTime() - startTime;5.检查奇数
常规写法:
public boolean oddOrNot(int num) { return num % 2 == 1;}
考虑到负奇数,除以 2 的余数不会是 1。因此,返回的结果将是 false,这是不正确的!
聪明的写法:
public boolean oddOrNot(int num) { return (num & 1) != 0;}
使用这段代码,不仅解决了负奇数的问题,而且这段代码也进行了高度优化。由于与除法和乘法相比,算术和逻辑运算要快得多,因此在第二个片段中可以更快地获得结果。
6.在 Java 中搜索字符串这可能不是所谓的技巧,但它是 Java 开发人员应该知道的东西。Java 提供了一个 indexOf() 的库方法。此方法与 String 对象一起使用,返回所需字符串的索引位置。如果未找到该字符串,则返回 -1。
public class Example { public static void main(String[] args) { String myString = "Hello String!"; if(myString.indexOf("String") == -1) { System.out.println("String not Found!"); } else { System.out.println("String found at: " + myString.indexOf("String")); } }}7.明智的判断
当我们做判断时,首先想到的是 If-else。这是在 Java 中做判断的最简单方法。如下:
class Example{ public static void main(String [ ] main){ int n1 = 5; int n2 = 10; if(n1>n2){ System.out.println(“n1 is greater”); } else{ System.out.println(“n2 is greater”); } }}
使用三木运算更加简洁:
class Ternary { public static void main(String[] args) { int n1 = 5; int n2 = 10; int max = (n1 > n2) ? n1 : n2; System.out.println("Maximum is = " + max); } }8.使用堆栈跟踪
捕捉错误可能是 Java 开发过程中最耗时的部分。堆栈跟踪能准确跟踪项目抛出异常的位置。
import java.io.*;Exception e = …;java.io.StringWriter sw = new java.io.StringWriter();e.printStackTrace(new java.io.PrintWriter(sw));String trace = sw.getBuffer().toString();9.使用 System.in.read() 进行用户输入
用户输入是任何应用程序的重要方面之一。Java 常见的方式为:
使用 Scanner 类使用 BufferedReader 类更简洁的方法:
import java.io.IOException;class ExamTest{ public static void main(String args[]) throws IOException{ int sn=System.in.read(); System.out.println(sn); }}10.小心使用字符串
如果在“for”循环中使用“+”运算符连接两个字符串,那么它每次都会创建一个新的字符串对象。这会导致内存浪费并增加执行时间。此外,在实例化字符串对象时,应避免使用构造函数,而应直接进行实例化。
//实例化慢,创建新对象String bad = new String("bad");
//实例化快String good = "good"