본문 바로가기

TIP/Java8

[Java] Tips-자바 백문백답 - 전부 모아보기 Q: 자바에서 한 파일 내에 여러 클래스로 정의가 가능한가? A: 자바에서는 한 .java 파일 안에 여러개의 클래스를 정의할 수 있다. 그러나 이 경우, 그 중 하나의 클래스는 public으로 선언되어야 하며, 파일의 이름은 public 클래스의 이름과 동일해야 한다. 예를 들어, 다음과 같은 두 개의 클래스가 있는 경우, public class MyClass { // ... } class MyOtherClass { // ... } 와 같이 선언해야 한다. 위 코드를 MyClass.java 파일에 작성하면 된다. MyClass 클래스가 public으로 선언되어 있으므로, 파일 이름도 MyClass.java로 저장해야 한다. 이제 MyOtherClass 클래스는 MyClass 클래스에서 사용할 수 있으며.. 2023. 4. 1.
[Java] compiler V.S. interpreter python 은 interpreter에 의해 소스코드가 machine code로 변환된 후 바로 CPU로 전달되는 반면, C와 C++은 compiler에 의해 소스코드가 단번에 binary로 이뤄진 전체 machine- code file로 바뀐뒤, executor를 거쳐 CPU로 전달되는 것으로 알려져있다. python 자체의 속도가 느린 이유도 여기에 있는데, 소스코드를 한 줄씩 읽어 실행하는 방식으로 동작하기 때문이다. 인터프리터는 소스 코드를 실행하는 동안에도 번역을 수행하기 때문에 컴파일러에 비해 실행 속도가 느릴 수 밖에 없다. 반면 자바는 컴파일러와 인터프리터를 모두 사용하지만, 컴파일러를 사용하는 경우가 더 많다. 자바 소스 코드는 .java 파일로 작성되며, 이 파일은 자바 컴파일러에 의해.. 2023. 4. 1.
[Java] array element 순서 역순으로 뒤집기( reverse 함수 구현) array element 순서 역순으로 뒤집기( reverse 함수 구현. ) list1 array 에 저장된 1,2,3,4,5,6의 값을 뒤집어 6,5,4,3,2,1 array를 만들고 이를 list2 array에 저장한다. import java.util.*; public class Main { public static void main(String[] args) { int [] list1 = {1,2,3,4,5,6}; int [] list2 = reverse(list1); } public static int[] reverse(int[] list) { int [] result = new int[list.length]; for (int i = 0, j = result.length-1; i < list.l.. 2023. 4. 1.
[Java] Tips - 헷갈리는 내용 정리(length , length() 차이) 주의!! 잘못 적은 블로그들을 많이 봤는데, length와 length()는 분명히 다르다. length ->배열의 길이를 알고자 할 때 사용. double[] array = new double[10]; System.out.println(array.length); // 10 length는 함수가 아니라 array(배열)의 property로, method(함수)가 아니다! 함수였다면 length() 형태와 같이 ()가 무조건 들어갈 수밖에 없다!! double[] array = new double[10]; 에서 array는 Array Reference Variable인데, variable은 함수를 호출하지 못한다. 함수를 호출하는 건 객체 또는 클래스다. ※(클래스 또는 객체는 static method와 .. 2023. 4. 1.
[Java] 입력받기 Tips 필자가 java 초보라 많이 헷갈려서, 기초적인 것부터 정리해보려 한다. 기본적으로 Scanner sc = new Scanner(System.in); 와 같은 식으로 Scanner class에서 sc라는 객체를 정의해 input을 받아왔는데, 이 방법은 시간초과를 유발할 수 있기 때문에 보통 다른 방법을 선호한다. 가령 BufferedReader class를 이용하는 방법이다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 이 방법은 한 줄을 통째로 입력받을 때 사용한다. 이 객체에 있는 method를 불러와 입력을 받을 수 있다. 가령 다음과 같은 방식을 통해서. 1) br.readLine() readLine() me.. 2023. 3. 17.
[Java] Practice - using method - emirp problem A emirp (prime spelled backward) is a non-palindromic prime number whose reversal is also a prime. - For example, 17 is a prime and 71 is a prime, so 17 and 71 are emirps. Write a program that displays the first 120 emirps. Display 10 numbers per line, separated by exactly one space You must re-use the Practice #1 methods for Practice #2. emirp이란 '수소'로, 17같이 17도 소수고 71도 소수인 수의 집합을 말한다. 한 자리수는 제외.. 2023. 3. 16.
[Java] 가위바위보 게임 practice A program that plays the scissor-rock-paper game. A program randomly generates a number 0, 1, or 2 representing scissors, rock, and paper. The program prompts the user to enter a number 0, 1, or 2 and displays a message indicating whether the user or the computer wins, loses, or draws. Let the user continuously play until either the user or the computer wins two times more than their opponent (e.. 2023. 3. 9.
Java error in BOj public class Main { public static void main(String[] args) { } } 위와 같은 형식을 따르지 않고 임의로 class 이름을 변경하는 실수를 하면 error가 뜬다. 이외에 몇가지 에러 요소에 대해 알아보자. 1. public static void main(String[] args)에서 void 대신 int 나 double등 다른 data type으로 작성한 경우 런타임 에러가 발생한다. 2. public static void main(String[] args)에서 static 이 빠지면 런타임 에러가 발생한다. 3. public static void main(String[] args)에서 main이 아닐 경우 에러가 발생한다. package를 사용하면 ma.. 2023. 3. 2.