[JAVA] 자바 기본 구조

yedy·2023년 5월 13일
0

[JAVA]

목록 보기
1/2
post-thumbnail

✔ 자바 기본 구조

→ 반환값(return)이 없으니.. void를 써준 것!!

패키지의 이름은 모두 소문자⭐ //언더바(_)로 이어줌 : 스네이크 기법

클래스 이름은 대문자로 시작⭐ //HelloWorld : 캐멀기법


**//자바 기본 틀**
package my_first_project;

public class Hello {
// main() : 코드 구동을 위해 사용하는 함수

/*
 * 프로그램 명 : 출력 함수
 * 작성자 : 예지
 * 작성일 : 23.03.14
 */

/*
 * CTRL F11 or F11 : 실행 단축키
 * CTRL + D 한줄(행,라인) 삭제
 */
public static void main(String[] args) {
	// 메인 메소드 내부
	System.out.println("Hello Java!!!"); //콘솔창에 메세지를 출력 함수
	System.out.println("안녕, 자바!!!"); //실행문
}

}

✔ 데이터 타입

컴퓨터가 자료 표현
값과 값을 다룰 수 있는 연산의 집합을 의미

  • “A” → str
  • ‘A’ → char
  • float PI = 3.14f; → f를 뒤에 붙여줘야함
  • long age = 11l; → 정수를 long타입으로 저장할때는 l을 붙여줘야함

8bit = 1byte
1024byte = 1kilobyte
1024kilobyte = 1megabyte
1024megabyte = 1gigabyte
1024gigabyte = 1terabyte
1024TB(terabyte) = 1petabyte
1024PB = 1exabyte
1024EB = 1zetabyte //순서정도..는 기억해!!

  • 논리형 true, false 두가지만 나타냄 → 값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지 등을 표현

✔ 변수

프로그램은 기억 공간에 데이터를 보관하고, 각 기억 공간을 변수 Variable로 구분

할당 받은 메모리의 주소 대신 부르는 이름.

프로그램 실행 중 값 변경 가능.

사용되기 이전에 선언 되어야 함.

변수는 데이터를 담는 상자와 같은 것으로 종류가 다양한데, 이를 구분하려고 데이터 타입을 사용

프로그래밍에서 값(Data)를 사용하기 위해 선언하는 것을 변수라고 한다.

자료형 변수명 = 값;

→ 값을 저장하는 메모리 번지에 붙이는 이름

  • 리터럴
    • 프로그램 내부에서 값을 정의해 변수를 초기화할 수 있는데, 그 값을 리터럴
package variable;

public class ex2_Exchange {

public static void main(String[] args) {
	int x = 3;
	int y = 5;
	System.out.println("x: "+x+" y: "+y);

	//임시 변수
	int temp = x;
	x = y;
	y = temp;
	System.out.println("x: "+x+" y: "+y);
}
  • 부동 소수점

→ 컴퓨터에서 소수점을 정하지 않고 위치를 나타내는 수로 표현하는 방식


  • 문자도 정수로 표현
    문자세트 : 각 문자를 숫자와 매칭, 아스키코드(ASKII CODE)

char a = 'A';
System.out.println(++a);
💡 B
public static void main(String[] args) {
	byte var1 = -128;
	byte var2 = 127;
	// byte var3 = 128;  컴파일 에러발생!!!!!!비상!!!!!
	System.out.println(var1-1);
	System.out.println(var2+1);

	long l1 = 10000000000000000l;
	long l2 = 111111111111111L;
	System.out.println(l1);
	System.out.println(l2);   //대문자, 소문자 상관 x

	float f1 = 3.14865468765465461366f; //7자리까지 나오고 짤림
	float f2 = 3.14F;
	System.out.println(f1);
	System.out.println(f2);

	char c1 = 'A';
	// char c2 = "A";  ""쓰면 오류남
	String c3 = "abcefgs";
	System.out.println(c1);
	System.out.println(c3);

}
💡 129 128 10000000000000000 111111111111111 3.1486547 3.14 A abcefgs
public class ex3_Bool {
	public static void main(String[] args) {
		boolean isMarried = true;

		if(isMarried) {
			System.out.println("기혼");
		}else {
			System.out.println("미혼");
		}
	}
}
💡 기혼
  • 상수 - 변하면 안되는 값을 선언

프로그램 실행 중 변경할 수 없는 데이터를 담는 변수

예를 들어 원주율 값(3.14159)이나 빛의 속도 등

상수 이름은 변수와 구분하려고 모두 대분자로 표기

반드시 fianl 키워드로 지정

✔ 타입 변환

  • 자동 타입 변환 ( 묵시적 )

  • 강제 타입 변환 ( 명시적 )

✔ 기본 입출력

package variabletype.vartype;

public class ex2_VariableScope {

	public static void main(String[] args) {
		//main 메소드 영역
		int i = 0;
		System.out.println("함수 호출 전 : "+ i);
		change(i);
		System.out.println("함수 호출 후 : "+ i);

	}
	
	public static void change(int i) {
		i = 10;
		System.out.println("change 내부 : "+i);
		
	}

}

package variabletype.vartype;

public class ex3_Constant {

	public static void main(String[] args) {
		//  상수 : 선언이후 코드 내에서 변하지 않아야하는 수
		// e x) 12달, 24시간, 로그인 횟수제한, pi
		final int MAX_NUM = 100; //상수 선언과 초기화
		System.out.println(MAX_NUM);
		// MAX_NUM = 80; 선언하면 에러 발생!!!!!!!!!!!
		
	}

}

  • 키보드로 데이터 입력
    -> 기업체 코딩테스트 가장 많이 쓰는 방법

프로그램의 첫 행에 다음을 추가해 Scanner 클래스의 경로 이름을 컴파일러에 알린다.

import java.util.Scanner;

키보드로 데이터를 입력 받기 위해 System.in 객체와 연결된 Scanner 객체를 생성한다.

Scanner in = new Scanner(System.in);

Scanner 클래스가 제공하는 다양한 메서드를 이용해 키보드로 데이터를 입력 받는다.

int x = in.nextint(); //정수를 읽어 변수 x에 대입한다.

package input;

import java.util.Scanner;

public class ex1_Scanner {

	public static void main(String[] args) {
		// 스캐너 객체 생성.
		Scanner in = new Scanner(System.in);
		
		System.out.print("숫자1 입력 : ");
		int n1 = in.nextInt();
		
		System.out.println(n1);
	
	}

}

System.out.println("s1 : ");
String s1 = in.next();
System.out.println(s1);

//string 입력받을때는 nextLine이 아닌!!! next만 쓰는걸로 우선 기억!!!!!!!!!!!!!⭐

✔ 연산자

  • 산술 연산자

피연산자의 데이터 타입에 따라 결과 값이 다른데, 연산할 두 피연산자의 데이터 타입이 다르면 큰 범위의 타입으로 일치시킨 후 연산 수행

논리 타입을 제외한 기초 타입을 피연산자로 사용, 단 % 연산자는 정수 타입만 사용

  • 비교 연산자

비교연산자는 논리 타입을 제외한 기초 타입에만 사용할 수 있지만 ==와 !-는 모든 기초 타입에 사용

  • 논리 연산자

논리 연산자는 피연산자의 조건을 결합해서 true와 false를 조사하며, 논리 타입에만 사용

  • 비트. 시프트 연산자

package operation;

public class ex1_Oper1 {

	public static void main(String[] args) {
		// 동일 자료형 변수는 한번에 여러개 선언 가능
		int a = 20, b=7, c=a+b;
		System.out.println(c); //27
		
		double d =1.2345678456154520003; //1.234567845615452나옴.. 오차발생!!!!!
		System.out.println(d);
		
		int e = (int)(d*100); //괄호에 따라 100이 될수도 123이 될수도
		System.out.println(e);
		
		//복합대입 연산자
		int i = 0;
		i += 2;
		i = 1;   //양수 1대입
		i = -1;   //음수 1 대입
		System.out.println(i);
		

	}

}
package operation;

public class ex2_Oper2 {
	
	public static void main(String[] args) {
		int a= 10, b=7;
		
		// 비교 연산
		boolean result = a>b;
		System.out.println(result); //true
		result = a ==b;
		System.out.println(result); //false
		
		//논리 연산
		//&&, ||, !
		System.out.println(!true);   //false
		
		int age = 35;
		result = age >= 20;
			// 조건식? 연산1:연산2 -> 조건이 true 연산1, false 연산2
		String r = result? "성인":"미성년";  //String r = age >=20? "성인":"미성년";앞에 선언 안하고 이렇게 했어도 됐었음
		System.out.println(r);
	}

}

package operation;

public class ex3_ShortCircuit {

	public static void main(String[] args) {
		int num = 10;
		int i = 2;
		// 단락회로 평가
		// ⭐⭐⭐⭐ && 연산식1 -> false라면 뒤에 연산식2는 실행 x 
		boolean value = ((num = num+10) < 10) && ((i=i+2) < 10);
		System.out.println(value);
		System.out.println(num);
		System.out.println(i);
		
		value = ((num=num+10)<10) || ((i=i+2) < 10);
		System.out.println(value);
		System.out.println(num);
		System.out.println(i);
		
		
	}

}


int a =3;
		a*= a+1;
		System.out.println(a); //복합대입

profile
공주 개발자

0개의 댓글