Java 19

[Java] 왜 main()에 들어가는 인자는 오직 String 배열 뿐일까?

자바에서 프로그램을 코딩하기 위해 가장 먼저 입력하는 코드가 있다. public class Example { public static void main(String[] args) { ... } } 바로 이놈인데, 왜 String[] args를 쓰는지 알 길이 없었다. 처음에는 그냥 받아들였는데, 곰곰이 생각해보니 대체 이놈의 정체가 무엇인가! main()이 필요한 이유는 → 자바 클래스에서 main()이 엔트리 포인트기 때문이다. (항상 main()부터 실행된다). 근데 왜 String[] args가 필요하지?! Java 클래스로 프로그램을 실행할 때, JVM은 길이가 0인 String 배열을 먼저 생성한 다음 main() 메소드를 호출할 때 매개값으로 이 배열을 전달한다. String[] args = ..

Java 2022.05.24

[Java]While문 & Switch문 함께 쓸 때 주의점

switch 문에서의 break 원래 while문에서 break를 사용하면 while문을 종료시키고 빠져나올 수 있다. 그런데 만약 while문 안에 switch문을 쓴 뒤, switch문에서 바깥을 감싸고 있는 while문까지 종료시켜야 할 경우라면 어떨까? 그냥 생각해보면 switch문의 특정 case에서 break넣으면 되는 거 아냐?라고 생각할 수 있는데, 이렇게 하면 문제가 발생한다. switch 문에서의 break는 case를 빠져나가는 용도로만 쓰이지 while을 종료시키지 않기 때문. 그렇다고 break를 두 번 쓰려니 이미 위의 break에서 switch문을 빠져나왔으니 아래 break로 가지 않는다. 어떻게 해야 할까? 결론부터 말하면, while문을 종료시키려면 while문에서의 조건..

Java 2022.05.23

[Java]참조 타입(이것이 자바다 Ch.5)(작성 중)

5.1 데이터 타입 분류 데이터 타입 원시 타입(Primitive type) 정수 타입 byte(1byte) char(2byte) short(2byte) int(4byte) long(8byte) 실수 타입 float double 논리 타입 boolean 참조 타입(Reference type) 배열 타입(array) 열거 타입(enum) 클래스(class) 인터페이스(Interface) 💡 참조 타입: 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말함. 변수: 스택에 생성 int, double → 직접 값을 저장 객체: 힙에 생성 클래스 변수 → 힙 영역의 객체 주소 값을 갖는다. 주소를 통해 객체를 참조한다는 뜻에서 클래스 변수를 참조 타입(Reference type) 변수라..

Java 2022.05.20

[Java]Integer types and operations

Integer types and operations Java는 정수를 나타내는 몇 가지 자료형을 제공한다. 실제로, 가장 많이 사용하는 자료형은 int와 long이다. 첫번째 타입은 두 번째보다 더 작은 범위의 숫자를 저장할 수 있으나, 보통은 int형만으로도 충분하다. 1. Integer types: the basics int two = 2; int ten = 10; int twelve = two + ten; // 12 int eight = ten - two; // 8 int twenty = two * ten; // 20 int five = ten / two; // 5 int zero = ten % two; // 0, no remainder(나머지 없음) int minusTwo = -two; // -2..

Java 2022.05.16

[Java]Scanning the input

standard input: 프로그램 안으로 들어가는 데이터의 흐름을 말한다. 이는 운영체제에 의해 제공된다. 기본적으로, standard input은 키보드 input으로부터 데이터를 얻으나 파일로부터 리다이렉트해 얻을 수도 있다. 1. Reading data with scanner standard input으로부터 데이터를 얻는 가장 심플한 방법은 standard class scanner를 사용하는 것이다. 이는 프로그램이 standard input으로부터 서로 다른 자료형의 값을 읽도록 한다. 이 클래스를 쓰기 위해 우리는 반드시 파일의 맨 위에 import 문을 선언해야 한다. import java.util.Scanner; 그 다음, import 아래에 다음과 같이 구성한다. Scanner sca..

Java 2022.05.09

[Java]Comments(주석)

1. End-of-line comments // : 자바 컴파일러는 라인에서 // 뒤에 오는 텍스트는 모두 무시한다. class Program { public static void main(String[] args) { // The line below will be ignored // System.out.println("Hello, World"); // It prints the string "Hello, Java" System.out.println("Hello, Java"); // Here can be any comment } } 2. Multi-line comments 여러 줄에 걸쳐 주석을 달려면 해당 부분을 /* 로 시작해 */ 로 끝나게 감싸면 된다. class Program { public st..

Java 2022.05.09

[Java]Types and variables

1. Declaring & initializing 변수는 특정 자료형의 값을 저장하는 그릇과도 같다. 여기서 자료형은 문자(열), 숫자 등이 있다. 모든 변수는 다른 변수와 구분하기 위해 변수명(identifier)을 갖는다. 자바에서는 변수 선언을 반드시 해야 함 ex) DataType variableName = initialization; 변수 선언 시 타입과 함께 작성해야 한다. ex) String language = "java"; 2. Accessing the value of variable 변수를 선언하고 나면, 변수에 들어가는 값은 변수명을 통해 접근하거나 수정할 수도 있다. 접근 String dayOfWeek = "Monday"; System.out.println(dayOfWeek); // ..

Java 2022.05.09

[Java]Basic literals

Basic literals 1. Literals 복잡도에 상관없이, 프로그램은 항상 숫자, 문자, 그리고 다른 값들 위에서 동작을 수행한다. 이러한 값을 우리는 literals라 부른다. (참고: 리터럴이란, 소스코드의 고정된 값을 대표하는 용어이다. 거의 모든 프로그래밍 언어는 정수, 부동소수점 숫자, 문자열, 불린 자료형(T/F)와 같은 용어를 갖는다. 쉽게 말해, 리터럴은 데이터 그 자체!) 자바에는 많은 종류의 literal이 있는데, 이번 토픽에서 우리는 이 중 몇몇 개만 다룰 예정이다. 2. Integer numbers 이 숫자는 현실 세계에서 물건을 셀 때 사용된다. 또한, 우리는 자바에서 이를 종종 사용할 것이다. 여기 유효한 정수 리터럴 예시가 있다: 0, 1, 2, 10, 11, 100..

Java 2022.05.07

[Java]Introduction to Java

Introduction to Java Theory What is Java? 자바는 범용 목적의 현대 프로그래밍 언어로, 선마이크로시스템즈 사에서 처음 개발했으며 현재는 오라클 사에서 소유하고 있다. 이 언어의 핵심 특징은 플랫폼 독립성인데, 이것이 의미하는 바는 다양한 플랫폼, 즉 윈도우, 맥, 리눅스 등 여러 운영체제에서 어떠한 변화 없이 동일한 자바 프로그램을 동작시킬 수 있다는 뜻이다. 이 원리는 “Write Once, Run Anywhere(WORA)”로도 잘 알려져 있다. 자바는 수 년 간 가장 유명한 프로그래밍 언어 중 하나였다. 자바는 TIOBE 인덱스(프로그래밍 언어 유명도를 측정하는 인덱스)에서 상위 포지션에 위치해 있다. 이 언어는 전세계에서 거대한 개발자 커뮤니티에서 사용하고 있다. ..

Java 2022.05.07