Language
-
2021-03-14 Writer은 문자열을 출력하는 최상위 스트림이다. 다만 Writer는 추상 클래스이기 때문에 new 연산자를 통한 객체 생성이 불가하다. 때문에 자식 클래스를 매개 값을 받아 객체를 생성한다. 또한 자바 내에서 바로 문자열로 스트림을 바로 읽어 들일 수 없기 때문에 스트림 기반 출력 클래스 또는 System.out을 형 변환하여 사용해야 한다. - 선언 Writer wr = new OutputStreamWriter(System.out); 위와 같이 Writer 클래스의 자식 클래스를 매개값으로 받아야지만, new 연산자를 사용한 객체 생성이 가능하다. - 실행 ( String ) package wWriter; import java.io.IOException; import java.i..
[Java] java Writer 문자 출력 스트림에 대하여 알아보기.2021-03-14 Writer은 문자열을 출력하는 최상위 스트림이다. 다만 Writer는 추상 클래스이기 때문에 new 연산자를 통한 객체 생성이 불가하다. 때문에 자식 클래스를 매개 값을 받아 객체를 생성한다. 또한 자바 내에서 바로 문자열로 스트림을 바로 읽어 들일 수 없기 때문에 스트림 기반 출력 클래스 또는 System.out을 형 변환하여 사용해야 한다. - 선언 Writer wr = new OutputStreamWriter(System.out); 위와 같이 Writer 클래스의 자식 클래스를 매개값으로 받아야지만, new 연산자를 사용한 객체 생성이 가능하다. - 실행 ( String ) package wWriter; import java.io.IOException; import java.i..
2021.03.14 -
2021-03-08 문제 어떤 정수 A가 있으면 그 숫자를 A = a1 * a2 * a3 * a4 ... * an으로 했을 때 A' = a1 + a2 + a3 ... + an이 성립하면 "A는 A'으로 변할 수 있다"라고 한다. (ai는 정수) 만약 A'이 A''으로 변할 수 있으면 "A는 A''으로 변할 수 있다"라고 한다. 이때 A와 B가 주어지면 A는 B로 변할 수 있는지 판별하시오. 입력 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다. 출력 각각의 테스트 케이스마다 한 줄에 변할 수 있으면 yes, 아니면 no를 출력한다. 힌트 6 = 2*3, 2+3=5이므로 성립한다. 소스코드 impo..
백준 BaekJoon 1402번: 아무래도이문제는A번난이도인것같다 [Java]2021-03-08 문제 어떤 정수 A가 있으면 그 숫자를 A = a1 * a2 * a3 * a4 ... * an으로 했을 때 A' = a1 + a2 + a3 ... + an이 성립하면 "A는 A'으로 변할 수 있다"라고 한다. (ai는 정수) 만약 A'이 A''으로 변할 수 있으면 "A는 A''으로 변할 수 있다"라고 한다. 이때 A와 B가 주어지면 A는 B로 변할 수 있는지 판별하시오. 입력 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다. 출력 각각의 테스트 케이스마다 한 줄에 변할 수 있으면 yes, 아니면 no를 출력한다. 힌트 6 = 2*3, 2+3=5이므로 성립한다. 소스코드 impo..
2021.03.08 -
2021-03-07 - Call By Value 바로 결론부터 말하자면 자바는 Call By Value와 같은 특징을 가지고 있다. 아래의 코드를 보자. package StringCallByValue; public class Main { public static void stringSwap1(String str1, String str2) { String temp = str1; str1 = str2; str2 = temp; } //String 변수 2개를 전달받아 swap 해주는 간단한 메서드 선언 public static void main(String[] args) { String str1 = "aaa"; String str2 = "bbb"; System.out.println(str1 + " / " + ..
[Java] java는 Call By Value인가? Call By Reference인가?2021-03-07 - Call By Value 바로 결론부터 말하자면 자바는 Call By Value와 같은 특징을 가지고 있다. 아래의 코드를 보자. package StringCallByValue; public class Main { public static void stringSwap1(String str1, String str2) { String temp = str1; str1 = str2; str2 = temp; } //String 변수 2개를 전달받아 swap 해주는 간단한 메서드 선언 public static void main(String[] args) { String str1 = "aaa"; String str2 = "bbb"; System.out.println(str1 + " / " + ..
2021.03.07 -
2021-03-06 -정의 InputStream과 OutPutStream모두 스트림 클래스의 최상위 클래스로 모두 추상 클래스이다. 때문에 자신의 new 연산자로 는 객체를 생성할 수 없으며, 자식 클래스 및 System 객체 자체를 매개 값으로 받아야 한다. (전체 코드는 게시물 맨 아래에 올려두었다.) - 선언 InputStream is = System.in; OutputStream os = System.out; byte [] checkByte = new byte [100]; int size = -1; // 입력된 데이터가 더이상 있는지 여부를 체크할 // size 변수 -1일 경우 더 이상의 데이터가 없다. 선언부에서는 입력/출력 스트림을 모두 System.in /. out를 매개 값으로 받아 객체..
[Java] InputStream 과 OutputStream 간의 스트림 통신2021-03-06 -정의 InputStream과 OutPutStream모두 스트림 클래스의 최상위 클래스로 모두 추상 클래스이다. 때문에 자신의 new 연산자로 는 객체를 생성할 수 없으며, 자식 클래스 및 System 객체 자체를 매개 값으로 받아야 한다. (전체 코드는 게시물 맨 아래에 올려두었다.) - 선언 InputStream is = System.in; OutputStream os = System.out; byte [] checkByte = new byte [100]; int size = -1; // 입력된 데이터가 더이상 있는지 여부를 체크할 // size 변수 -1일 경우 더 이상의 데이터가 없다. 선언부에서는 입력/출력 스트림을 모두 System.in /. out를 매개 값으로 받아 객체..
2021.03.06 -
2021-03-05 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대..
백준 BaekJoon 1260번: DFS와BFS [Java]2021-03-05 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대..
2021.03.05 -
2021-03-01 - 정의 Reader는 FileReader / BufferedReader / InputStreamReader의 최상위 클래스이다. 오늘은 문자열 스트림을 받아들이는 이 Reader(문자열 기반 스트림 최상위 클래스) 클래스에 대하여 알아보도록 하자. - 특징 Reader reader = System.in; 기존의 inputstream은 System.in을 매개 값으로 받아 객체를 생성할 수 있었다. 하지만 Reader 클래스의 경우 문자열 스트림이기 때문에 직접적으로 inputstream을 받아들일 수 없고 반드시 문자열 스트림 타입으로 변환된 자식 클래스를 받아들여야지 객체가 생성된다. ( Reader 역시 추상 클래스이기 때문에 자기 자신을 new 연산자를 통해 객체를 생성할 수 ..
[Java] Class Reader 문자열입력 스트림 클래스 알아보기.2021-03-01 - 정의 Reader는 FileReader / BufferedReader / InputStreamReader의 최상위 클래스이다. 오늘은 문자열 스트림을 받아들이는 이 Reader(문자열 기반 스트림 최상위 클래스) 클래스에 대하여 알아보도록 하자. - 특징 Reader reader = System.in; 기존의 inputstream은 System.in을 매개 값으로 받아 객체를 생성할 수 있었다. 하지만 Reader 클래스의 경우 문자열 스트림이기 때문에 직접적으로 inputstream을 받아들일 수 없고 반드시 문자열 스트림 타입으로 변환된 자식 클래스를 받아들여야지 객체가 생성된다. ( Reader 역시 추상 클래스이기 때문에 자기 자신을 new 연산자를 통해 객체를 생성할 수 ..
2021.03.01 -
2021-02-25 - 정의 모든 출력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 OutputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. This abstract class is the superclass of all classes representing an output stream of bytes. An output stream accepts output bytes and sends them to some sink. Applications that need to define a subclass of OutputStream must always provide at least a method that writes one byte of output. 이 추상 클..
[Java] Class OutputStream 입력 스트림 클래스 알아보기.2021-02-25 - 정의 모든 출력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 OutputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. This abstract class is the superclass of all classes representing an output stream of bytes. An output stream accepts output bytes and sends them to some sink. Applications that need to define a subclass of OutputStream must always provide at least a method that writes one byte of output. 이 추상 클..
2021.02.25 -
2021-02-24 자바의 flatMapXXXX( ) 메서드는 기존의 스트림의 데이터를 다수의 데이터로 구성된 새로운 스트림으로 리턴하는 역할을 한다. 여기서의 플랫은 다양한 타입의 매개변수를 받을 수 있으며, 또한 flatMapToInt / flatMapToDouble 등과 같이 제네릭 타입을 특정 타입으로 매핑해주는 것 도 가능하다. 아래의 예제를 보자. - 예제 package sStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class main { public static void main(String[] args) { List ..
[Java] 자바 Stream flatMapXXXX( ) 메소드를 알아보자.2021-02-24 자바의 flatMapXXXX( ) 메서드는 기존의 스트림의 데이터를 다수의 데이터로 구성된 새로운 스트림으로 리턴하는 역할을 한다. 여기서의 플랫은 다양한 타입의 매개변수를 받을 수 있으며, 또한 flatMapToInt / flatMapToDouble 등과 같이 제네릭 타입을 특정 타입으로 매핑해주는 것 도 가능하다. 아래의 예제를 보자. - 예제 package sStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class main { public static void main(String[] args) { List ..
2021.02.24 -
2021-02-21 모든 입력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 InputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. - 출처 : java API ( 글의 내용의 바탕은 API 기준으로 작성되었다.) This abstract class is the superclass of all classes representing an input stream of bytes. Applications that need to define a subclass of InputStream must always provide a method that returns the next byte of input. ( 이 추상 클래스는 바이트의 입력 스트림을 나타내는 모든 클래스의 슈..
[Java] Class InputStream 입력 스트림 클래스 알아보기.2021-02-21 모든 입력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 InputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. - 출처 : java API ( 글의 내용의 바탕은 API 기준으로 작성되었다.) This abstract class is the superclass of all classes representing an input stream of bytes. Applications that need to define a subclass of InputStream must always provide a method that returns the next byte of input. ( 이 추상 클래스는 바이트의 입력 스트림을 나타내는 모든 클래스의 슈..
2021.02.21 -
2021-02-17 String의 Split과 달리 StringTokenizer는 문자열을 문자 자체로 구분하는데, 이를 토큰이라고 표현하기도 한다. 오늘은 이 StringTokenizer의 사용법을 알아보도록 하자. - 선언 StringTokenizer st = new StringTokenizer(name, " "); 자바 API중 하나의 클래스이기 때문에 객체로 만들어서 사용해 주어야 한다. 또한 선언 시 2가지의 매개 값을 주어야 하는데 첫 번째는 토큰화 하고 싶은 스트링 객체이고, 두 번째는 이러한 문자 토큰을 구분 지어줄 delimiter를 넣어준다. 사용할 예제는 아래와 같이 규칙적인 여러 공백을 가지는 문자열로 아래와 같다. String name = "aaa bbb ccc ddd fff"; ..
[Java] StringTokenizer 를 통한 문자열 나누기.2021-02-17 String의 Split과 달리 StringTokenizer는 문자열을 문자 자체로 구분하는데, 이를 토큰이라고 표현하기도 한다. 오늘은 이 StringTokenizer의 사용법을 알아보도록 하자. - 선언 StringTokenizer st = new StringTokenizer(name, " "); 자바 API중 하나의 클래스이기 때문에 객체로 만들어서 사용해 주어야 한다. 또한 선언 시 2가지의 매개 값을 주어야 하는데 첫 번째는 토큰화 하고 싶은 스트링 객체이고, 두 번째는 이러한 문자 토큰을 구분 지어줄 delimiter를 넣어준다. 사용할 예제는 아래와 같이 규칙적인 여러 공백을 가지는 문자열로 아래와 같다. String name = "aaa bbb ccc ddd fff"; ..
2021.02.17 -
2021-02-16 Set / Map 컬렉션일 경우 상관이 없겠지만, list 함수는 중복된 값이 다수 들어가 있을 가능성이 있다. 이러한 경우 contains를 통해 foreach문을 돌면서 비교하는 방법도 있겠지만 Stream을 이용하면 좀 더 손쉽게 중복처리를 할 수 있다. 오늘은 이와 같은 방법을 알아보도록 하자. - 에제 코드 package sStream; public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; }// 생성자 //// getter / setter public String getName() { retur..
[Java] Stream 중복된 값 제거 /필터링(distinct)2021-02-16 Set / Map 컬렉션일 경우 상관이 없겠지만, list 함수는 중복된 값이 다수 들어가 있을 가능성이 있다. 이러한 경우 contains를 통해 foreach문을 돌면서 비교하는 방법도 있겠지만 Stream을 이용하면 좀 더 손쉽게 중복처리를 할 수 있다. 오늘은 이와 같은 방법을 알아보도록 하자. - 에제 코드 package sStream; public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; }// 생성자 //// getter / setter public String getName() { retur..
2021.02.16 -
2021-02-15 많은 Thread들이 동시에 수행이 된다면 자신이 원하는 결과를 얻지 못하고, 원치 않는 결과물이 나올 수 도 있다. 이럴 경우를 대비해서 자바에서는 Thread들 간의 우선순위를 정해 혼란을 방지하고 먼저 수행되야할 Thread와 그 이후에 수행되어야 할 Thread를 정할 수 있는데, 오늘은 그 방법을 알아보도록 하자. - 실행 코드 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(() -> { for(int i = 0; i< 5; i++) { System.out.println("thread1 실행중입니다 . . . ."); } System.o..
[Java] Thread 우선순위 정하기 (스레드 우선순위)2021-02-15 많은 Thread들이 동시에 수행이 된다면 자신이 원하는 결과를 얻지 못하고, 원치 않는 결과물이 나올 수 도 있다. 이럴 경우를 대비해서 자바에서는 Thread들 간의 우선순위를 정해 혼란을 방지하고 먼저 수행되야할 Thread와 그 이후에 수행되어야 할 Thread를 정할 수 있는데, 오늘은 그 방법을 알아보도록 하자. - 실행 코드 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(() -> { for(int i = 0; i< 5; i++) { System.out.println("thread1 실행중입니다 . . . ."); } System.o..
2021.02.15 -
2021-02-14 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 소스코드 import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("숫자를 입력해주세요."); int input = scan.nextInt(); int [] arr = new int[input]; int sum = 1; for(int i = 0; i < input; i++) { arr[i] = i..
백준 BaekJoon 10872번: 팩토리얼 [Java]2021-02-14 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 소스코드 import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("숫자를 입력해주세요."); int input = scan.nextInt(); int [] arr = new int[input]; int sum = 1; for(int i = 0; i < input; i++) { arr[i] = i..
2021.02.14 -
2021-02-13 enum에는 단순 열거 상수형 필드 값만 주는 것이 아닌, 생성자를 통해서 새로운 열거 상수와 대응하는 데이터를 생성자를 통해서 연결시킬 수 있는데, 오늘은 그 방법을 알아보자. - 전체코드 생성자가 있다는 것은 매개변수 값을 줄 수 있다는 소리이다. 하지만 방법이 조금 특이하다. 일단 아래 전체 코드를 한번 쭉 살펴보자. package practice_00_enum; public class Main3 { // 열거타입은 클래스 내부에서도 생성할 수 있다. public enum Number{ NO_1("홍길동"), NO_2("둘리"), NO_3("고길동"); // 마지막 열거상수 소괄호 옆에는 ; 을 적어주어야 한다. private String name; // 열겨형 상수와는 다른 값..
[Java] enum의 생성자와 열거상수 필드 알아보기.2021-02-13 enum에는 단순 열거 상수형 필드 값만 주는 것이 아닌, 생성자를 통해서 새로운 열거 상수와 대응하는 데이터를 생성자를 통해서 연결시킬 수 있는데, 오늘은 그 방법을 알아보자. - 전체코드 생성자가 있다는 것은 매개변수 값을 줄 수 있다는 소리이다. 하지만 방법이 조금 특이하다. 일단 아래 전체 코드를 한번 쭉 살펴보자. package practice_00_enum; public class Main3 { // 열거타입은 클래스 내부에서도 생성할 수 있다. public enum Number{ NO_1("홍길동"), NO_2("둘리"), NO_3("고길동"); // 마지막 열거상수 소괄호 옆에는 ; 을 적어주어야 한다. private String name; // 열겨형 상수와는 다른 값..
2021.02.13 -
2021-02-12 Scanner 에는 String을 입력받는 메서드 next()와 nextLine() 이 있는데, 오늘은 이 둘의 차이를 알아보도록 하자. - Scanner.next() package nextLineVsNext; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str1 = scan.next(); // 우선 next의 경우 공백문자를 받아들일 수가 없다. // 위와 같이 입력 "a a"와 같은 결과를 주었다고 보자. System.out.println("str1 -> " + str1); } } 출력결과를..
[Java] Scanner / next() 와 nextLine() 차이를 알아보자.2021-02-12 Scanner 에는 String을 입력받는 메서드 next()와 nextLine() 이 있는데, 오늘은 이 둘의 차이를 알아보도록 하자. - Scanner.next() package nextLineVsNext; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str1 = scan.next(); // 우선 next의 경우 공백문자를 받아들일 수가 없다. // 위와 같이 입력 "a a"와 같은 결과를 주었다고 보자. System.out.println("str1 -> " + str1); } } 출력결과를..
2021.02.12 -
2021-02-11 너비 우선 탐색(Breadth-first search, BFS)은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용한다. OPEN List는 큐를 사용해야만 레벨 순서대로 접근이 가능하다. (출처 위키피디아) 사실 말은 조금 어려울 수 있어 그림으로 다시 한번 설명하겠다. 아래의 예제를 보자. BFS로 1번 정점부터 시작해 탐색을 진행해 보겠다. 순서는 아래와 같다. 1 - > 1번 정점이 큐에 들어가게 된다. 2 - > 1번 정점과 인접해 있는 두 개의 접점 2번과 4번 정점을 큐에 담는다. 3 - > 1번 정점과 인접한 곳..
[Java] 너비 우선 탐색 BFS 대하여 알아보자2021-02-11 너비 우선 탐색(Breadth-first search, BFS)은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용한다. OPEN List는 큐를 사용해야만 레벨 순서대로 접근이 가능하다. (출처 위키피디아) 사실 말은 조금 어려울 수 있어 그림으로 다시 한번 설명하겠다. 아래의 예제를 보자. BFS로 1번 정점부터 시작해 탐색을 진행해 보겠다. 순서는 아래와 같다. 1 - > 1번 정점이 큐에 들어가게 된다. 2 - > 1번 정점과 인접해 있는 두 개의 접점 2번과 4번 정점을 큐에 담는다. 3 - > 1번 정점과 인접한 곳..
2021.02.11 -
2021-02-10 여러 개의 스레드를 사용하다 보면, 스레드 간의 이름이 혼동되는 상황이 발생할 수 있다. 이 경우를 대비하여 스레드 간의 이름을 설정하는 방법이 존재하는데 오늘은 이와 같은 방법을 알아보자. 예제 스레드 2개 package Thread; public class Thread_A extends Thread{ public Thread_A() { setName("Thread_A"); } @Override public void run() { for(int i = 0; i < 5; i++) { System.out.println("상속받은 Thread_A 클래스가 실행 중 입니다."); } } } 스레드는 총 2가지 스레드를 사용할 것이다. 하나는 클래스에서 Thread를 상속받아 구현한 스레드(..
[Java] Thread 이름 설정하는 방법 알아보기.2021-02-10 여러 개의 스레드를 사용하다 보면, 스레드 간의 이름이 혼동되는 상황이 발생할 수 있다. 이 경우를 대비하여 스레드 간의 이름을 설정하는 방법이 존재하는데 오늘은 이와 같은 방법을 알아보자. 예제 스레드 2개 package Thread; public class Thread_A extends Thread{ public Thread_A() { setName("Thread_A"); } @Override public void run() { for(int i = 0; i < 5; i++) { System.out.println("상속받은 Thread_A 클래스가 실행 중 입니다."); } } } 스레드는 총 2가지 스레드를 사용할 것이다. 하나는 클래스에서 Thread를 상속받아 구현한 스레드(..
2021.02.10 -
2021-02-09 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (출처 : 위키피디아 ) 즉 기존의 싱글 스레드가 아닌 멀티스레드를 사용하기 위해서 이와 같이 따로 스레드를 만들어주어야 하는데, 오늘은 그 방법을 알아보자. 방법 1.람다식으로 Runnable 구현하기 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(()-> {..
[Java] Thread를 선언(생성) 하는 방법 알아보기.2021-02-09 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (출처 : 위키피디아 ) 즉 기존의 싱글 스레드가 아닌 멀티스레드를 사용하기 위해서 이와 같이 따로 스레드를 만들어주어야 하는데, 오늘은 그 방법을 알아보자. 방법 1.람다식으로 Runnable 구현하기 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(()-> {..
2021.02.09 -
2021-02-08 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. Source Code import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); int ..
백준 BaekJoon 4153번: 직각삼각형 [Java]2021-02-08 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. Source Code import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); int ..
2021.02.08 -
2021-02-07 자바에는 열거형이라는 enum이라는 것이 있다. 이는 자바의 3 요소로 불리기도 한다. ( class / Interface / enum) 오늘은 이 enum을 만드는 방법을 간단히 알아보도록 하자. (기준은 eclipse로 설명하겠다.) enum 만들기 만드는 방법은 간단하다. 기존의 class와 interface를 만들듯이 package 우클릭 - > new -> enum을 클릭해 생성하면 된다. 그러면 이제 아래와 같은 창이 뜨게되는데, 웬만해서는 그냥 default로 두고 Name만 설정해 준 뒤, Finish 버튼을 눌러 주면 된다. enum 선언하기 사실 모양은 class와 interface와는 다른 점이 없다. 다만 enum의 주요목적은 상직적인 의미를 가지는 상수를 선언해..
[Java] enum 열거형(타입) 생성과 사용법 알아보기.2021-02-07 자바에는 열거형이라는 enum이라는 것이 있다. 이는 자바의 3 요소로 불리기도 한다. ( class / Interface / enum) 오늘은 이 enum을 만드는 방법을 간단히 알아보도록 하자. (기준은 eclipse로 설명하겠다.) enum 만들기 만드는 방법은 간단하다. 기존의 class와 interface를 만들듯이 package 우클릭 - > new -> enum을 클릭해 생성하면 된다. 그러면 이제 아래와 같은 창이 뜨게되는데, 웬만해서는 그냥 default로 두고 Name만 설정해 준 뒤, Finish 버튼을 눌러 주면 된다. enum 선언하기 사실 모양은 class와 interface와는 다른 점이 없다. 다만 enum의 주요목적은 상직적인 의미를 가지는 상수를 선언해..
2021.02.07