| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Hexagonal
- Transaction
- JDBC
- Adapter
- transactional
- Spring Data JPA
- Spring
- simplejpaRepository
- hexagonal architecture
- springboot
- JPA
- Layered Architecture
- 실무
- Today
- Total
ListJava (10)
Ezcho
1. Thread의 상태 Thread는 프로그램 실행의 가장 작은 단위이다. 우리가 이전 글에서는 MultiThread를 구현하는것을 보았는데, 그냥 저냥 프로그램을 실행시키면 그냥 main thread에서 실행하게 된다. 이런 Thread도 항상 실행 될 수가 없는것이. Thread도 한개의 프로세스이기 때문에, JVM에서 동시에 처리하는것이 아닌 시간을 잘게 쪼갠 후에 여러개의 쓰레드를 순서를 두고 실행하는것을 알 수 있다. 우리가 CPU내 프로세스의 상태를 나타낼 때 new, ready, running, blocked, suspended등으로 나타낼 수 있는데 JVM의 Thread역시 이렇게 현재 상태에 따라 여러 단계로 나뉠 수 있다. 현재 실행되는 Thread는 NEW: 쓰레드 객체가 생성되었으..
1. Thread란? 쓰레드란 여러작업을 동시에 수행할 수 있게 하는 것을 의미한다. 자바로 만들어진 프로그램은 JVM(Java Virtual Machine)에 의해 실행되는데, JVM위에서 여러가지 프로그램을 실행하는것이다. 즉 OS입장에서 본다면 JVM이라는 프로세스 하나가 실행된다고 느껴질 수 있지만, JVM에서 쓰레드를 통해 작업을 실행하면, 결국 여러개의 작업을 한번에 실행할 수 있게 되는것이다. 2. Thread사용 Java에서 Thread를 만드는 방법은 두가지로 나뉜다. 1. Thread클래스를 상속받는 방법 public class threadTest extends Thread{ String str; public threadTest(String str){ this.str = str; } p..
Java I/O java에서의 IO는 input Data와 Output Data로 나뉜다. IO 는 입출력에 대한 인터페이스 이다. Byte 와 char 자바에서는 입출력을 Byte와 Char 형태로 할 수 있다. Byte단위 입출력 Byte단위 입출력 클래스는 InputStream과 OutputStream이라는 추상클래스를 상속받아 만들어집니다. 크기: 1Byte 하위 추상 클래스: InputStream과 OutputStream 1. InputStream - 바이트 단위 입력 스트림의 최상위 추상 클래스 - 많은 추상 메서드가 선언되어 있고 이를 하위 스트림이 상속받아 구현함 하위 스트림 FileInputStream: 파일에서 Byte단위로 읽기 ByteArrayInputStream: 배열에서 Byte..
어노테이션 -Java5 부터 추가됨 -클래스나 메소드 위에 붙혀서 사용한다(@Override) -@ 는 at 이라는 뜻이다. -소스코드에 메타코드(추가 정보) 를 주는 역할을 한다. 자바가 기본으로 제공하는 어노테이션과 사용자가 직접 작성하는 어노테이션이 존재한다 이때 후자를 커스텀 어노테이션이라고 부른다. 커스텀어노테이션: 사용자가 직접 작성할 수 있는 어노테이션 커스텀 어노테이션의 사용법 어노테이션을 정의한다. 어노테이션을 클래스에서 사용한다. (타겟에 적용) 어노테이션을 이용하여 실행. 1. 어노테이션의 정의 Cout100 어노테이션의 정의 import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Rete..
Java내에서 날짜와 시간을 나타내기 위해서는 Date와 Calendar클래스를 사용한다. Date 클래스 -1.0 부분부터 만들어짐 -Date 는 지역화에 대한 고려가 되어있지 않음(여러 국가의 시차가 다른점) -생성자: Deprecated -메서드: 대부분 Deprecated Deprecated: 앞으로 지원하지 않을 수 있거나, 문제가 될 수 있음(사용하지 마세요) -사용: java.utill package Date date = new Date(); //현재 시간과 날자 instance 를 Date객체가 가짐 date.toString; //으로 출력 SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss a zzz") //MM은 대..
java.util패키지는 java.lang패키지 다음으로 많이 사용하는 패키지이다. Date, Calendar Date클래스- 지역화를 지원하지 않는다. 즉, 국가별로 현재 날짜와 시간이 다른점을 지원하지 않음 Calendar클래스 - 지역화를 지원함. 그리고 util패키지 내부에는 여러가지 자료구조 클래스가 존재한다. 이러한 자료구조 클래스들을 컬랙션 프레임워크 라고 한다. 컬랙션 프레임워크 자바2에 처음으로 등장했다. 컬렉션 프레임워크에서 가장 기본이 되는 interface는 Collection인터페이스이다. Collection 인터페이스는 중복도 허용, 자료가 저장된 순서도 기억하지 못한다. 존재하는 메서드는 1. add(); 추가 2. size(); 크기를 반환 3. iterator(); 자료를 ..
https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com Math Class는 java.lang패키지 내부에 존재하는 클래스이다. Private라서 new로 객체를 생성할 수는 없다. 하지만 코드를 짤때 복잡한 연산을 획기적으로 줄여주는 많은 메서드들을 보유하고 있다. Input은 double형에서 대부분 동작하며 int, float 역시 지원하는 메서드가 존재한다. -일반 Math.max() - 두 값중 큰 값을 반환한다. Math.min() - 두 값중 작은값을 반환한다. Math.abs() - 절댓값을 반환한다. Math.PI() - 원주율을 출력한다. -제곱 Math.pow() - a의 b제곱을 반환한다. Math...
우리는 Java 프로그래밍에서 문자열을 정의할 때 String을 사용한다. 그리고 문자열의 연산이 길어지거나, 문자열을 추가하는 상황에서는 StringBuffer 나 StringBuilder를 사용 해 왔다. 두개의 차이점을 무엇일까? String String 은 불변객체이다. String 생성시 할당 된 메모리는 변하지 않는다. StringBuilder와 StringBuffer는 가변객체이다. 그래서 String 과는 다르게 객체의 공간이 부족해지면 Buffer의 크기를 늘려준다. String의 불변성 그런데 우리는 String으로 수많은 연산을 한다. 대표적으론 문자열 더하기가 있다. 문자열을더할때 String 내부에서 어떤 변화가 나타나는지 살펴보자 아래 코드를 보자. String str1 = "h..