📜  Oracle 认证Java助理 (OCA) 考试准备

📅  最后修改于: 2022-05-13 01:55:31.597000             🧑  作者: Mango

Oracle 认证Java助理 (OCA) 考试准备

朋友们!我最近参加了 OCA 考试并获得了 95% 的分数。在这里,我将分享一些技巧和考试题型,这些技巧和考试题型在 OCA 考试中一定会对您有所帮助。该考试保证就以下主题提出问题,或者我们可以说出陈述。
考试代码:1Z0-808

1.必须练习str1 == str2和str1.equals(str2)的区别。
示例 1.1

class Test {
    public static void main(String[] args)
    {
        String s = new String("hello");
        String s2 = "hello";
  
        if (s == s2) {
            System.out.println("==");
        }
  
        if (s.equals(s2)) {
            System.out.println("equals");
        }
    }
}
输出:
equals

原因:因为 String 类等于方法比较对象,但 ==运算符只比较引用。如果两个引用都指向同一个对象,那么只有 ==运算符返回 true。

示例 1.2

class Test {
    public static void main(String[] args)
    {
        String s = new String("hello");
        String s2 = s;
  
        if (s == s2) {
            System.out.println("==");
        }
  
        if (s.equals(s2)) {
            System.out.println("equals");
        }
    }
}
输出:
==
equals

原因:因为两个引用都指向同一个对象,所以打印“==”,如果两个引用都指向同一个对象,所以默认情况下它们相等,所以打印“等于”。

2.研究三元运算符及其编译时错误。

示例 2.1

class Test {
    public static void main(String[] args)
    {
        int marks = 90;
        String result = marks > 35 ? "Pass" : "Fail";
        System.out.println(result);
    }
}
输出:
Pass

示例 2.2

class Test {
    public static void main(String[] args)
    {
        int marks = 90;
        String result = marks > 60 ? "Pass with 1st div."
                        : marks < 50 ? "Pass with 2nd div." : 
                          marks < 40 ? "Pass with 3nd div.";
        System.out.println(result);
    }
}

输出:编译时错误
原因:分数<40? “通过第 3 格。”没有完成。
更正:标记 < 40 ? “通过第 3 格。” :“失败”

3.研究“字符串对象是不可变的”规则。
示例-3.1

class Test {
    public static void main(String[] args)
    {
        String ta = "A ";
        ta = ta.concat("B ");
        String tb = "C ";
        ta = ta.concat(tb);
        ta.replace('C', 'D');
        ta = ta.concat(tb);
        System.out.println(ta);
    }
}
输出:
A B C C

4. Lambda 表达式及其简化形式。

Java Lambda 表达式语法:
(参数列表)-> {body}
4.1 Lambda 表达式示例:无参数

// This a java method
void printHello()
{
    System.out.println("Hello World ");
}
  
Or
  
// As lambda the above method can be written as below
() -> { System.out.println("Hello World "); };
 
Or
  
// {} is optional for single line statement
() -> System.out.println("Hello World ");

4.2 Lambda 表达式示例:单参数

// This a java method
void sayHello(String name)
{
    System.out.println("Hello " + name);
}
  
Or
  
(name) -> { System.out.println("Hello " + name); };
  
Or
  
// {} optional
(name) -> System.out.println("Hello " + name);
  
Or
// () optional for single input parameter.
name -> System.out.println("Hello " + name); 

4.3 Lambda表达式示例:多参数

// This a java method
int add(int num1, int num2)
{
    return num1 + num2;
}
  
Or
  
(int num1, int num2) -> { return num1 + num2; };
  
Or
  
(int num1, int num2) -> num1 + num2;
  
Or 
  
// () mandatory for more than one input parameter.
(num1, num2) -> num1 + num2;

5. 研究 &(Bitwise AND) 和 &&(Logical AND) Operator 的区别。
示例 5.1

class Test {
    public static void main(String[] args)
    {
        int a = 10;
        int b = 20;
  
        if (++a <= 10 && --b < 20) {}
          System.out.println("Output of && operator: "
                           + "a = " + a + " b = " + b);
        System.out.println("-------------");
  
        a = 10;
        b = 20;
        if (++a <= 10 & --b < 20) {}
          System.out.println("Output of & operator: "
                          + "a = " + a + " b = " + b);
    }
}
输出:
Output of && operator: a = 11 b = 20
-------------
Output of & operator: a = 11 b = 19

原因:因为如果第一个操作数的值为 'false', '&&'运算符不会检查第二个操作数。但是'&'必须检查两个操作数。

注意:这些概念肯定涵盖了 OCA 考试中的 10 到 12 个问题。