首页 > 其他 > 详细

OCA & OCP Notes

时间:2019-05-15 21:05:20      阅读:124      评论:0      收藏:0      [点我收藏+]

OCA

 

An array does not override equals() and so uses object equality. ArrayList does override equals() and defines it as the same elements in the same order.
 
StringBuilder does not implement the equals method.
 
!! dates are immutable and the plus methods have their return values ignored, the result is unchanged.
 

private methods are always hidden in a subclass.

 

 variables may only be hidden, regardless of the access modifier.

 

The interface variable amount is correctly declared, with public and static being assumed and automatically inserted by the compiler

Although all variables in interfaces are assumed to be public static final, abstract classes may contain them as well

though an instance of an object that implements an interface inherits java.lang.Object, the interface itself doesn‘t; otherwise, Java would support multiple inheritance for objects, which it doesn‘t. 

The trick here is that the method fly() is marked as private in the parent class Bird, which means it may only be hidden, not overridden. With hidden methods, the specific method used depends on where it is referenced. 

 

 

Runtime exceptions can be thrown in any method

 

ArrayIndexOutOfBoundsException, IllegalArgumentException, and NumberFormatException are runtime exceptions. 

the method called inside the try block doesn‘t declare an IOException to be thrown. The compiler realizes that IOException would be an unreachable catch block.

 

 

       IOException is a subclass of Exception, but not a RuntimeException.

      All array types are reference variables. Although int is a primitive type, int[] is still a reference type. 

      What data types allowed in a switch statement?

      In a StringBuilder, the length can be less than or equal to the capacity.  What is capacity??

 

      NumberFormatException is RuntimeException ?

      Overload: It prefers an auto boxed parameter over a vararg parameter.

 

     Method has protected access, which means it can only be accessed from a  subclass reference or in the same package.

 

     Why abstract class can have constructor method since it cannot be instantiated??

 

 

 

     IllegalArgumentException is a runtime exception.

            Java is pass by value, reassignments to method parameters are not seen by caller. 

      An interface method can be overridden with an abstract method that follows the particular rules for method overriding.

     A class implements two interfaces can have duplicate abstract and static method   

    A class implements two interfaces can only have a duplicate default method if the class override the default method.

 

 

      The initial capacity of StringBuilder is 16. 

 

       byte is -127 , 128 

     Two -dimention arrays, the second length won’t limit the length?? 

       int [][] ints2 = new int[1][1];

ints2[0] = new int[] {4, 5, 6};

NegativeArraySizeException

NumberFormatException is RuntimeException.

??  Interface I

I i = new I(){};

Public StringBuilder append(char[] str, int offset, int len)

Error/exception throw by JVM?? 

IllegalStateException (which is a RuntimeException) and AssertionError can be thrown programmatically. ??

A fully qualified means using the complete package details when access a Java class.

The native keyword is applied to a method to indicate that the method is implemented using native code using JNI (Java Native Interface) ??

What is keyword - transient ?

 

  • transient is a Java keyword which marks a member variable not to be serialized when it is persisted to streams of bytes. When an object is transferred through the network, the object needs to be ‘serialized‘. Serialization converts the object state to serial bytes.
 
spliterator was introduced in ArrayList in Java SE8.
 
The default capacity of ArrayList is 10.
The default capacity of HashMap is 16.
Integer class caches values between -128, 127
 
 
 
OCP
 
An outer class showing all types of inner classes that it can define: inner class, static nested class, local inner class, and anonymous inner class

技术分享图片

 

Flavors of inner classes and their definitions

Type of inner class

Description

Static or static nested class Is a static member of its enclosing class and can access all the static variables and members of its outer class
Inner or member class Is an instance member of its enclosing class. It can access all the instance and static members of its outer class, including private members.
Method local inner class Is defined within a method. Local inner classes are local to a method. They can access all the members of a class, including its private members, but they can be accessed only within the method in which they’re defined.
Anonymous inner class Is a local class without a name

A variable of primitive type or type String, that is final and initialized with a compile-time constant expression (§15.28), is called a constant variable.
 
Inner classes may not declare static members, unless they are constant variables (§4.12.4), or a compile-time error occurs.
 
If an anonymous inner class extends a class, it subclasses it explicitly. When it implements an interface, it implicitly extends class java.lang.Object. If an anonymous inner class doesn’t subclass a class implicitly, it implicitly extends java.lang.Object.
 
 
The creation of enum constants happens in a static initializer block, before the execution of the rest of the code defined in the static block. Here’s the decompiled code for enum BasicColor, which shows how enum constants are initialized in the static block. To initialize an enum constant, its constructor is called. Note that the contents of the default constructor and instance initializer blocks are added to the new constructor implicitly defined during the compilation process
 
 
 
Table 3.3. Classes and methods from the Java API that use the Factory pattern

Class

Method

Description

java.util.Calendar getInstance() Gets a calendar using the default time zone and locale.
java.util.Arrays asList() Returns a fixed-size list backed by the specified array.
java.util.ResourceBundle getBundle() Overloaded versions of this method return a resource bundle using the specified base name, target locale, class loader, and control.
java.sql.DriverManager getConnection() Establishes and returns a connection to the given database URL.
java.sql.DriverManager getDriver() Attempts to locate and return a driver that understands the given URL.
java.sql.Connection createStatement() Overloaded version of this method creates a statement object for sending SQL statements to the database and generates ResultSet objects with the given type, concurrency, and holdability.
java.sql.Statement executeQuery() Executes the given SQL statement, which returns a single ResultSet object.
java.text.NumberFormat getInstance() getNumberFormat() Returns a general-purpose number format for the current default locale.
java.text.NumberFormat getCurrencyInstance() Returns a currency format for the current default locale.
java.text.NumberFormat getIntegerInstance() Returns an integer format for the current default locale.
java.util.concurrent.Executors newFixedThreadPool() newCachedThreadPool() newSingleThreadExecutor() Creates a thread pool.
The compiler erases the type information by replacing all type parameters in generic types with Object (for unbounded parameter types) or their bounds (for bounded parameter types). The compiler might insert type casts to preserve type safety and generate bridge methods to preserve polymorphism in extended generic types.
 
Bridge methods

The Java compiler might need to create additional methods, referred to as bridge methods, as part of the type erasure process.

===================================================
Figure 8.4. Comparing class Paths and interface Path

技术分享图片

 

 

技术分享图片

 

Figure 10.4. Main methods of class Thread

技术分享图片

 

 

Figure 10.7. Identifying parts of runtime data that can be shared across threads

技术分享图片

 

 

Table 11.2. Mapping of classes and interfaces from package java.util.concurrent and its corresponding package java.util analog

Package java.util.concurrent

java.util analog

BlockingQueue Queue
ArrayBlockingQueue Queue
LinkedBlockingQueue Queue
ConcurrentMap Map
ConcurrentHashMap HashMap
ConcurrentSkipListMap TreeMap
CopyOnWriteArrayList ArrayList
LinkedBlockingDeque Deque

 
技术分享图片
 
 Classes implemented in the fork/join framework

技术分享图片

 

OCA & OCP Notes

原文:https://www.cnblogs.com/drilld/p/10872170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!