반응형 언어/java8 [java] JVM 동작 방식 및 메모리 구조 일반적으로 대부분의 컴파일러는 컴파일과정을 통해 기계어로 작성된 실행 프로그램을 생성한다. 하지만 JAVA는 이와 달리 OS와 독립적인 특징으로 인해, 컴파일 과정에서 기계어가 아닌 바이트 코드로 작성된 .class 파일을 생성한다. 그렇다면 기계어로 번역하는 역할은 자바에서 누가 할까? 그것이 바로 JVM(Java Virtual Machine)의 역할이다.JVM은 OS와 프로그램 사이에서 컴파일과정을 통해 생성된 바이트코드(.java -> .class)를 기계어로 번역해주는 역할을 한다. 이 자세한 과정에 대해 알아보자.JVM 동작 방식개발자가 자바 소스코드(.java)를 작성한다.Build 라는 작업을 통해 자바 컴파일러의 javac 라는 명령어로 바이트코드인 .class 파일을 생성한다.컴파일된 바.. 2024. 12. 23. [java] 접근제어자 범위가 큰 순public > protected > default > private private- 해당 클래스 내에서만 접근 가능public class Sample { private String secret; private String getSecret() { return this.secret; }}secret 변수와 getSecret 메서드는 오직 Sample 클래스에서만 접근이 가능하고 다른 클래스에서는 접근이 불가능하다. default- 자바의 기본 접근제어자- 같은 패키지 내에서만 접근 가능 house/HouseKim.javapackage house; // 패키지가 동일하다.public class HouseKim { String lastname = "kim"; .. 2024. 7. 23. [java] HashMap 맵 자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있다.맵의 가장 큰 특징은 순서에 의존하지 않고 key로 value를 가져오는 것이다. 그런데 가끔 Map에 입력된 순서대로 데이터를 가져오거나 입력한 key에 의해 정렬(sort)하도록 저장하고 싶을 수 있다. 이럴때는 LinkedHashMap과 TreeMap을 사용하면 된다.LinkedHashMap : 입력된 순서대로 데이터를 저장한다.TreeMap : 입력된 key의 오름차순으로 데이터를 저장한다.HashMap 사용 예:import java.util.HashMap;public class Sample { public static void main(String[] args) { HashMap map = new.. 2024. 7. 22. [java] 제네릭스, ArrayList 제네릭스를 이용하면 형 변환과 관련된 불필요한 코딩을 줄일 수 있고, 잘못된 형 변환 때문에 발생하는 런타임 오류를 방지할 수 있다. 제네릭스를 사용하지 않은 예:ArrayList pitches = new ArrayList();pitches.add("138");pitches.add("129");String one = (String) pitches.get(0);String two = (String) pitches.get(1);제네릭스를 사용하지 않으면 ArrayList에 추가하는 객체는 Object 자료형으로 인식된다. Object 자료형은 모든 객체가 상속하고 있는 가장 기본적인 자료형이다. 따라서 ArrayList 객체인 pitches에 값을 넣을 때는 문제가 없지만 값을 가져올 때는 매번 Objec.. 2024. 7. 22. [java] StringBuffer, StringBuilder, String 차이 문자열을 저장하는 타입으로 String, StringBuffer, StringBuilder 가 있다.각각 차이점은 아래와 같다. String- immutable(불변)StringBuffer- mutable(가변)- 멀티 스레드 환경에서 안전StringBuilder- mutable(가변)- 단일 스레드 환경에서 주로 사용- 동기화 상관없는 환경에서는 StringBuffer보다 성능 우수 연산이 많은 경우 속도 등의 성능으로 봤을 때 StringBuilder > StringBuffer > String 순으로 성능이 좋다. 2024. 7. 22. [java] 배열 배열의 특징가장 대표적인 자료구조 입니다. 데이터를 순차적으로 저장해 0부터 시작하는 인덱스를 통해 접근할 수 있습니다.일반적으로 배열은 선언할때 크기가 고정됨.데이터를 순차적으로만 접근할 수 있어 위치를 모르는 경우 효율이 떨어짐.배열에 들어가는 데이터는 모두 동일한 자료형 이어야 함.배열 중간에 값을 추가하려면 기존 데이터를 모두 이동시켜야 함.배열 선언 및 데이터 사용int scores[] = {95,100,87,91};int[] scores = {95,100,87,91};int[] scores = new int[4];scores[2] = 90; // 3번째 요소(87)을 90으로 변경.System.out.println(scores[0]);자바에서 배열선언시 타입[] 변수명 혹은 타입 변수명[] 형.. 2024. 6. 4. 이전 1 2 다음 반응형