처음 자바나 프로그래밍을 배울 때 문자열을 더하기 위해서는 덧셈(+)연산자나 concat을 사용하는것으로 처음 배웠을 테지만 그렇게 할 경우 String 객체를 매번 새로 생성하여 결과물을 저장하고 해당 객체를 참조하기때문에 문자열이 많은 경우에는 비효율적이라고 한다.
J2SE를 통해 개발되는 자바 프로그램의 시작점은 main 메서드임자바 프로그램이 시작되면 JVM은 프로그램이 실행될 준비를 한 후 main 메서드를 호출함실행 시 사용하는 "java.exe 클래스명"에서 작성해주는 클래스명은 main메서드를 가지고 있는 클래스를 지정
길이의 제한은 없다.첫 글자는 반드시 영문, 언더바(\_), 달러기호($)로 시작해야 한다.대 소문자를 구분함 (ABC와 abc는 다름)클래스 명을 작성할 때는 첫 글자를 대문자로 해주는 것이 관례임변수 명, 메서드 명을 작성할 때는 첫 글자를 소문자로 해주는 것이 관
숫자 상수 코드에 숫자를 적어 넣으면 일단 메모리에 값을 기억시키고 CPU가 그 값을 가져와 사용하게 된다. 숫자 상수는 메모리에 기억된 값을 절대 변경할 수 없다. 숫자 상수는 일정한 크기에 기억공간에 기억되는 값이므로 표현할 수 있는 값의 범위가 한정되어있음. 문
JVM의 피연산자 스택(operand stack)은 피연산자를 4 Byte단위로 저장한다고 한다크기가 4 byte보다 작은 byte나 short값을 계산할 때에는 4byte로 변환하여 연산이 수행하는 과정이 추가가 되므로 오히려 int형을 사용하는 것이 효율적이라고 한
자바에서 키보드를 통해 콘솔로 입력을 받는 것을 표준 입력이라고 한다.System.out.xxx가 표준 출력이라면 System.in.read()는 표준 입력임System.in.read()를 통해 입력을 받게 되면 글자 한 개를 입력받음여러개를 입력받아야 할 경우에는
https://youtu.be/6Vt-wKPBbuc?si=7e4gPWRUIeEtNUUd
자바에서 연산자의 우선순위는 아래의 순서대로 보면 된다.최우선 연산자 : . \[] (). : 메모리에 생성된 객체의 멤버에 접근 등 특정 매개체의 하위에 접근할 때 사용하는 연산자\[] : 배열에서 요소에 접근하고자 할 때 사용하는 연산자(): 수식에서 연산의 우선
클래스 내부의 모든 메서드들은 그 이름이 모두 달라야 함객체 지향 프로그래밍 언어에서는 개발자가 메서드 사용을 좀 더 편하게 할 수 있도록 같은 이름으로 여러 개의 메서드를 사용하는 것을 지원함원래 메서드간의 구분은 메서드 이름을 가지고 하지만, 메서드 이름이 같을 경
클래스의 멤버 변수와 메서드 내의 지역변수가 동일한 이름일 때, 메서드 내에서 변수를 호출할 경우 메서드 내의 지역변수가 호출됨지역 변수가 아닌 멤버 변수를 호출하고 싶은 경우에는 변수명 앞에 this.를 붙여줘야 함(지역 변수와 멤버 변수의 이름이 동일한 경우에만 구
자바 프로그램은 컴파일과 실행 단계를 거침Hello.java와 같은 자바 소스 코드를 개발자가 작성.자바 컴파일러를 사용해서 소스 코드를 컴파일함자바가 제공하는 javac라는 프로그램을 사용.java에서 .class파일이 생성된다.자바 소스 코드를 바이트코드로 변환하며
변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있음.변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있다.\-> 데이터를 보관할 수 있는 공간을 만들고, 그곳에 이름을 부여한다.변수는 선언과 초기화를 각각 할 수 있다.(선언 먼저)변수는
코드에서 개발자가 직접 적은 100, 10.5, true, 'A', "Hello Java"와 같은 고정된 값을 프로그래밍 용어로 리터럴(literal)이라 함.변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다. 따라서 리터럴 자체는 변하지 않는다
byte: 표현 길이가 너무 작음. 자바는 기본적으로 4byte(int)를 효율적으로 계산하도록 설계되어있기 때문에 int를 사용함byte타입을 직접 선언하고 계산하는 일은 거의 없음대신 파일을 바이트 단위로 다루기 때문에 파일 전송, 복사 등에 주로 사용됨short:
전위 증감 연산자는 증감연산이 먼저 처리됨후위 증감 연산자는 증감연산이 나중에 처리됨따라서 변수b에 a값을 대입할 때 a의 초기값인 1이 먼저 대입되고 그 후에 a의 값이 2로 증가함
기존의 자바에서 switch문은 아래와 같다자바 14부터는 새로운 switch문이 도입되어 아래와 같이 코드를 변경할 수 있다.기존의 switch문과 달리 2가지 변경점이 생겼다.\-> 화살표를 사용함값을 반환할 수 있음 (위의 예시에서는 스위치구문에서 선택된 값을 c
for문을 작성할때 괄호 안의 초기식에서 변수는 보통 1개만 초기화하는 줄 알았는데 2개 이상 초기화가 가능하다고 한다.다만 예시에서도 볼 수 있다시피 초기화되는 모든 변수는 동일한 타입의 변수여야 하며, 콤마로 구분하여 추가해준다.
임시 변수를 사용하는 경우위의 코드에서 temp변수는 if문 안에서만 사용되므로 main() 코드 블록이 종료될 때 까지 메모리에 유지되므로 불필요한 메모리 낭비가 발생한다.따라서 if문 안에서 변수를 생성하면 if문이 종료됬을때 변수도 같이 메모리에서 제거되므로 효율
변수 형변환을 할 때, 표현 범위가 작은 타입에서 큰 타입으로의 변환은 형변환 표기를 안해도 자바에서 자동으로 형변환 처리를 해주기 때문에 문제가 없다.대입하는 과정에서 형변환을 하여 타입을 맞춰줘야하기 때문에 실제로는 아래와 같이 동작한다.(자동 형변환, 묵시적 형변
int끼리 나눗셈을 할 때에는 소수점까지 표현이 안되고 몫만 결과값으로 나온다.계산은 int끼리 하지만 결과값을 double타입인 변수에 대입할때에는 다른 결과가 나온다.왜냐하면 int끼리 나눗셈을 한 후에 결과값을 변수에 대입하는 과정에서 int에서 double로 형
Scanner는 System.in을 사용해서 사용자의 입력을 편리하게 받도록 도와주는 클래스임scanner.nextLine()엔터(\\n)를 구분자로 하여 엔터를 입력하기 전까지의 문자를 입력받음scanner.nextInt()정수(int형) 입력을 받을 때 사용scan

이름과 나이를 입력받아 출력하는 코드를 아래와 같이 짰다고 했을 때,아래와 같이 결과를 출력하는 구문과 이름을 입력받는 구문이 붙어서 출력된다.왜냐하면 아래와 같은 절차로 프로그램이 실행되기 때문이다.나이를 입력받는 부분에서 사용자로부터 입력을 받을 때 50을 입력받는
위의 코드를 아래와 같이 바꿀 수 있다
자바에서는 new int\[5]로 배열을 생성하게되면 총 5개의 int형 변수가 만들어지고 내부 값을 자동으로 0으로 초기화해준다.타입별로 자동 초기화 값은 아래와 같다.int : 0boolean : falseString : null배열을 생성하면 배열의 크기만큼 메모
제어자(Modifier): public, static과 같은 부분반환 타입(Return Type): int와 같이 반환하는 데이터의 타입을 지정해줌, 반환하지 않는 경우에는 void를 입력해줌메서드 이름(Method Name): add부분, 메서드를 호출하는 데 사용된
메서드를 호출할때 전달할 인자가 전달받을 매개변수의 타입과 맞지 않는다면 형변환이 필요하다예를 들어 int를 받는 메서드에 인자로 double형 값을 넣게 되면 메서드 호출 시 컴파일 에러가 나지만,명시적 형변환을 해주면 문제없이 메서드 호출이 가능하다.(반대의 경우에
메서드의 이름이 같아도 매개변수의 타입 및 순서가 다르면 오버로딩을 할 수 있다.그러나 반환 타입만 다른 경우에는 오버로딩으로 인정되지 않는다.메서드 시그니처(method signature)메서드 시그니처 = 메서드 이름 + 매개변수 타입(순서)메서드를 구분할 수 있는
생성된 인스턴스를 아무도 참조하지 않을 경우, 해당 인스턴스는 가비지컬렉션에 의해 자동으로 메모리에서 제거된다.C와 같은 프로그래밍 언어에서는 개발자가 직접 인스턴스를 메모리에서 제거하는 과정이 필요하지만 자바는 이런 과정을 자동으로 처리해준다.아무도 참조하지 않는 인