참고 : https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html JVM이란? Java, Scala 같은 언어로 작성된 코드를 실행시켜주는 프로그램 1. JVM은 JRE의 일종이라고 할 수 있다. 2. JVM은 java 프로그래밍 언어에 대하여 모른다. class 파일 형식을 알고 있음 3. OS, hardware spec에 의존적이지 않다. 정확히 말하면 complie 된 class 파일이 환경에 의존적이지 않다. 그러나 JVM은 환경에 의존적이다. (자신의 PC환경에 맞는 JVM이 필요하다.) 이런 부분에서는 JVM은 인터페이스 간의 호환성을 해결해주는 Adapter의 역할을 한다. JVM의 내부구조 RunTime 영역 (Run Time Data..
1️⃣ Queue가 뭘까? 1. 응용프로그램에 사용되는 기본 데이터 구조 2. 선형 데이터 구조 3. FIFO 방식을 사용 (First In, First Out) 4. 멀티스레드 환경에서 스레드 관리에 사용될 수 있음. 에스컬레이터, 계산대, 주요소의 세차장같이 알게 모르게 실생활에서 자연스럽게 FIFO 방식을 채택하여 사용하게 됩니다. 🚋 2️⃣ FIFO 구조 이미지 요소 1, 2, 3, 4, 5, 6 순서대로 들어왔으며 (In) 들어온 순서대로 먼저 나가게 됩니다. (out) 3️⃣ Queue API와 구현 방식 queue api 프로그래밍 언어에서 보편적으로 제공되는 Queue의 기능 3가지가 있습니다. enqueue(삽입), dequeue(제거), peek(엑세스) 1. enqueue : queu..
Linked List 1. 데이터 물리적 배치에 따라 순서가 지정되지 않는 선형 연결 구조 어떤 게 포함되어있나? 노드가 포함되어있으며(보편적으로 node, element라 표현) 노드에는 현재 데이터와 다음 데이터의 pointer(위치정보)를 포함 특징 1️⃣ 동적인 자료구조, 데이터를 메모리에 동적으로 할당 가능 애플리케이션에서 사용할 요소의 수를 가늠할수 없을 때 유용 https://www.geeksforgeeks.org/what-is-dynamic-memory-allocation/ 2️⃣ 스택과 큐같은 추가적인 자료구조 구현에 좋습니다. 3️⃣ 매우 큰수의 연산 시 하나의 노드가 하나의 숫자를 담당하여 연산을 수행 할 수 있습니다. how? https://www.geeksforgeeks.org/a..
➡️ Java Lambda 1️⃣ 메서드를 하나의 식으로 표현한 것 2️⃣ 매개변수를 전달받아 값을 반환하는 짧은 코드 블록 3️⃣ 메서드의 인자로 넘기거나, 결괏값으로 반환될 수도 있음 Syntax 가장 간단한 람다표현식은 단일 매개변수, 표현식이 포함 1. 값 할당 2. 'if', 'for'와 같은 문 위의 2개는 포함 불가 ( 람다 표현식에 한하여 ) case1 : paramter -> expression case 2 : (parameter1, parameter2) -> expression 둘 이상의 매개변수는 괄호로 묶어줍니다. 중괄호로 묶인 block lambda에는 lambda expression과 달리 변수, loop, if 등을 넣을 수 있음 ( parameter1, paramter2 ) ..
산술 연산자(Arithmetic Operator) ➕ 요약 덧셈 + a와 b를 더함 뺄셈 - a와 b를 뺌 곱셈 * a와 b를 곱함 나눗셈 / a와 b의 몫 나머지 % a와 b의 나머지 ➕ 다른 타입과의 사용 int + long, short + long, byte + float 다른 타입끼리 연산수 행시 더 큰 타입으로 캐스팅 후 연산 1️⃣ int + long -> long + long 2️⃣ byte + long -> long + long 3️⃣ int + float -> float + float 그 외 long 제외 정수형의 연산은 모두 int type으로 변환 후 연산됩니다. JVM에서 내부적으로 4byte이하 정수형의 연산은 모두 int로 변환합니다. ➕overflow 결과 -2147483648..
의외로 숨겨진 규칙이 많은 자동 형 변환(type autoCasting)#️⃣ 산술 혹은 대입시 컴파일러가 수행하는 타입 변환 작은 크기의 타입에 저장된 값을 큰 크기의 타입에 저장할 때 자동으로 발생된다. 타입을 크기순으로 정렬하였습니다.(단위 byte) byte(1) - char(2) - short(2) - int(4) - long(8) - float(4) - double(8) 좌측에서 우측으로의 묵시적 변환은 가능하지만 역순은 불가능합니다.(명시적 변환 제외) float과 double은 부동소수점 표현방식을 사용하므로 더 큰 범위를 표현할 수 있습니다. 몇 가지 예시와 함께 설명하겠습니다. 1. 정수형 int(4byte) -> long(8byte) 더 큰집(타입)으로 묵시적으로 변환되어 할당된다. ..
안녕하세요 오늘은 Java primitive type에 대하여 여행을 떠나볼까요? 안녕 primitive type 원시 타입! 목차 0. 특징 1. 요약 2. 타입에 대한 설명 ( int, boolean 제외) 0. 특징 primitive type은 기본적으로 not null의 특징이 있어 조금 더 안전하지 않을까(?) 생각도 됩니다. 하지만 특수한 상황에 있어 wrapper 형식이 필요할 때도 있습니다. 외부 프로그램(DB)과 연동 시 외부에서는 null을 허용할 수도 있으며 제네릭을 사용할 시 wrapper 형식이 필요합니다. primitive type과 references type을 혼용 시에도 주의가 필요합니다. (references type은 주소를 비교) Integer i1 = new Inte..
internal consistency: 1. Java 11을 사용하며 예시에 나온 코드가 다를 수 있습니다. 2. 참조 : baeldung https://www.baeldung.com/java-equals-hashcode-contracts 목차 0. 언제 사용하지? 1. 사전 지식 + 규칙 2. 간단한 예시 3. 나올지도? 실패 케이스 0. 언제 사용하지? 저의 경우 웹서비스 기반의 개발만 해보아서 equals, hashCode의 필요성을 많이 못 느꼈습니다.관계형 DB의 데이터를 가져와 해당 row의 식별자 값으로 비교를 하였으나 식별자가 없는 object를 다루는 경우 많은 도움이 될 것 같습니다. 1. 사전 지식 + 규칙 사전 지식 1. 동일성 완전히 동일한 것 을 의미 ( 두 객체의 주소 값이 같..
- Total
- Today
- Yesterday
- 자사서비스
- 다대일
- 백준 제로 자바
- JDK8
- jre
- 스타트업
- 문제
- 백준
- 백준 제로
- ㅃ
- boot
- Spring
- springboot
- 프로그래머
- jvm
- 자바
- mappedby
- jdk11
- boot 일대다
- 백엔드
- jre8
- java8
- 코딩테스트
- JDK
- 스택
- 개발자채용
- jre11
- 관계설정
- 알고리즘
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |