728x90

일단 해보는 코딩 125

[Java] Thread 종류와 Thread 동기화 하는방법

Thread (스레드) 란? Thread는 독립적인 프로세스 실행 단위이다. Thread는 우리가 한글 문서를 작성하면서 프린트로 인쇄를 동시에 할 수 있는 것이나 인터넷을 하면서 음악을 듣는 것처럼 한 번에 두 가지 이상의 프로세스를 실행 가능하게 해 준다. 하지만 실제로 동시에 두 개가 실행되는 것은 아니고, 운영체제 내부에서 CPU의 프로세스를 쪼개서 각각을 Time Slot에 넣고 번갈아 실행하는 것이다. 동시에 돌아가는 것처럼 보이도록 아주 빠르게 Thread가 실 행되는 것인데 사람은 느끼지 못할 뿐이다. Thread 종류 1. Single Thread - 하나의 프로세스에서 오직 하나의 스레드로만 실행하기 때문에 하나의 레지스터와 스택으로 표현이 가능하다. 더보기 package Java11;..

[Java] Try - Catch(예외처리)

# Try - Catch(예외처리) 자바에서 프로그램이 실행되는 도중에 예외(에러)가 발생하면 그 시점에서 프로그램이 강제로 종료된다. 원래는 프로그램을 디버깅(Debugging)해서 오류를 수정한 뒤 실행하는 것이 원칙이지만 때로는 예상할 수 있는 가벼운 오류(숫자를 0으로 나눔 : 불능, 0을 0으로 나눔 : 부정) 가 있거나, 예외가 발생했을 때도 프로그램이 종료되지 않고 그 이후의 프로세스를 진행시키는 것이 더 좋을 수도 있다. 일종의 FailSafe 기법이라고 한다. 예외 처리를 통해 프로그램의 비정상적인 종료를 줄이고 정상적으로 프로그램이 계속 진행될 수 있도록 할 수 있다. catch 구문 catch (Exception e) { e.printStackTrace( ), e.~ } ; 예제1) ..

[Java] 인터페이스(Interface), 내부클래스의 종류, 접근제한자

인터페이스(Interface)란? 인터페이스는 앞에서 배운 ' 추상 클래스 ' 와 매우 유사하지만, 서비스 요청에 따른 중계자 역할을 하는 것과 같다. 고객이 호출할 수 있는 서비스의 목록이라고 할 수 있다.(내용을 감춰서 고객은 외부적으로만 접근할 수 있는 구조) 서버에서 DB, FTP, Web과 같은 여러 서비스를 실행하고 있는데 클라이언트가 DB와 FTP, Web 중 Web 서비스를 요청하면 웹 서비스가 제공되어야 하고, DB 서비스를 요청하면 데이터 베이스 서비스가 실행되어야 한다. 서버는 외부에 자신이 서비스하고 있는 모든 항목을 보여야 하고, 서비스 항목에 있는 모든 서비스가 실제로 실행될 수 있어야 한다. 인터페이스는 클라이언트가 서비스를 요청할 수 있는 서비스 목록으로 볼 수 있다. 서버는..

[Java] 추상 메서드(abstract method)

추상 메서드(abstract method) 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메서드를 의미 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메서드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메서드를 구현하도록 하기 위함이다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 용이하다. 이러한 추상 메소드는 선언 부만이 존재하며, 구현부는 작성되어 있지 않다. 바로 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것!!! 추상 메소드(abstract method)의 구성 [접근제한] abstract [반환..

[Java] 제네릭(Generic) 사용법

제네릭 클래스 제네릭 프로그래밍이란 일반적인 코드를 작성하고 이 코드를 다양한 타입의 객체에 대하여 재사용하는 객체지향 (OOP)기법이다. 원하는 타입의 객체만 받아들이기 위한 방법으로 볼 수 있다. 결국 하나의 메소드에서 여러 가지 타입을 한 번에 다 지원 하는 클래스가 제네릭 클래스라 할 수 있다. 예를 들어 클래스 하나 만들고, 내부 메서드에서 INT 만 아니라 원하는 자료형(객체) 타입 String이나 char 등을 다양하게 지원하고 싶을 때 사용한다고 볼 수 있다. 제네릭을 사용하는 이유 제네릭 타입을 사용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다. 자바 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해 제네릭 코드에 대해 강한 타입..

[Java] 접근제한자, 상속, 오버라이딩 예제 모음

오버라이딩, 오버로딩 참고 https://eun-s2.tistory.com/95 [Java] 가변인수, overloading, overriding 가변인수 메써드의 인자를 지정하지 않고 임의로 개수를 받아들이는 경우 class Test01 { int getMax(int x, int y) { //getMax( )에는 정수 x,y 두 개의 인자만 들어 올 수 있음 .......... } ex) class Test01 {.. eun-s2.tistory.com 기본 예제 모음 더보기 예제 1) package Java08; class Parent{ // 아래의 2개 멤버 변수를 정의 private int money = 200; private String str = "서울"; // 아래의 4개 멤버 메써드를 정의 ..

[Java] 함수(메써드) 호출 방식

메써드 호출 방식 메써드 호출은 함수 호출과 같이 메써드_명( )를 사용하면 메써드의 내용이 실행된다. 여기서는 call by value(값에 의한 호출)이라는 '깊은 복사' 방식은 값을 복사해서 그 값을 사용하는 방식이고, call by reference(주소에 의한 호출)는 얇은 복사방식은 메모리 주소를 참조해서 거기에 들어 있는 값을 꺼내서 사용하는 방식. 예제 1) package Java07; public class Test04 { void hello() { System.out.println("안녕?"); } static void hell() {//static은 정적이라는 의미로 고정되어 있다는 의미 System.out.println("Hello?"); } public static void mai..

[Java] Break/Continue 문

Break 문 반복문 내에서 강제적으로 가장 가까운 반복 문을 빠져나갈 때 사용 package Java06; public class Test01 { public static void main(String[] args) { // TODO Auto-generated method stub int n=1; while(true) {// 무한반복=>1>0, !true와 false는 불가 System.out.println(n); n++; if(n>10) break; } } } Continue 문 반복문 내에서 특정 문장이나 여러 문장들을 건너뛰고 다시 조건을 확인해서 실행할 때 package Java06; public class Test02 { public static void main(String[] args) {..

[Java] 자바 난수(random) 함수 및 seed 설명

난수(random) 발생 임의의 수를 발생시키는 매서드 Random( )을 사용한다. import java.util.Random 클래스 패키지가 필요하다. (숫자 입력) int rand = new Random( ).nextInt( ); / Math.random( ); System.currentTimeMillis ( ) "현재 시간"을 사용해 난수가 계속 바뀐다. random 한 숫자를 추출하기 위해서는 늘 변하는 값이 있어야한다.(seed) 컴퓨터는 내장된 pseudo(system random number) number를 가지고 있다가 랜덤한 숫자가 연산 등에서 필요하면 추출한다. package Java05; import java.util.Random; public class Test05 { public..

[Java] 배열(Array)

배열(Array)이란? 배열은 다수의 동일한 데이터형을 하나의 변수로 묶은 것인데, 다량의 동일한 데이터 타입을 다룰 때 매우 편리하다. 배열의 선언도 new 연산자를 사용해서 int[ ] a(OR int a [ ]) = new int[4]; 식으로 하는데 예전방식이다. 여기서 int[ ]는 배열 요소들의 데이터 타입이고 a가 배열_변수_명이며, int[4]는 크기가 4인 배열이라는 뜻이다. 앞으로 이 배열은 배열 변수 a로 사용하면 요소 4개가 함게 묶여서 사용될 수 있다. 배열 요소 하나 하나는 일반 변수처럼 참조와 대입이 가능하다. 배열의 요소의 첨자는 0부터 시작하기 때문에 크기가 4인 배열의 요소에 접근하려면 순서적으로 a[0], a[1], a[2], a[3]으로 해주어야 한다. 배열의 선언과 ..

728x90