목록Language (17)
보근은 참고 있다
산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 + 더하기 int a = 6 + 5; // 11 - 빼기 int b = 6 - 5; // 1 * 곱하기 int c = 6 * 5; // 30 / 나누기 double d = 6 / 5; // 1.2 % 나머지 int e = 6 % 5; // 1 이것들 외에도 ++, -- 등의 증감 연산자가 있다. 증감 연산자는 변수에 1을 더하거나 빼는 연산자인데, 위치마다 증감이 일어나는 시기가 다르다. int a = 5; int b = new int[2]; b[0] = a++; // b[0]..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bejPKw/btqNG2pFCKc/KGTH3EwbEvGwpD53C2qBlk/img.png)
프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 메모리 크기 값의 범위 기본 값 boolean 1byte true or false false byte 1byte -128 ~ 127 ( -2^7 ~ 2^7 - 1) 0 short 2byte -32,768 ~ 32787 ( -2^15 ~ 2^15 - 1) 0 int 4byte -2,147,483,648 ~ 2,147,483,647 ( -2^31 ~ 2^31 - 1) 0 long 8byte –9,223,372,036,854,7..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lkbWJ/btqM4zg7JAY/gtZNITbN8iLH0Djn7G5hc1/img.png)
JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 먼저 자바 코드가 실행되는 과정은, 자바로 작성한 모든 코드들은 .java를 확장자로 하는 기본 텍스트 파일에 쓰여진다. 이 코드들은 javac 컴파일러에 의해 .class 파일로 컴파일 된다. .class 파일에 쓰여진 기계어들은 프로세서의 명령어가 아닌, jvm의 기계어인 바이트코드이다. 그 바이트코드를 jvm이 해석해 프로그램이 실행된다. JVM이란 무엇인가 JVM(Java Virtual Machine)이란, 자바를 실행하기 위한 가상 머신이다. 자바 애플리케이션은 모두 이 jvm을 통해 실행이 되기 때문에 자바 애플리케이션이 실행되려면 반드..
함수형 인터페이스 함수형 프로그래밍이란, 데이터의 처리를 수학적 함수의 계산으로 취급하고 함수를 1등 시민으로 취급하는 프로그래밍 기법이다. 함수형 프로그래밍은 상태와 가변 데이터를 멀리하여 부작용이 없도록 한다. 자바는 함수형 프로그램 언어가 아니라 함수가 1등 시민이 아니다. 그렇기 때문에 함수를 리턴하지도, 파라미터로 받지도, 변수에 담지도 못한다. 자바는 대신에 함수형 인터페이스를 지원한다. 함수형 인터페이스는 단 하나의 추상 메소드를 가진 인터페이스이다. @FunctionalInterface 어노테이션을 붙여주면 확실히 할 수 있다. 함수형 인터페이스들은 익명 객체의 구현으로 동작하며, 간편하게 익명 객체를 구현하는 람다식으로 그 구현을 한다. 함수형 인터페이스의 종류 Function - T 값..
Stream 순차 및 병렬 집합 연산을 지원하는 일련의 요소. 데이터를 담고 있는 저장소가 아니며, 스트림이 처리하는 데이터 소스는 변경되지 않는다. 중계 오퍼레이터와 종료 오퍼레이터가 있다. 중계 오퍼레이터 distinct() - 이 스트림의 별개의 요소(Object.equals(Object)에 따라)로 구성된 스트림을 반환한다. (중복 제거) filter(Predicate) - Predicate와 일치하는 요소들만 모아서 스트림을 반환. map(Function) - Function으로 각각의 요소들을 변환. flatMap(Function) - map과 비슷하지만, Function의 반환값이 Stream이고, Optional의 faltMap과 마찬가지로 컬렉션이나 Optional 객체를 받으면 한꺼풀 ..
Optional Optional은 null이 아닌 값을 포함할 수도, 포함하지 않을 수도 있는 컨테이너 객체이다. 주로 리턴값에 쓰인다. 넘겨줄 값이 빈 값일 수도 있다고 알려주고 클라이언트는 그에 맞춰 처리를 진행한다. Optional 객체를 만드는 메서드 Optional.of() - null이 아닌 값을 받아 Optional로 감싼다. Optional.ofNullable() - null을 받을 수도 있다. 만약 null이라면 빈 Optional 객체를 반환한다. Optional.empty() - 빈 Optional 객체를 반환한다. ( = 기본 생성자, Optional.ofNullable()에 null값을 넣었을 때)e ex) -----------------------------------------..
SOLID란, 클린 코드의 저자인 로버트 마틴이 제시한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open/Close Principle) : 개방-폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 관계 역전 원칙 SRP 단일 책임 원칙 단일 책임 원칙은, 한 클래스는 하나의 책임..