SOLID
1. SRP: 단일 책임원칙(하나의 클래스는 하나의 책임만 가진다.)
2. OCP: 개방, 폐쇄 원칙(확장에는 open, 수정에는 close)
3. LSP: 리스코프 치환 원칙(객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 instance 로 바꿀수 있어야한다.)
4. ISP: 인터페이스 분리 원칙(특정 client 를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다)
필요한 상황마다 나누자!
5. DIP: 의존관계 역전 원칙(추상화에 의존!, 구현체에 의존하면 안됨)
Java의 객체지향
1. 캡슐화
2. 상속
3. 다형성
4. 추상화
Java 자료형
1. Primitive Type
: boolean, byte, char, short, int, long, float, double
2. BigInteger
3. Reference Data Type
: Class, String Class(불변객체), Wrapper Class, Interface Type, Array Type(int[], string[]), Enum Type
기본 자료형은 값자체를 저장, 참고자료형은 객체의 메모리 주소를 저장
(따라서 기본 자료형은 연산이 빠르고 메모리 사용이 적고, 참조 자료형은 복작합구조를 가지고 있음)
String 객체는 불변객체 이므로, 수정하게 되면, 새로운 String 객체가 생성됨
다양한 메서드 제공(length(), substring(), toUpperCase(), toLowerCase(), trim(), replace(), equals())
자바 기초 문법
1. 배열
1) List
: 같은 자료형만 넣을 수 있음(add, remove, get)
2. Class
: 객체를 표현(메쏘드, 맴버 변수 사용), 속성을 정의
3. Instance
: Class로 부터 만들어진 객체
4. Method
: Class 내 사용되는 함수
5. Getter(읽기), Setter(쓰기)
6. abstract
: 클래스를 상속받아 이용, 확장 목적(extends)
7. Interface
8. Collection
: 다수의 data를 핸들링하기 위한 자료구조, 클래스의 집합
1) List: 순서가 있는 data 집합, 중복허용 (ArrayList, LinkedList, Stack)
2) Set: 순서와 관련없는 data 집합, 중복 허용안함(HashSet, TreeSet)
3) Map: k(중복안됨), value(중복허용) pair이며 순서 유지 안함 (HashMap, TreeMap)
4) Stack: LIFO(Last In First Out)
5) Queue: FIFO(First In First Out) , Queue, ArrayDeque(스택구조로 사용하면 Stack 클래스보다 빠르고,
큐 구조로 사용하면 Queue 클래스보다 빠르다고 함)
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html
ArrayDeque (Java Platform SE 8 )
Resizable-array implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe; in the absence of external synchronization, they do not support concurrent access by multi
docs.oracle.com
9. 제널릭
10. 람다(Lambda)
11. 스트림(Stream)
조건문
if(~~~){
}
else if(~~~){
}
else{
}
public class Main {
public static void main(Stringp[] args){
switch(result){
case "success":
System.out.println("성공 입니다.");
break;
case "fail":
System.out.println("실패 입니다.");
break;
default:
System.out.println("성공 입니다.");
break;
}
}
}
삼항 연산자
public class Main {
public static void main(Stringp[] args){
Test test = new Test();
~~~
int score = test.score();
String result = (score > 80) ? "합격입니다." : "불합격 입니다.";
System.out.println(result);
}
}
반복문
1. foreach
public class Main {
public static void main(Stringp[] args){
String[] 다음입사할회사명 = {"네어X", "카카X", "쿠X", "우아한형X", "라X"}
for (String myCompany : 다음입사할회사명){
System.out.println(myCompany);
}
}
}
2. While 문
public class Main {
public static void main(Stringp[] args){
int i = 0;
int totalSum = 0;
int maxCount = 10;
while (i < maxCount){
totalSum += (i+1)
i ++
}
System.out.println(totalSum);
}
}
do-while
public class Main {
public static void main(Stringp[] args){
int i = 0;
int total = 0;
int maxCount = 10;
do{
total += (i+i);
i++;
}while(i < maxCount);
System.out.println(total);
}
}
'Java Spring' 카테고리의 다른 글
영속성 이란? (Java Spring Boot 완전기초) (1) | 2024.09.16 |
---|---|
Spring Boot 완전 기초 (2) | 2024.09.15 |
Spring Boot 기본 (1) | 2024.09.15 |
POJO 란 무엇인가? (0) | 2024.09.13 |
Java 에 대해서 (0) | 2024.09.13 |