일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 상속
- 합병 정렬
- 제네릭 타입
- 항해99
- Switch Expressions
- 제네릭 와일드 카드
- junit 5
- 정렬
- yield
- auto.create.topics.enable
- 바운디드 타입
- 자바할래
- 접근지시자
- docker
- 브릿지 메소드
- System.in
- System.out
- 자바스터디
- github api
- raw 타입
- 프리미티브 타입
- System.err
- 스파르타코딩클럽
- 함수형 인터페이스
- Study Halle
- 로컬 클래스
- throwable
- 익명 클래스
- 람다식
- annotation processor
- Today
- Total
목록IT Study (82)
코딩하는 털보
Java 기초 08. 실수와 논리 자료형 실수 double이 기본 float 사용시 f,F 식별자 사용 정수와 표현 방법이 다르다. (부동 소수점 방식) 지수부 + 가수부 0을 포현할 수 없으며 약간의 오차가 발생할 수 있다. (부동 소수점 방식의 오류) 1.0 x 10^-1 가수 밑수 지수 float MSB+지수부(8bit)+가수부(23bit) double MSB+지수부(11bit)+가수부(52bit) 논리 자료형 boolean true,false 표현 package variable; public class DoubleTest { public static void main(String[] args) { double dNum = 3.14; //float fNum = 3.14; float fNum = 3...
Java 기초 07. 문자 자료형 인코딩 : 문자 -> 숫자값(코드) 'A' -> 65 디코딩 : 코드 -> 문자 65 -> 'A' 문자세트 (code-set) 아스키(ASCII) : 1byte 영문자, 숫자, 특수문자 표현 유니코드(Unicode) : 한글 등 복잡한 언어 표현 '가' -> AC00 (2byte) package variable; public class CharacterTest { public static void main(String[] args) { char ch = 'A'; System.out.println(ch); System.out.println((int)ch); int iCh = 66; System.out.println((char)iCh); //char ch2 = -66; ch..
Java 기초 06. 정수 자료형 자료형 종류 : 기본형 : 자바에서 기본 제공 (정수형, 문자형, 실수형, 논리형) 참조형 : 클래스 형식의 자료형 정수형 byte < short < int(보통) < long 문자형 char 실수형 float < double(보통) 논리형 boolean int 4byte(32bit) MSB를 제외한 31bit를 사용하여 -2^31 ~ 2^31-1(2147483647)까지 표현 가능 package variable; public class IntegerTest { public static void main(String[] args) { byte bs1 = -128; //byte bs2 = 128; System.out.println(bs1); //System.out.prin..
Java 기초 05. 변수란 무엇인가 변수 : 변하는 수 상수 : 변하지 않는 수 변수는 선언이 필요하다. 선언 방법 : 자료형 변수이름; int age; package variable; public class VariableTest { public static void main(String[] args) { int age, count; int age_2 = 20; age = 30; System.out.println(age); System.out.println(age_2); age = 10; System.out.println(age); count = 1; System.out.println(count); } } '='표시는 같다는 의미가 아니고 대입의 의미이다. (l-value=r-value : r-val..
Java 기초 04. 변수와 자료형 0000 1010 (2진수 8 bit) = 10 (10진수) 2진수 4 bit(ex: 0101 = 5)는 최대 15까지 표현 가능하다. 컴퓨터에서 음수 표현 (2의 보수) 0000 1010에서 맨앞의 0은 부호비트(MSB)이다. (0:양수 1:음수) 보수 : 더했을 때 MSB가 새로 밀리고 다른 값이 0이되도록 하는 수 2의 보수 구하는 법 : 0000 1010 (10) 의 1의 보수 (모든 bit 바꿈) -> 1111 0101 에 0000 0001을 더한다 + 0000 0001 = 1111 0110 검증 (2의 보수와 더 했을때 0이되어야 한다.) 0000 1010 + 1111 0110 = 1 0000 0000 (밀려 MSB를 제외한 모든 비트 = 0)
Java 기초 03. 설치 (IntelliJ 사용) 아래 ORACLE URL을 통해 원하는 버전의 JDK를 설치한다. https://www.oracle.com/java/technologies/javase-downloads.html Eclipse 또는 IntelliJ에서 새로운 프로젝트를 생성한다. File > New > Project… > Java 선택 > Project SDK를 설치한 Java로 설정 > Next > Next > Project 이름 및 Location 설정 > Finish 간단한 프로그램 작성 src에 'hello' 패키지 생성 (Command+N Mac) 'hello' 패키지에 'HelloJava' Class 생성 (Command+N Mac) 주의 : 패키지 이름은 소문자(hello)..
객체 지향 프로그래밍 77. Multi-thread 프로그래밍 임계 영역(critical section) 두 개 이상의 thread가 동시에 접근하게 되는 리소스 critical section에 동시에 thread가 접근하게 되면 실행 결과를 보장할 수 없음 thread간의 순서를 맞추는 동기화(synchronization)가 필요 동기화 임계 영역에 여러 thread가 접근하는 경우, 한 thread가 수행하는 동안 공유 자원을 lock하여 다른 thread의 접근을 막음 동기화를 잘못 구현하면 deadlock에 빠질 수 있음 자바에서 동기화 구현 synchronized 수행문과 synchronized 메서드를 이용 synchronized 수행문 synchronized(참조형 수식) { } //참조형 ..
객체 지향 프로그래밍 74. Thread 구현하기 쓰레드를 구현할 일이 많지는 않지만 안드로이드 개발에서 쓰임 쓰레드 프로그래밍에서는 공유 자원이 중요 Process 실행중인 프로그램, OS로부터 메모리를 할당 받음 Thread 실제 프로그램이 수행되는 작업의 최소 단위 하나의 프로세스는 하나 이상의 Thread를 가지게 됨 Thread 구현하기 자바 Thread 클래스로부터 상속받아 구현 Runnable 인터페이스 구현 상속 방식 package thread; class MyThread extends Thread { public void run() { int i; for (i=0;i
객체 지향 프로그래밍 72. 그 외 입출력 클래스와 데코레이터 패턴 File 클래스 파일 개념을 추상화한 클래스 입출력 기능은 없고 파일의 속성, 경로, 이름 등을 알 수 있음 RandomAccessFile 클래스 입출력 클래스 중 유일하게 파일 입출력을 동시에 할 수 있는 클래스 파일 포인터가 있어서 읽고 쓰는 위치의 이동이 가능함 다양한 자료형에 대한 메서드가 제공됨 package stream.others; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileTest { public static void main(String[] args) throws IOException { RandomAcc..
객체 지향 프로그래밍 71. 직렬화 인스턴스의 상태를 그대로 저장하거나 네트웍으로 전송하고 이를 다시 복원하는 방식 ObjectInputStream, ObjectOutputStream 보조스트림 사용 Serializable 인터페이스 직렬화는 인스턴스의 내용이 외부로 유출되는 것이므로 프로그래머가 객체의 직렬화 가능 여부를 명시함 구현 코드가 없는 마크 인터페이스 package stream.serialization; import java.io.*; // class Person implements Externalizable { //직렬화가능하며 구현해야할 기능이 있음 class Person implements Serializable { //직렬화가능하다는 마크 인터페이스 String name; transi..