JVM, JRE, JDk JVM(Java Virtual Machine), 자바 가상 머신 OS 별로 존재, 바이너리 코드를 읽고 검증하고 실행 즉, 똑같은 JAVA 바이트 코드를 OS마다 다르게 해석해주는 것으로, 하나의 결과물로 운영체제가 다른 윈도우, 맥, 리눅
Java로 컴파일 해서 나온 결과인 어플리케이션(바이트 코드)을 실행하는 역할을 함. 모든 Java 어플리케이션은 JVM이라고 하는 가상의 컴퓨터 공간에서 실행됨OS 별로 존재, 바이너리 코드를 읽고 검증하고 실행즉, 똑같은 JAVA 바이트 코드를 OS마다 다르게 해석
JVM의 구조는 크게 보면, Garbage Collector, Execution Engine, Class Loader, Runtime Data Area로, 4가지로 나눌 수 있음 1) Class Loader JVM 내로 클래스 파일을 로드하고, 링크를 통해 배치하는
소스 코드 파일을 컴퓨터나 휴대폰에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다. \* 독립 SW 가공물 = Artifact빌드 세분화 1) 소스 코드 컴파일2) 테스트 코드 컴파일3) 테스트 코드 실행4) 테스트
컴퓨터 메모리(RAM)는 값을 저장할 수 잇는 수많은 번지(주소)들로 구성되어 있음. 그런데 메모리의 어디에 저장하고, 어떤 방식으로 저장할지 정해 놓지않으면 프로그램 개발이 무척 어렵게 된다. 프로그래밍 언어는 이 문제를 해결하기 위해 변수라는 개념을 사용한다.
자바에서는 데이터 타입에 크게 두 가지 원시 타입(Primitive Type)과 참조타입(Reference Type)이 있다.원시 타입은 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하며, 참조 타입은 객체의 번지(주소)를 참조하는 타입으로 배열, 열거, 클래
데이터들이 프로그램이 종료되어도 사라지지않고 어떤 곳에 저장되는 개념을 영속성(Persistence)이라고 함. 자바에서는 데이터의 영속성을 위한 JDBC를 지원해주는데, 이는 매핑 작업을 개발자가 일일히 수행해야하는 번거로움이 있음 SQL Mapper와 ORM은 개발
인터페이스란, 극단적으로 동일한 목적 하에 동일한 기능을 보장하게 하기 위함 (쉽게 규격과 같은 개념❗️) 어떻게? 자바의 다향성을 이용하여 개발 코드 수정을 줄이고 유지보수성을 높힘 +) 추상클래스와 비교 추상 클래스: 없거나 하나 이상의 추상 메소드를 가지고 있
StringBuffer는 문자열을 추가하거나 변경할 때 주로 사용하는 자료형.비슷한 자료형으로는 StringBuilder가 있음. 사용법은 둘이 동일하며, StringBuffer는 멀티 스레드 환경에서 안전하다는 장점이 있고 StringBuilder는 StringBuf
연산자와 연산식 개념 연산에 사용되는 표시나 기호를 연산자라고 한다. 연산자와 함께 연산되는 데이터를 피연산자라고 하며 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것을 연산식이라고 부른다. 예시) +, *, -, ==은 연산자이고, x, y, z변
단항 연산자는 피연산자가 단 하나뿐인 연산자를 말한다.단항 연산자 종류부호 연산자는 양수 및 음수를 표시하는 +, -를 말한다. 부호 연산자는 변수의 부호를 유지하거나 변경할 때 사용하며 주의할 점은, 부호 연산자의 결과가 int 타입이라는 것이다.위의 코드는 컴파일
이항 연산자 이항 연산자는 피연산자가 2개인 연산자를 말한다. 이항 연산자 종류 산술 연산자 산술 연산자의 특징은 피연산자들의 타입이 동일하지 않을 경우 다음과 같은 규칙을 사용해서 피연산자들의 타입을 일치시킨 후 연산을 수행한다는 점이다. long 타입을 제외한
이항 연산자는 피연산자가 2개인 연산자를 말한다.이항 연산자 종류문자 결합 연산자인 +는 문자열을 서로 결합하는 연산자이다. + 연산자는 산술 연산자, 부호 연산자인 동시에 문자열 결합 연산자이기도 하다. 피연산자 중 한쪽이 문자열이면 + 연산자는 문자열 결합 연산자로
산술 연살을 할 때 주의할 점은 표현 가능한 산출 타입인지 확인해야 한다. 산출 타입으로 표현할 수 없는 값인 경우 오버플로우가 발생하여 쓰레기 값이 반환된다. 쉽게 말해, 정수형 오버플로우는 정수 값이 증가하면서 허용된 가장 큰 값보다 커져 실제 저장되는 값이 의도치
for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 좋지만, for문은 반복 횟수를 알고 있을 때 주로 사용 하고, while문은 조건에 따라 반복할 때 주로 사용한다. while문과 do-while문의 차이점은 조건을 먼저 검
우연히 호진님이 공유해주신 유튜브영상을 보고 if문에 대해 정말 얕게만 알고 응용하지는 못했구나를 깨달았다. 이를 계기로 if문에 대해 좀 더 자세히 알아보았으며, if문의 연산 순서 등을 고려하여 좋은 퍼포먼스를 기대할 수 있는 단축 평가의 개념 및 가독성을 높이는
*인스턴스 멤버: 객체마다 가지고 있는 멤버(필드, 메소드) 정적 멤버(클래스 멤버): 클래스에 위치시키고 객체들이 공유하는 멤버 * 정적 멤버를 따로 구분하는 이유: 객체 마다 공통의 값을 가지는 필드를 효율적으로 관리하기 위함 예시 객체마다 같은 값을 가지는 필드
final 필드는 초기값이 저장되면 이것이 최종적인 값이 되어 프로그램 실행 도중에 수정할 수 없다는 것이다. final 타입 필드 =초기값;final 필드의 초기값을 줄 수 있는 방법필드 선언시에 주는 법생성자에 주는 방법단순 값이라면 필드 선언시에 주는 것이 제일
자바 스트링 관련 함수 중 특정 문자열을 원하는 문자열로 치환하는 함수 > replace() > > replaceAll() > 예제 위의 예제만 보면 두 함수의 차이점은 없어 보이지만,두 함수의 가장 큰 차이점은 입력 인자 값의 형에 있다. replace()는 C