Java
-
1. JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가Java 2020. 11. 11. 17:05
목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 1. JVM이란 무엇인가 (Java Virtual Machine, 자바 가상머신) Java로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상머신이다. JRE (Java Runtime Environment)에 포함되어 있으며, Java 컴파일러가 프론트엔드를 담당한다면 JVM은 코드 최적화와 백엔드를 담당한다. Java 소스 코드는 javac 컴파일러를 거쳐 바이트코드로 변환되며, 이 바이트코드는 JRE에 들어있는 java classloader..
-
BufferedReader , BufferedWriterJava 2020. 8. 28. 18:25
- 버퍼를 이용해서 읽고 쓰는 함수 버퍼를 이용하기 때문에 입출력의 효율이 좋아진다. 버퍼링 없이 문자의 정보를 목적지로 바로 이동시키는 것 보다 중간에 메모리 버퍼를 둬서 묶어서 이동시키는 것이 효율적이고 빠르다. 즉, 모아서 한 번에 전송하는게 훨씬 더 효율적 Buffer - 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역 - 입출력 속도 향상을 위해 버퍼 사용 Buffer flush - 버퍼에 남아 있는 데이터를 출력시킴 (버퍼를 비우는 동작) BufferedReader : 버퍼를 이용한 입력 콘솔에서 입력 받을 경우 - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..
-
java - 14 ) 컬렉션 프레임워크Java 2020. 8. 28. 15:33
컬렉션 프레임워크의 개념 컬렉션 프레임워크란 ? - 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 이러한 컬렉션 프레임워크는 자바의 인터페이스를 사용하여 구현된다. 컬렉션 프레임워크 주요 인터페이스 - List, Set, Map List, Set은 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다. 주요 인터페이스의 간략한 특징 List : 순서가 있는 데이터의 집합, 중복을 허용함 - Vector, ArrayList, LinkedList, Stack, Queue Set : 순서가 없는 데이터의 집합, ..
-
java - 12 ) 자바 API 클래스Java 2020. 8. 3. 15:24
Object 클래스 java.lang 패키지 - java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다. java.lang.Object 클래스 - java.lang 패키지 중에서도 가장 많이 사용되는 클래스는 바로 Object 클래스이다. Object 클래스는 모든 자바 클래스의 최고 조상 클래스이다. 따라서 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다. toString() 메소드 - toString() 메소드는 해당 인스턴스에 대한 정보를 문자열로 반환한다. 이때 반환되는 문자열은 클래스 이름과 함께 구분자로 ..
-
java - 11 ) 다형성Java 2020. 8. 1. 21:51
다형성의 개념 다형성(polymorphism) 이란 ? - 다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있다. 다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 참조 변수의 다형성 - 자바에서는 다형성을 위해 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하고 있다. 이때 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수보다 같거나 적어야 참조할 수 있다. class Parent { ... } class Child extends Paren..
-
JPA - 객체지향 쿼리 언어 (JPQL) - 2Java 2020. 7. 31. 17:20
JPQL - 경로 표현식 - .(점)을 찍어 객체 그래프를 탐색하는 것 select m.username // 상태필드 from Member m join m.team t // 단일 값 연관 필드 join m.orders o // 컬렉션 값 연관 필드 where t.name = '팀A' 경로 표현식 용어 정리 - 상태 필드 (state field) : 단순히 값을 저장하기 위한 필드 ex) m.username - 연관 필드 (association field) : 연관관계를 위한 필드 - 단일 값 연관 필드 : @ManyToOne, @OneToOne, 대상이 엔티티 (ex. m.team) - 컬렉션 값 연관 필드 : @OneToMany, @ManyToMany, 대상이 컬렉션 (ex. m.orders) 경로 표..
-
JPA - 8. 객체지향 쿼리 언어 (JPQL) - 1Java 2020. 7. 29. 14:16
객체 지향 쿼리 언어 소개 - JPQL - JPA Criteria - QueryDSL - 네이티브 SQL - JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 과 함께 사용 JPQL 소개 - 가장 단순한 조회 방법 - EntityManager.find() - 객체 그래프 탐색 (a.getB().getC()) - 나이가 18살 이상인 회원을 모두 검색하고 싶다면 ? JPQL - JPA를 사용하면 엔티티 객체를 중심으로 개발 - 문제는 검색 개발 - 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 - 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 - 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요 - JPA는 SQL을..
-
JPA - 7. 값 타입Java 2020. 7. 27. 19:53
기본값 타입 JPA의 데이터 타입 분류 - 엔티티 타입 - @Entity로 정의하는 객체 - 데이터가 변해도 식별자로 지속해서 추적 가능 - 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 - 값 타입 - int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 - 식별자가 없고 값만 있으므로 변경시 추적 불가 - 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입 분류 - 기본값 타입 - 자바 기본 타입 (int, double) - 래퍼 클래스 (Integer, Long) - String - 임베디드 타입 (embedded type, 복합 값 타입) - 컬렉션 값 타입 (collection value type) 기본값 타입 - 예) String ..