일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring 개발환경 설정
- 상속
- 이클립스
- 자바
- DI
- 의존성주입
- merge
- Spring legacy Project
- 객체
- 영속성 컨텍스트
- mysql
- spring
- 리액트
- 깃허브
- JVM
- 인터페이스
- 스프링
- 어노테이션
- 빈
- react
- github
- @Bean
- 트랜잭션
- springboot
- 자동주입
- 스프링 컨테이너
- @transactional
- pom.xml
- list
- java
- Today
- Total
목록Java (40)
DEVLOG
회사 프로젝트 진행 중, JPA 엔티티 객체 생성 시 new 연산자가 아닌 @Builder 어노테이션을 사용해 생성하는 것을 보고 빌더 패턴에 대해 공부해보려한다. 우선 빌더 패턴과 자주 비교되는 패턴들을 보며 빌더 패턴을 왜 사용해야 하는지 알아보자. 점증적 생성자 패턴 VS 자바빈즈 패턴 VS 빌더 패턴 1) 점증적 생성자 패턴 // 점증적 생성자 패턴 public class Person{ private String name; private int age; private String gender; public Person(String name){ this.name = name; } public Person(String name, int age){ this.name = name; this.age = a..
String과 StringBuffer, StringBuilder는 변화 가능성으로 구분할 수 있다. String은 불변성을 가지며, StringBuffer와 StringBuilder는 가변성을 가진다. StringBuffer와 StringBuilder는 동기화의 유무로 구분할 수 있다. StringBuffer는 동기화 키워드를 지원하며, StringBuilder는 지원하지 않는다. 각 클래스에 대해 자세히 알아보자. String String str = "Hello"; str = str + " world"; System.out.println(str); // Hello world 위 코드를 보면 String의 값이 변경된 것처럼 보이지만 결론부터 말하면 아니다. 문자열 수정 시점에 값이 할당되어 있던 메모리..
JRE(Java Runtime Environment) : 자바 실행 환경 = JVM(Java Virtual Machine) + 클래스 라이브러리(Java API) 즉, 자바로 작성된 응용 프로그램이 실행되기 위한 최소환경 JDK(Java Development Kit) : 자바 개발 도구 = JRE + 개발에 필요한 실행파일 (javac.exe) 오라클의 공식문서를 읽어보면 JDK 에 관해 아래와 같이 기술하고 있다. Java SE Development Kit 18.0.2 downloads Thank you for downloading this release of the Java™ Platform, Standard Edition Development Kit (JDK™). The JDK is a develo..
컴파일러 언어 (C, C++) 기계가 이해할 수 있는 바이트 코드로 컴파일 작업이 요구되는 언어 모든 코드를 한 번에 컴파일(번역)하고, 한 번에 실행한다. 한 번 번역해두면 빌드(소스파일을 실행파일로 생성하는 것) 과정에서는 시간이 소요되지만, 런타임 상황에서는 이미 기계어로 변환되어 있기 때문에 실행 속도가 빠르다. 단순 수정을 할 때 새로 컴파일 해야 한다. 실행 전 오류를 확인할 수 있다. 인터프리터 언어 (JavaScript, Python, Ruby) 한 줄씩 읽으면서 컴퓨터가 이해할 수 있는 이진 코드로 번역한 후 실행하는 언어 한 줄씩 읽어서 실행하므로 번역(JVM), 실행(CPU)이 동시에 일어난다. 한 줄씩 읽어서 실행하므로 실행 속도가 느리다. 컴파일러처럼 바이트 코드를 생성하지 않아 ..
형변환 캐스팅(casting) 이라고도 불리며, 변수 또는 상수 타입을 다른 타입으로 변환하는 것을 의미한다. 형변환 방법은 변수 또는 상수 앞에 변환할 타입을 적은 괄호를 붙여주면 된다. package ch02; public class Casting { public static void main(String[] args) { double fltNum = 1.32; int one = (int)fltNum; System.out.println(one); // 1 } } 주의할 점은 아래 예제와 같이 기본형과 참조형간의 형변환은 불가능하다는 점이다. package ch02; public class Casting { public static void main(String[] args) { String strOn..
인코딩이 뭐야? 문자를 코드로 변환하는 것. 컴퓨터는 문자를 저장할 때 인코딩을 해서 숫자로 변환해서 저장한다. 반대로 저장된 문자를 읽어올 때는 디코딩을 해서 숫자를 원래의 문자로 되돌려야 한다. 유니코드는 뭐고 왜 생긴거야? 과거 인터넷이 발달하면서 여러 지역의 다른 언어를 사용하는 문서간 교환이 많아지게 되었고, 서로 다른 인코딩 방식으로 인해 어려움을 겪게 되었다. 이를 해소하기 위해 전 세계의 모든 문자를 하나의 통일된 문자집합으로 표현한 유니코드가 만들어졌다. 이러한 유니코드에 포함시키고자 하는 문자들의 집합을 유니코드 문자 셋(character set)이라고 부르며, 이 문자 셋에 번호를 붙인 것이 유니코드 인코딩이다. 대표적으로 UTF-8 UTF-16에 대해 알아본다. UTF-16 모든 문..
보호되어 있는 글입니다.
JVM이란? 컴파일된 Java 바이트 코드(=목적파일, JVM이 이해할 수 있는 기계어)를 실행하기 위한 가상 기계 자바 프로그램과 달리 JVM은 운영체제에 종속적이므로, 각 OS에 맞는 자바 가상 머신을 설치해야 한다. JVM 의 구성요소 1. 자바 인터프리터(Interpreter) 2. 클래스 로더 3. JIT 컴파일러 4. 가비지 컬렉터 (향후 포스팅 예정) Java의 동작원리 자바 클래스 파일 (.java) => javac 명령어로 바이트 코드로 컴파일 (.class) => 클래스 로더에게 컴파일된 바이트코드를 전달하여 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 Runtime Data Area인 JVM 메모리에 올린다. => 실행 엔진은 JVM메모리에 올라온 바이트 코드들을 명령어 단위..