본문 바로가기

Java | spring/Java Basic32

Java, 동시 실행 스레드! Multi Thread 프로그래밍 Multi process 동시에 여러 프로그램을 실행 할 수 있다. 우리가 사용하고 있는 윈도우 운영체제는 멀티프로세서 지원 동시에 여러가지 프로그램을 실행 할 수 있다. Multi thread 하나의 프로그램안에서 여러가지 기능이 동시에 실행 될 수 있다 예를 들면 한글프로그램에서 인쇄하기와 문서작성이 동시에 이루어 질 수 있다. 자바에서 멀티스레드 프로그램을 위하여 제공하는 클래스가 Thread. 멀티스레드 프로그래밍을 위하여 Thread 클래스를 확장하여 새로운 클래스를 만들고, run 메소드를 재정의 하여 그 안에 Thread가 해야 할 일을 기술한다. 다른 Thread와 공평하게 동작하고자 하는 문장을 run메소드에 기술한다. 자바는 Multi Thread 프로그램을 위하여 Thread클래스와 .. 2019. 5. 8.
Java RuntimeException, 자동 예외객체 생성 RuntimeException 예외가 발생하면 사용자는 반드시 예외처리를 해줘야 한다. 그러나 Exception의 수많은 예외들 중에 RuntimeException은 실행시에 발생하는 예외로서 사용자가 특별히 예외처리를 해주지 않아도 자바가 예외처리를 해준다. 그 상황이 되면 예외객체가 자동으로 생성된다. 따라서 RuntimeException의 후손이 아닌 예외는 반드시 사용자가 예외처리를 해 주어야 한다. 대다수의 입출력, 파일처리 관련 클래스 들은 예외를 가지고 있기 때문에 관련 메소드를 사용하거나 객체를 생성한 경우에 try{ }catch{ }를 사용해서 예외처리를 해줘야 하는 경우가 다수 있다. 만약 개발툴 이클립스, Spring 등을 사용하고 있다면, 예외처리를 하지 않으면 x표시가 나타나고 E.. 2019. 5. 8.
JAVA Exception 예외 처리 예외(Exception) 예기치 않은 상황 컴파일 시에 발생하는 문제가 아니라 프로그램 실행 시에 사용자의 부주의 등으로 일어나는 예기치 않은 상황 그런 상황에 대한 처리를 "예외 처리"라 한다. 자바는 대부분의 예외상황에 대한 클래스가 이미 만들어져 있다. 그 상황이 되면 자동으로 예외클래스형의 객체가 생성된다. 예를 들어 아래와 같은 상황에서는 예외가 발생한다. int a = 0; int b = 4; float r = b/a; 위 문장을 만나면 new ArithmeticException() 이 자동 발생. 0으로 나눌수는 없기 때문에. > try ~ catch로 직접 처리 하는 방법 throws 키워드로 예외를 메소드 호출하는 쪽으로 맡기는 방법 해당 메소드를 사용하는 쪽으로 예외를 던지는 것 해당 .. 2019. 5. 8.
자료구조, Stack 스택과 큐 Queue 프로그램 개발할 때 가장 많이 사용하는 자료 구조인 스택과 큐 스택은 상자를 쌓아 올리는 형태의 구조이고, 큐는 일상 생활에서 많이 사용하는 방식의 자료 구조 '선착순' 정보처리기사 필기에도 자주 기출문제로 출제되는 자료구조로 참고로 알고 있으면 좋다. Stack(스택) 스택은 사전적 의미로 '더미' , '쌓아 올림'이라는 의미이다. 자료를 넣는 곳과 꺼내오는 곳이 한 방향에서 이루어진다. 스택은 데이터를 쌓아 올리는 형태로 입력 및 저장하고, 출력하는 경우 맨 위에 데이터를 먼저 꺼내는 형태, 제일 마지막에 저장한 데이터를 제일 먼저 꺼내는 후입선출 형태의 자료 구조. LIFO : Last In First Out LIFO 구조 스택 메소드 ㅇ push 메소드 push는 스택에 자료를 넣는 것 E pus.. 2019. 5. 7.
JAVA 제네릭 정의와 필요성 (+ArrayList 타입 오류 이유) 제네릭이란? 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것을 '제네릭(Generic) 프로그래밍' 이라고 한다. 제네릭 프로그램은 참조 자료형이 변환될 때 이에 대한 검증을 컴파일러가 하므로 안정적 여러 참조 자료형이 쓰일 수 있는 곳에 특정한 자료형을 지정하지 않고 클래스나 메서드를 정의한 후 사용하는 시점에 어떤 자료형을 사용할 것인지 지정하는 방식 제네릭의 필요성 자료형 별로 메소드를 만들면 코드의 효율성이 떨어진다. 그래서 Object로 세팅을 하게 되면 변환 시 Object가 되기 때문에 반드시 형변환을 해야 하는 번거로움이 생긴다. 이럴때 사용시점에 자료형을 지정하는 제네릭 방식을 사용한다. 자바의 컬렉션프레임워크에는 어떤 자료형이라도 담을 수 .. 2019. 5. 7.
배열과 컬렉션프레임워크(List, set, map)의 차이 배열 자료형이 같은 기억장소의 모임 ㅇ 배열의 단점 자료형이 같아야 한다. 크기가 고정된다. int []a = new int[3]; int 정수만 담을 수 있는 배열 3개가 생긴다. int a[] = {10,20,30,40,50}; 값을 추가하거나, 중간의 값을 삭제하고자 하면 새로 배열을 만들어서 반복문으로 넣어줘야 하는 등 데이터 추가, 삭제가 번거롭다. 컬렉션 프레임워크는 왜 사용하는가? 전통적으로 많은 양의 데이터를 처리하기 위해서는 배열을 이용. 그러나 배열은 자료형이 같아야 하고 또 크기가 고정되어 있어 자료의 추가, 삭제하기에는 불편한 점이 많다. 이를 보완하기 위해 자바는 "동적배열"의 개념인 컬렉션 프레임워크를 제공한다. 컬렌션프레임워크는 어떤 자료형이라도 담을 수 있고 또, 자료의 추가.. 2019. 5. 7.
JAVA 자바, Wrapper 클래스 기본 자료형을 위한 클래스 매개변수가 객체거나 반환값이 객체인 경우 기본자료형을 객체형으로 사용 기본 자료을 감싼 클래스라고 생각하면 된다. 기본형 Wrapper boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double wrapper 클래스는 평소에는 사용할 일이 없지만, 변수 선언이 아닌 map, list에서 형식을 지정하는 경우에는 기본형이 아닌 wrapper클래스로 써줘야 한다. 또한, 각 기본형으로 변환하는 메소드 등을 사용하는 경우에 해당 클래스로 메소드에 접근해서 사용하게 된다. 하여 자료형 변환 시 자주 보게 되는 형태이다. ㅁ Integer 클래스 Integer인스턴스.. 2019. 5. 7.
JAVA 기본 클래스(Object, toString, equals 등) 자바 JDK에서는 기본적으로 4000개의 클래스를 제공하고 있다. 이러한 클래스를 가지고 상속 관계로 사용할 수 있다. Object 클래스 java.lang 패키지 : java.lang 패키지는 컴파일 할 때, import java.lang.*; 문장이 자동으로 추가되어 해당 패키지의 모든 하위 클래스를 사용할 수 있어서 import를 할 필요가 없다. 모든 클래스의 최상위 클래스 Object, 컴파일 과정에서 extends Object가 자동으로 쓰인다. 메서드 설명 String toString( ) 객체를 문자열로 표현하여 반환, 재정의하여 객체에 대한 설명이나 특정 멤버 변수 값을 반환 Object clone( ) 객체를 복제하여 동일한 멤버 변수 값을 가진 새로운 인스턴스 생성 void wait(.. 2019. 5. 7.
java String 기본 메소드 활용 예제 문자열에서 특정 위치 문자 가져오기 char charAt(int index) Returns the char value at the specified index. class StringTest02 { public static void main(String[] args) { String title = new String("hello java"); char a = title.charAt(0); System.out.println(a) } } (결과값) h 문자열의 길이를 구하는 스트링 기본 메소드 int () Returns the length of this string. - 이 기본 메소드는 빈칸도 하나의 문자로 취급한다. class StringTest02 { public static void main(Stri.. 2019. 5. 7.
반응형