Java
-
[Java] 변수, 연산자, 조건문, 반복문, 배열, 객체지향, 예외처리JAVA 2022. 9. 13. 12:12
변수(Variable) 하나의 값을 저장할 수 있는 기억공간 변수의 타입(Data type) 변수의 기본형 타입(Primitive type) 논리 = boolean 문자 = char 숫자 정수 = byte, short, int, long 실수 = float, double 구분 1byte 2byte 4byte 8byte 논리형 boolean 문자형 char('') 정수형 byte short int long(L) 실수형 float(f) double 변수의 참조형 타입(Reference type) 기본형을 제외한 나머지(예를 들어 String, System 등) 객체의 주소를 저장한다. (4byte) 변수 선언 시 용어 정리 변수(variable) = 하나의 값을 저장하기 위한 공간 상수(constant) =..
-
[Java] Process & Thread (프로세스와 스레드) 알아보기JAVA 2022. 9. 5. 15:32
프로세스와 스레드 구분하기 모든 프로세스는 최소한 1개 이상의 스레드를 가지고 있다. 프로세스(공장) : 실행 중인 프로그램, 자원(resources)과 스레드로 구성되어있다. 자원은 메모리, cpu.. 등등 메모리에는 프로세스에 필요한 소스코드, static 멤버, heap(동적 메모리 영역), stack(지역변수, 매개변수, 반환 값 등 일시적인 데이터) 공간을 확보한다. 프로세스 생성 시 PCB블록이 함께 생성된다. 스레드(일꾼) : 프로세서 내에서 실제 작업을 수행하는 것을 말한다. 경량화된 프로세스 : 스레드는 프로세스의 소스코드, static멤버, heap을 공통된 자원으로 사용한다. 스레드는 stack만 별도로 가지고 있다. 싱글 스레드 : 자원 + 스레드 1 멀티 스레드 : 자원 + 스레드..
-
[Java] 표준, 메타 Annotation(애너테이션)JAVA 2022. 9. 2. 12:29
Java에서 제공하는 애너테이션에는 표준 애너테이션과 메타 애너테이션이 있습니다. 애너테이션 종류 표준 애너테이션 설명 @Override 컴파일러에게 오버라이딩하는 메서드라는 것을 알린다. @Deprecated 사용하지 않을 것을 권장하는 대상에 붙인다. @SuppressWarnings 컴파일러의 특정 경고를 나타나지 않게 해준다. @SafeVarargs 제네릭 타입의 가변인자에 사용한다. @FunctionalInterface 함수형 인터페이스라는 것을 알린다. @Native native메서드에서 참조되는 상수 앞에 붙인다. 메타 애너테이션 설명 @Target* 애너테이션이 적용가능한 대상을 지정한다. @Documented* 애너테이션 정보가 javadoc으로 작성된 문서에 포함되게 한다. @Inheri..
-
[Java Note] Generics(제네릭스) 선언 정의 제한 형 변환 와일드 카드JAVA 2022. 8. 31. 16:55
제네릭스는 컴파일 시 타입을 체크해주는 기능으로 객체의 타입 안정성을 높이고 형 변환의 번거로움을 줄여줌으로써 코드가 간결해질 수 있다. 제네릭 클래스 선언 클래스를 작성할 때 Object 타입 대신 T와 같은 타입 변수를 사용한다. class TEST{ Object item; void setItem(Object item){this.item = item;} Object getItem(){return item;} } // Object 대신 T와 같은 타입변수 사용 class Test{ T item; void setItem(T item){this.item = item;} T getItem(){return item;} } 참조 변수, 생성자에 T 대신 실제 타입을 지정하면 형 변환 생략이 가능하다. Test ..
-
[Java] Enum (열거형), Annotation (애너테이션)JAVA 2022. 8. 31. 14:04
Enum은 관련된 상수들을 같이 묶어 놓은 것을 의미합니다. Enum // Enum 사용 x class Card{ // 무늬 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; // 숫자 static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; final int kind; final int num; } 이 경우에 if(Card.CLOVER == Card.TWO)를 하면 true가 나오지만 이것은 의미적으로 맞지 않습니다. CLOVER은 무늬이고 TWO는 숫자인데 이걸..
-
[Java] 비트 연산자(AND)로 홀수 짝수 구분하기JAVA 2022. 8. 30. 17:02
비트 연산자에는 AND(&), OR(|), XOR(^) 이렇게 3가지가 있습니다. 이 외에도 비트 반전(~), SHIFT 연산()이 있습니다. 비트 연산자로 홀수 짝수 구분하기 class Test{ boolean check(int x){ return ((x&1) == 1); } } 실행 과정 예를 들어 매개변수 x에 3이 대입되었다고 가정한다. 3은 2진수로 0011이 된다. 0011 & 0001을 계산하면 결과는 2진수로 0001, 10진수로 1이 나온다. 1 == 1은 같기 때문에 true를 반환한다. 예를 들어 매개변수 x에 4가 대입되었다고 가정한다. 4는 2진수로 0100이 된다. 0100 & 0001을 계산하면 결과는 2진수로 0000, 10진수로 0이 나온다. 0 == 1은 다르기 때문에 f..
-
[JAVA] Generics 정의 및 타입변수, 다형성JAVA 2022. 8. 23. 11:43
Generics란 무엇인가? 컴파일 시 타입을 체크해주는 기능을 말하며 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄일 수 있다. 실행시 에러가 발생하는 것을 컴파일 에러로 만들어 준다. JDK 1.5 이후 Generics를 꼭 사용해주는 것이 좋다. ArrayList tvList = new ArrayList(); tvList.add(new Tv()); // ok tvList.add(new Audio()); // Error! Tv 타입의 객체만 저장할 수 있는 ArrayList타입의 참조변수 tvList가 만들어졌다. 예제 ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30"); Integer i = (Integer)..
-
Java 객체지향 공부 다형성, interface, 상속, 포함 등JAVA 2022. 8. 22. 19:09
Java에서 가장 중요한 개념인 객체지향에 대해 공부한 자료입니다. 객체지향 개념 코드의 재사용성을 높이고 코드의 관리를 수월하게 하며 신뢰성이 높은 프로그램의 개발을 가능하게 만들어준다. 클래스와 객체의 정의 클래스란 객체를 정의해 놓은 것을 말한다. 객체란 실제로 존재하는 개념이다. 객체는 인스턴스를 포함하는 일반적인 의미이다. 인스턴스화란 클래스로부터 인스턴스를 생성하는 것을 말한다. 객체의 구성 요소 객체에는 속성(변수)과 기능(메서드)으로 이루어져 있다. 객체에 있는 속성과 기능을 객체의 멤버라고 부른다. 인스턴스 생성과 사용 인스턴스를 생성하는 방법은 일반적으로 "클래스명 참조 변수명 = new 클래스명()"이다. Tv t; // 객체를 다루기 위한 참조변수를 선언 Tv t = new Tv()..