//예시
System.out.print("Hello, world") //화면에 문자열 Hello, world 출력
System.out.print(3+5) //화면에 8 출력
System.out.print("3+5") //화면에 3+5 출력

System.out.println(5+3)  //8
System.out.println(5-3)  //2
System.out.println(5*3)  //15
System.out.println(5/3)  //1
int x; //변수 선언
x = 5;  // 변수에 값 대입
x = 3;  // 변수에 새로운 값 대입, 기존 값은 지워짐
int x = 5 // 변수 선언과 값 5 대입

final int CONST;
CONST=5;
CONST=3; //여기서 에러 발생, 상수에 저장 된 값을 변경할 수 없음

int octNum = 010; //8진수 10, 10진수로 8   8진수를 표현할때는 리터럴 앞에 접두사 "0"를 붙인다
int hexNum= 0x10; //16진수 10, 10진수로 16   16진수를 표현할때는 리터럴 앞에 접두사 "0x"를 붙인다
long big = 100_000_000_000L; //정수형 리터럴 중간에 구분자'_' 를 넣을수 있다. 큰숫자 읽을때 편하다
float pi = 3.14f; //접미사f대신F 를 사용해도 된다 생략불가
double rate = 1.68d; // 접미사d대신 D를 사용해도 된다 생략가능

필자는 리터럴이의 타입이 왜 필요하고 붙여줘야 하는지 이 글을 작성하고 나서야 알았다. (추후에 나오지만 이런 걸 몰라도 그냥 float를 선언하고 초기화해서 사용했기때문)

리터럴에 타입이 왜 필요할까? 그냥 아까 배운 것처럼 그냥 선언하고 값 넣으면 안되나? 에 대한 내용은 추가 기술할 예정

char ch = 'J' // char ch = "JAVA" 이런 방식은 불가능하다 변수 타입(공간 혹은 상자의 타입)이 char==문자 형태이기 때문
String name = "JAVA"; // 변수 name에 문자열 리터럴 "JAVA"를 저장
String str = ""; //빈 문자열 가능
char ch ='';//빈 문자 불가능, 에러
ch = ' ' //공백은 가능 공백은 아무것도 없는게 아니라 문자입니다.

String name= "JA"+"VA";
System.out.println(7+7+""); // 14 , 7+7후 문자열로 변경
System.out.println(""+7+7); // 77 , 앞에 있는 7을 문자열로 바꾸고, 뒤에 있는 7도 자동 형 변환 하여 결합 

int x = 10, y = 20; // int x =10; 과 int y = 20; 을 한줄로 표현함
int tmp = x;  //tmp 라는 이름의 빈 공간을 사용해서 x의 값을 보관
x = y;  // 먼저 x에 y의 값을 대입, 즉 x=20
y = tmp; //보관해놓은 원래의 x값을 y에 대입 결과적으로 x와 y의 값은 서로 변하게 되었다.

TMP 또는 TEMP란 “Temporary(일시적인, 임시적인)”의 준말입니다. 컴퓨터에서는 “임시 파일”이나 “임시 디렉토리(폴더)”를 의미하는 경우가 대부분입니다.

int age = 14;
System.out.printf("age=%d",age) // age:14 

추후 추가하겠습니다.

import java.util.Scanner;  //Scanner클래스를 사용하기 위해 추가

public class Hello {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in); //Scanner클래스의 객체를 생성
		System.out.println("정수를 입력해보셈"); // 저는 22를 입력하겠습니다.
		String input = scanner.nextLine(); //입력받은 내용을 input에 저장
		int num = Integer.parseInt(input); //입력받은 내용을 int타입의 값으로 변환
		System.out.println("입력내용:"+input); //입력내용:22 여기서의 22는 문자열"22"입니다 input의 22이기 때문입니다.
		System.out.printf("nun=%d%n",num);  //여기서의 22는 정수형인 숫자 22입니다. 그렇기에  지시자 %d로 출력했네요.
		
	}

}

저희는 아직 자동형변환 밖에 안배웠는데 java.lang.Integer 클래스를 사용하여 강제형변환하여 String타입을 int타입으로 바꿨네요.

package ch01;

import java.util.Scanner;

public class Hello {

	public static void main(String[] args) {

		short sMin = -32768, sMax = 32767;
		System.out.println("sMin = " + sMin);
//		System.out.println("sMin-1 = " + sMin -1);      //이부분은 문자열과 사칙연산이 같이 있을 경우 조심해야함을 알려드리기 위해 추가 했습니다.
//		System.out.println("문자열빼기1"-1);      //문자열과 정수형 변수sMin이 +연산되어 문자열이 되는데 여기에 -1를 할수 없습니다. 괄호 사용하여 사칙연산 먼저 해주세요.
		System.out.println("sMin-1 = " + (sMin-1));      //-32769  ,  short 최소 값에서 1빼면 최대값 나온다며? 왜 안돼? 라고 생각하실까봐 넣어놨습니다.
                                                                 // 1이 int 타입인점, 그리고 산술연산규칙을 알아야 이해될 내용이며 다음 챕터에 나옵니다.
		System.out.println("sMin-1 = " + (short)(sMin-1));  //32767  아직 배우지 않은 강제형변환 입니다.
		System.out.println("sMax = " + sMax);
		System.out.println("sMax+1 = " + (short)(sMax+1));  //-32768

	}
}

다음 챕터로 넘어가기전에 추가 할 것: 리터럴에 타입이 필요한 이유(리터럴 타입), 이스케이프 문자(출력),변수와 상수 원칙(변수와 상수), 기본형의 종류와 범위 왜 외워야하나

1 Comment
  • 대표 멘토 - 아키텍터
    2024-07-15

    첫번째 글에서도 알고 있었지만 매뉴얼이나 글을 작성하는데 소질이 있어보입니다. 앞으로 작성되는 글이 정말 기대되는군요.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다