mirror of
https://github.com/Xevion/contest.git
synced 2025-12-14 16:11:19 -06:00
study 2020 java tests concepts
This commit is contained in:
112
study/2019 Test 2.MD
Normal file
112
study/2019 Test 2.MD
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
# Study
|
||||||
|
|
||||||
|
Questions I missed, things I need to pay attention to, study, or otherwise practice.
|
||||||
|
|
||||||
|
## 2020
|
||||||
|
|
||||||
|
### Compound Assignment Operators
|
||||||
|
```
|
||||||
|
int x = 12;
|
||||||
|
int x += 2.6;
|
||||||
|
```
|
||||||
|
|
||||||
|
Compound assignment operators
|
||||||
|
|
||||||
|
### Octal Literals
|
||||||
|
|
||||||
|
Octal Literals are defined by a zero prefix.
|
||||||
|
|
||||||
|
```
|
||||||
|
012 + 021 = ?
|
||||||
|
012 = 8 + 2 = 10
|
||||||
|
021 = 16 + 1 = 17
|
||||||
|
10 + 17 = 27
|
||||||
|
```
|
||||||
|
|
||||||
|
Decimal literals are defined in traditional form, 0-9 in base 10.
|
||||||
|
|
||||||
|
Hexadecimal literals are defined with the *case insensitive* character set `a-fA-F0-9` and prefixed with `0x` or `0X`.
|
||||||
|
|
||||||
|
`0xFace = 61440 + 2560 + 192 + 14 = 64206`
|
||||||
|
|
||||||
|
Binary literals are defined with a `0b` or `0B` prefix.
|
||||||
|
|
||||||
|
`0b10101 = 16 + 4 + 1 = 21`
|
||||||
|
|
||||||
|
### Return Types
|
||||||
|
|
||||||
|
Check **return type** of methods!
|
||||||
|
|
||||||
|
### Binary Search Trees
|
||||||
|
|
||||||
|
Become familiar with how Binay Search Trees are created, and how one can manipulate them to create and level of elements.
|
||||||
|
|
||||||
|
More specifically, how many levels can a 32 element tree have if maximized?
|
||||||
|
|
||||||
|
Additionally, study **Min Heap**, **Max Heap**, **Complete Trees**, **Perfect Trees**, **Strict Trees**, **Balanced Trees**, **BST Trees**, and what a **Child Node** and **Leaf Node** is.
|
||||||
|
|
||||||
|
* Min Heap
|
||||||
|
* Every node's child nodes are greater or equal to itself (i.e. smaller nodes higher up).
|
||||||
|
* Binary Tree is complete.
|
||||||
|
* Max Heap
|
||||||
|
* Every node's child nodes are less than or equal to itself (i.e. greater nodes higher up).
|
||||||
|
* Binary Tree is complete.
|
||||||
|
* Complete Trees
|
||||||
|
*
|
||||||
|
* Perfect Trees
|
||||||
|
* Strict Trees
|
||||||
|
* Balanced Trees
|
||||||
|
* BST Trees
|
||||||
|
* Child Node
|
||||||
|
* Leaf Node
|
||||||
|
|
||||||
|
### String.split Trailing Strings
|
||||||
|
|
||||||
|
String.split will create empty strings, but trailing empty strings will not be included in the final array. Additionally, a integer can be appended to define a limit to the number of "splits" that will occur.
|
||||||
|
|
||||||
|
```java
|
||||||
|
out.println("xxOOxx".split("x"));
|
||||||
|
> ["", "", "00"]
|
||||||
|
out.println("xxx".split("x"));
|
||||||
|
> ["", "", ""]
|
||||||
|
out.println("xx0x0x0x".split("x"));
|
||||||
|
> ["", "", "0", "0", "0"]
|
||||||
|
out.println("xx0x0x0x".split("x", 3));
|
||||||
|
> ["", "", "0", "0x0x"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Java's Primary Four OOP Concepts
|
||||||
|
|
||||||
|
* Abstraction
|
||||||
|
* Complex objects are given relatively simple forms. Complex code is hidden within a much simpler face. Code is rewritten less.
|
||||||
|
* Encapsulation
|
||||||
|
* Fields are kept private. Getters and Setters are used to access values within objects.
|
||||||
|
* Inheritance
|
||||||
|
* Classes can use features and attributes from previously defined classes so as to not repeat code, and add customized implementations of code.
|
||||||
|
* Polymorphism
|
||||||
|
* Includes Method Overloading and Overriding
|
||||||
|
* Method Overloading
|
||||||
|
* A method may perform differently based on how it is called (i.e. different return type given different arguments).
|
||||||
|
```java
|
||||||
|
int calculate(int val)
|
||||||
|
double calculate(int val)
|
||||||
|
double calculate(int val, int limit)
|
||||||
|
```
|
||||||
|
* Method Overriding
|
||||||
|
* Uses Polymorphism to *override* the functionality of a parent class's methods.
|
||||||
|
```java
|
||||||
|
class Person {
|
||||||
|
void live() {e}
|
||||||
|
void tick() {
|
||||||
|
this.live()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Student extends Person {
|
||||||
|
void study() {}
|
||||||
|
void tick() {
|
||||||
|
this.study()
|
||||||
|
super.tick(); // Calls Person.tick()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user