- JDK, JRE , JVM (https://medium.com/@ervinitraj/all-about-jvm-java-virtual-machine-bdeecd6eaa1d)
- Java Acrhitecture
- JVM Architecture
- Classloader and its types (https://www.digitalocean.com/community/tutorials/java-classloader)
- Local variable, instance variable, static variable difference?[https://stackoverflow.com/questions/18605974/static-initialization-block-vs-constructor-java]
- Why java is not pure object oriented language
- Object Oriented vs Object Based language
- Memory[memory]
- Constructor (super, this) [https://www.digitalocean.com/community/tutorials/constructor-in-java, https://www.quora.com/How-does-a-constructor-work-internally-in-Java]
- Characteristics of OOP (Encapsulation, Abstraction , inheritance, polymorphism) [https://www.freecodecamp.org/news/java-object-oriented-programming-system-principles-oops-concepts-for-beginners/]
- Types of Polymorphism(static vs dynamic or overloading vs overrriding vs operator overloading) [https://www.geeksforgeeks.org/polymorphism-in-java/]
- Covariant Type and contravarient type [https://medium.com/@alxkm/understanding-variance-in-java-covariant-and-contravariant-types-explained-31d569f2c9af]
- Interface vs Abstract
- Interface: default method, static methods, private method, marker[https://medium.com/@reetesh043/default-private-and-static-methods-in-java-interfaces-fcfe60693730]
- Exception Handling(checked and unchecked)[https://www.digitalocean.com/community/tutorials/exception-handling-in-java]
- String concept : [https://www.digitalocean.com/community/tutorials/java-string , https://medium.com/@tecnicorabi/understanding-strings-in-java-immutability-internals-and-the-string-pool-368ecbac5d3b]
- String Constant pool: [https://www.digitalocean.com/community/tutorials/what-is-java-string-pool]
- StringBuilder and StringBuffer [https://www.geeksforgeeks.org/string-vs-stringbuilder-vs-stringbuffer-in-java/]
- Equals vs ==
- Equals and Hashcode [https://howtodoinjava.com/java/basics/java-hashcode-equals-methods/]
- Inner Class and types [https://medium.com/@pratik.941/in-depth-tutorial-on-inner-classes-in-java-77f81207a3fc]
- Garbage Collection: Strategy and Types [ Types: {Serial, parallel, CMS, G1}, Strategy: oldGen, young gen, permgen] [https://newrelic.com/blog/best-practices/java-garbage-collection#toc-java-garbage-collection-types-strategies , https://stackify.com/what-is-java-garbage-collection/]
- Serialisation and Deserialisation[Serial&Deserial]
- Reflection [https://www.programiz.com/java-programming/reflection]
- final, finally, finalize[final-java]
- transient,volatile[https://naveen-metta.medium.com/understanding-transient-and-volatile-variables-in-java-2af7bc534bde]
- native, strictfp[https://meghnadwivedi.medium.com/native-keyword-in-java-b0a711def0b1]
- Java: passby value[passbyvalue]
- fail-fast, fail-safe [fail fast safe]
- Comparable, comparator[https://medium.com/@ganesh.shah/comparator-vs-comparable-java-8-940a83f53bd3]
- Functional Programming: Supplier, Consumer, Predicate, Function[functional program]
- Aggregation vs composition vs Association[https://www.scaler.com/topics/association-composition-and-aggregation-in-java/]
- Thread [Introduction, wait notify ]
- Runnable, Callable, Future, Executor
- Synchronisation
- 1LserialversionUID
- Concurrency
- Collection framework
- HashMap [https://medium.com/javarevisited/internal-working-of-hashmap-in-java-97aeac3c7beb, https://www.codingninjas.com/codestudio/library/implementation-of-hashmap ] it adds at first position when duplicate index, HashTable, Concurrent HashMap [array of linkedlist]
- HashSet [ https://medium.com/javarevisited/internal-working-of-hashset-in-java-e8b171fa3d41 ]
- LinkedHashMap [https://anmolsehgal.medium.com/java-linkedhashmap-internal-implementation-44e2e2893036 ] work as double linkedlist [array of doublinkedlist]
- LinkedHashSet [https://javaconceptoftheday.com/how-linkedhashset-works-internally-in-java/]
- TreeMap: internally uses RB Tree [https://medium.com/xebia-engineering/treemap-internals-199e0e0050b5]
- TreeSet: The data structure for the TreeSet is TreeMap; it contains SortedSet & NavigableSet interface to keep the elements sorted in ascending order and navigated through the tree
SOLID principle
Liskov subsistition ::
Bad example
public class Bird{
public void fly(){}
}
public class Duck extends Bird{}
The duck can fly because it is a bird, but what about this:
public class Ostrich extends Bird{}
Ostrich is a bird, but it can't fly, Ostrich class is a subtype of class Bird, but it shouldn't be able to use the fly method, that means we are breaking the LSP principle.
Good example
public class Bird{}
public class FlyingBirds extends Bird{
public void fly(){}
}
public class Duck extends FlyingBirds{}
public class Ostrich extends Bird{}
Design Pattern in Java
- Creational Design pattern: are concerned with the way of creating objects.
Singleton, Builder, Factory pattern, Abstract Fcatory
https://www.baeldung.com/creational-design-patterns - Structural Design pattern : These patterns explain how to assemble objects and classes into larger structures while keeping these structures flexible and efficient.
Adopter, Decorator, Facade, Composite, Bridge
https://www.baeldung.com/java-core-structural-patterns - Behavioural Design pattern : are concerned with the interaction and responsibility of objects.
Observer, Iterator, ChainOfResponsibility, Strategy,Command
https://www.baeldung.com/java-behavioral-patterns-jdk
Microservice Design Pattern
12 Factor App
Spring Framework
Authentication Framework
[OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices.]
The most common OAuth grant types are listed below.
- Authorization Code (web app mostly)
- PKCE. (mobile or any app)
- Client Credentials (service account or microservice)
- Device Code. (apps auth via authenticator)
- Refresh Token
Legacy
Device Flow [authentication in smart tv , amazon ccount]Auth granttype [web apps]https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-typePKCE [mobile apps]https://medium.com/identity-beyond-borders/auth-code-flow-with-pkce-a75ee203e242Client Credentials [servcie to servcie , internally]https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/
7. JWT Structure [https://jwt.io/introduction]. Explain how it is implemented in java
8. JWT vs Oauth 2.0 Access token. [JWT defines a token format while OAuth deals in defining authorization protocols. JWT is simple and easy to learn from the initial stage while OAuth is complex. OAuth uses both client-side and server-side storage while JWT must use only client-side storage. JWT has limited scope and use cases.]
9. OpenId Connect [There is one more way to combine JWT and OAUth2. You need to guide OAuth2 to issue two tokens. The first token should be access_token and the second token should be a JWT token featuring additional identity details. While you plan to adopt this way to combine JWT and OAuth2, you need to make sure that you’re using OpenID Connect.]
Also read SAML, SWT
*********************************
Data Structure
const Dashboard = () => {
const [tableData, setTableData] = useState();
const [showError, setShowError] = useState(false);
const [loading, setLoading] = useState(false);
useEffect(() => {
fetchListData();
}, [])
const fetchListData = async () => {
setLoading(true);
setShowError(false);
await axios.get("/ims/dashboard/",
{headers: {'Accept-Type': 'application/json'}})
.then((res) => {
setTableData(res.data);
setLoading(false);
})
.catch((err) => {
console.log(err)
setShowError(true);
setLoading(false);
});
}
return <>
{showError && <Alert />}
<CustomizedTables rows={tableData} isLoading={loading}/>
</>
}
export default Dashboard;
No comments:
Post a Comment