본문 바로가기
JAVA

JAVA 1일차

by teg0 2025. 8. 5.

출력문

public class Output {

	public static void main(String[] args) {

		//출력문
		//print() -> 일반적인 출력문으로 ()안에 있는 값을 화면에 출력함
		System.out.print("안녕하세요.");
		System.out.print("안녕하세요.\n");
		
		//println() -> 개행문자를 포함한 출력문
		System.out.println("안녕하세요.");
		System.out.println("안녕하세요.");
		
		//printf(문자열 포멧, 값1, 값2, 값3...) -> 문자열을 이용한 출력문
		String name = "홍길동";
		int age = 20;
		System.out.println("저는 " + name + "이고 나이는 " + age + "입니다.");
		System.out.printf("저는 %s이고 나이는 %d입니다.", name, age);
		
	}

}

포맷안에서 사용할 수 있는 키워드

%d : 정수

%c : 문자(char 한글자)

%s : 문자열

%f : 실수


변수 선언

변수 : 값을 기록하고 사용하기 위한 메모리 공간

 

[표현식]

자료형 변수이름;

 

자료형 : 변수가 사용할 메모리 크기에 따라서 지정

변수이름 : 변수를 식별하기 위한 붙여주는 이름

public class Variable {
	public static void main(String[] args) {
		//정수형 변수 num 선언
		int num;
		
		//정수형 변수 num에 10이라는 값을 대입해라
		num = 10;
		System.out.println(num);
		
		//참과 거짓을 표현하는 자료형으로 isTrue라는 이름의 변수를 선언
		boolean isTrue = false; //선언과 동시에 false라는 값을 대입
		isTrue = true;
		System.out.println(isTrue);
		
		//실수형(소수점 6자리까지 사용) 자료형 num2라는 이름의 변수를 선언
		float num2;
		num2 = 3.141592f; //f 실수는 double로 설정되어 있기 때문에, f(float)를 숫자 뒤에 붙여야 한다.
		System.out.printf("%.3f", num2);
		
		//---------------------------------------------------------------
		//원시타입 : 가장 기본적인 데이터타입, 값 자체를 저장하며 추가적인 속성이 없다.
		
		/*
		 * 정수자료형
		 * 
		 * byte(1), short(2), int(4), long(8)
		 * 모두 정수를 저장하는 자료형, 각 자료형마다 저장할 수 있는 수의 범위가 다름.
		 * 
		 * 정수 리터럴의 기본값은 int
		 * byte, short은 범위내에 있을 경우 자동 형변환된다.
		 * */
		int in = 10; //int
		byte by = 10; 
		short sh = 10;
		long lo = 10;
		
		System.out.println("정수 자료형");
		System.out.printf("%d %d %d %d", by, sh, in, lo);
		
		/*
		 * 실수 자료형
		 * float(4), double(8)
		 * 실수를 저장하는 자료형 float 보다 double이 더 정밀하게 표현할 수 있음
		 * */
		
		float fl = 4.123f;
		double dou = 4.123;
		System.out.println("실수 자료형");
		System.out.println(fl +  ", " + dou);
		
		/*
		 * 문자 자료형
		 * char(2)
		 * 문자 하나를 담을 수 있는 자료형 '' ("" = 문자열)
		 * 자바는 2바이트 유니크드를 사용.
		 * */
		
		char ch1 = '홍'; //16비트(2바이트)의 유니코드 정수로 저장됨
		char ch2 = '길';
		char ch3 = '동';
		System.out.println("" + ch1 + ch2 + ch3); //""는 문자열.
			//기본적으로 char은 int로 연산시 int로 형변환이 일어난다.
		System.out.println(ch1);
		
		/*
		 * 논리 자료형
		 * boolean(1)
		 * true와 false를 저장하는 자료형
		 * */
		
		boolean b1 = 10 > 5; //true
		boolean b2 = 20 == 10; //false
		System.out.println("논리 자료형");
		System.out.println(b1);
		System.out.println(b2);
		
		/*
		 * 문자열
		 * String 
		 * 문자열 같은 경우 할당항 메모리 크기가 가변적이므로 원시타입이 아닌 객체타입으로 변수를 생성하고 사용한다.
		 * 
		 * 원래 객체를 만드는 방식은
		 * Sting 변수명 = new 클래스명(초기값);
		 * 
		 * 문자열은 특별한 객체로 원시탑과 동일하게 생성하고 사용할 수 있다.
		 * */
		
		String str1 = "안녕하세요.";
		System.out.println(str1);
		
		String str2;
		str2 = null; 
			//String의 변수는 참조변수이기 때문에 기본값은 null이고 빈값을 표현하기 위해 null을 대입할 수 있다.
		
		String str3;
		
		str3 = "김무";
		str3 = null;
		System.out.println(str3);
		
		/*
		 * 이스케이프 시퀀스
		 * 문자열 내에서 탭, 백슬러시, 작은따옴표등을 사용하기 위한 방식
		 * */
		// \t : 탭(tab)
		//가로로 일정 간격을 띄움
		System.out.println("이름     나이     주소"); //띄어쓰기 5번
		System.out.println("이름\t나이\t주소");
		
		// \\ : 백슬래시(\)
		// 문자 자체로 출력
		System.out.println("경로 : C:\\devtool");
		
		// \' : 작은따옴표		\" : 쌍따옴표
		// 문자형에서 '을 그대로 쓰면 구문오류
		System.out.println("오늘은 '금요일' 입니다.");
		System.out.println('\'');
		System.out.println("\"");
		
		// \n : 개행문자
		
		/*
		 * 상수
		 * 수학 -> 변하지 않는 값
		 * 프로그래밍 -> 한번만 사용할 수 있는 메모리
		 * 
		 * [표현식]
		 * final 자료형 변수이름;
		 * 
		 * 상수의 변수명은 모두 대문자로 짓는 것이 규칙이다.
		 * 대문자로 작성하되 스네이크케이스를 사용
		 * */
		
		final int MY_AGE;
		MY_AGE = 100;
//		MY_AGE = 111; 값을 한번 초기화하면 더이상 변경할 수 없다.
		System.out.println(MY_AGE);
		
	}

}

프로그래밍에서 이름 짓는 방식

카멜케이스 방식 : 단어를 나열하며 이름을 짓되, 두번째 단어부터는 단의 첫글자를 대문자로 시작

(자바에서 모든 메서드, 변수명)

ex) userName, totalPrice

 

파스칼케이스 : 카멜케이스에서 첫글자도 대문자로 작성(자바에서는 클래스명 사용)

ex) UserName, TotalPrice

 

스네이크 케이스 : 문자와 문자 사이를 언더스코어(_)를 통해서 이어주는 것(파이썬)

ex) user_name, total_price

 

대문자스네이크케이스 : 스네이크 케이스 + 모두 대문자(대부분 언어에서 상수명)

ex) USER_NAME

 

케밥 케이스 : 단어를 소문자로 작성하되, 문자와 문자 사이를 하이픈(-)으로 이어주는 것

(html속성, url, 설정파일)

ex) user-name


형변환

형변환

자료형을 다른 자료형으로 변경해주는것

 

자동형변환

두 개 이상의 자료형을 연산할 때 하나의 자료형으로 일치시켜야 연산이 가능

데이터손실이 적은 방향으로 컴파일러가 직접 형변환을 해주는 것

 

명시적 형변환(강제형변환)

값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환할 때

자동으로 컴파일러가 수행하지 않는 것을 개발자가 직접 진행함(데이터 손실 가능)

 

public class Conversion {

	public static void main(String[] args) {
		
		double pi = 3.141592;
		int num1 = (int)pi; //double을 int로 형변환
		System.out.println(num1);
		
		char a = 'a';
		System.out.println("a + 1 : " + (char)((int)(a + 1))); 
		//문자인 a에 1을 더할 때, 
                //	자동형변환으로 2byte인 문자 자료형에서 4byte 정수 자료형으로 변환
                //다시 char로 강제형변환하여 b라는 값을 출력.
		
		long num2 = 3000000000006L;
		int num3 = (int)num2; // int로 형변환시 int범위를 초과하여서 비트자리가 짤린채로 출력.
		System.out.println(num3);
		
	}

}

Scanner

입력 : 외부에서의 데이터를 코드내부로 가져오는 것

 

Scanner를 사용하면 키보드에 입력 값을 가져올 수 있음

(java.util.Scanner 클래스를 이용함)

 

[표현식]

Scanner 이름 = new Scanner(System.in);

import java.util.Scanner;

public class Input {
	public static void main(String[] args) {
		
		//Scanner 객체 생성
		Scanner sc1 = new Scanner(System.in);
		
		//next();
		//문자열을 입력받는 함수(공백 전까지)
		
		//입력받은 값을 특정 변수에 바로 대입.
		
		/*
		String str1, str2;
		
		System.out.println("입력 : ");
		str1 = sc1.next();
		str2 = sc1.next();
		
		System.out.println("str1에 입력한 값 : " + sc1.next());
		System.out.println("str2에 입력한 값 : " + str2);
		*/
		
		//.nextLine()
		//문자열 입력받는 함수(공백을 포함한 한줄, 개행문자까지)
		System.out.print("이름 : ");
		String name = sc1.nextLine();
		
		System.out.print("주소 : ");
		String address = sc1.nextLine();
		
		System.out.print("나이 : ");
		int age = sc1.nextInt(); //정수를 입력받고자 할 때
		sc1.nextLine(); //nextInt()를 입력할 때 발생한 \n값도 비워주는 코드
		
		System.out.printf("제 이름은 %s이며 %s에 살고 있습니다. 저는 올해 %d살 입니다.", name, address, age);
		
		//문자이외에 원시타입을 입력받을 때
		//.next타입()
		//nextInt, nextDouble() ...
		
		sc1.close(); //Scanner 자원을 다 사용한 후 반납 단. 하번 반납하면 다시 사용X
		
		sc1 = new Scanner(System.in); //다시 Scanner 생성시 에러 발생
		
	}
}

 

'JAVA' 카테고리의 다른 글

JAVA 4일차(2)  (2) 2025.08.08
JAVA 4일차(1)  (4) 2025.08.08
JAVA 3일차  (4) 2025.08.07
JAVA 2일차(2)  (2) 2025.08.06
JAVA 2일차(1)  (3) 2025.08.06