几个实用性强的java基础知识

223 阅读3分钟

这是我参与更文挑战的第22天,活动详情查看: 更文挑战

一、类变量

被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。

public class Test {     
// URL是一个常量   
public static final String URL = "http://localhost:8080"; 
}


二、条件运算符

也称为三元运算符,业务逻辑判断中经常会用到,用一句话概括就是非此即彼。

variable x = (expression) ? value if true : value if false
public class Test {   
public static void main(String[] args){     
int a , b;    
a = 10;     
b = (a == 1) ? 20 : 30; // a等于1吗?是的话就把20赋值给b,不是的话,30赋值给b     
b = (a == 10) ? 20 : 30; // a等于10吗?是的话就把20赋值给b,不是的话,30赋值给b  
} 
}
三、泛型

有时候你想写一个数组排序方法,可以是整型数组、字符串数组或者是任何其他类型的数组,这时候就可以用到java泛型来实现。

先写一个对对象数组的泛型排序方法,在调用该方法对具体的数组排序。

< E > 这是类型参数声明部分,放在方法返回结果类型前面。

如下声明的变量数组Array就是一个泛型,在for循环的条件判断语句中,也是用E来代替参数类型。

public static < E > void printArray( E[] Array )   {    
// 输出数组元素                     
for ( E e : Array ){                   
System.out.printf( "%s ", e );        
}        
System.out.println();    
}    
public static void main( String args[] )    {       
// 创建不同类型数组: Integer, Double 和 Character      
Integer[] intArray = { 1, 2, 3, 4, 5 };       
Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };    
Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };          
printArray( intArray  ); // 传递一个整型数组            
printArray( doubleArray ); // 传递一个双精度型数组       
printArray( charArray ); // 传递一个字符型数组    
} 

如上设置对于数组类型是无要求的,当然也可以有限制的泛型,这时候用到一个关键词“extends”,相当于是 继承 ‘类’和实现‘接口’。

   public static <T extends Object<T>> T test(T x, T y, T z)   {    
   }


有泛型方法,自然也有泛型类

比如一个结果类可以设计成泛型类,返回结果可以定义为各种类型。

public class Result<T> implements Serializable {

​    private T entry;

}
四、StringBuffer和StringBuilder

需要对字符串进行修改时,就要用到StringBuffer和StringBuilder类,对象能进行多次修改,不生成新的未使用对象。

StringBuilder较StringBuffer线程不安全,但是有速度优势。

常见的增删改都可以用StringBuilder,如果程序要线程安全就用StringBuffer。

注意这个再制定字符串后面追加字段的方法 append()。

五、循环语句

循环语句中的战斗机:增强循环

for(声明语句 : 表达式) {   //代码句子 }
for(Long orderId :orderIdList){
}

业务中经常就是循环一个dtoList用起来就很方便。

break关键词

戛然而止,顾名思义就是结束当前的循环,直接结束。

continue关键词

就是结束这一次循环,提前进入下一次循环,后面的语句都不再执行,直接到下一次的循环。