[공공데이터 개발과정] 0314 자바

송경근·2023년 5월 12일
0

자바 배우기

목록 보기
2/18

자바

/*
*/ 여러줄 주석

// 한줄주석

클래스의 이름은 코드작성창에서 바꿀 수 없음
클래스의 이름을 바꾸고 코드작성창에서 클래스명을 바꿔주면
오류없이 작동

메소드는 함수와 비슷함
메소드의 반환값을 지정해줘야한다.
클래스의 구조:

메인 메소드는 꼭 클래스가 가질 필요는 없다.
모든 클래스에 메인이 포함되지는않는다.

패키지 이름은 소문자를 쓰는게 정석이다!
클래스의 이름은 대문자로 시작

클래스: 객체 지향 언어에서 프로그램을 개발하는 단위
메서드: 수행할 작업을 나열한 코드의 모임
실행문: 작업을 지시하는 변수 선언, 값 저장, 메서드 호출 등의 코드

식별자

문자,언더바,$로 시작, 영문대소문자 구분, 한글 가능
연산자를 포함하면 안된다
자바 키워드를 사용하면 안된다
길이 제한 없음
숫자로 시작할 수 없음
공백불가능

관례

변수와 메서드는 모두 소문자로 표기
복합 단어일 때 두번째 단어부터 첫글자 대문자
클래스와 인터페이스는 첫 자만 대문자로 표기
Boolean 타입의 변수명은 is로 시작
복합단어일때도 마찬가지

상수는 전체를 대문자로 표기
복합단어일때는 언더바로 연결

상수 : 자기자신이 값을 가진 것
Final : 변하지않는 값이다~
제한(limit)에서 많이 사용됨.

데이터타입

기초타입

정수타입 : byte , short, int(기본), long (메모리 크기 순서)
문자타입 : char(문자 한개만 저장 가능, ''로 감싸야한다! 문자열은 "")
실수타입 : float( ex)float PI = 3.14f; , double(더 길게,기본)
논리타입: boolean
값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지 등을 표현

변수 : 변하는 값을 저장하는 공간
자료형 변수명 = 값;
변수명 : 값을 저장하는 메모리 번지에 붙이는 이름
변수 선언 int age;
변수 초기화 age = 10;
선언과 초기화는 동시에 가능
= : 할당, 대입연산자 연산의 우선순위가 최하위
변수선언은 위쪽에
리터럴 : 변수안의 값

여러개의 변수를 ,로 연결해 선언가능

부동 소수점

<< 고정 소수점과 반대되는 개념

5x10**-2 > 부동소수점 방식
0.05 > 고정소수점 방식
실수는 정수보다 정밀하기때문에 부동소수점방식으로 표기

(그냥 이렇대..)

더블형이 정밀한 수를 나타낼 수 있음.
뭔가 단점이 있다..

문자

Char c = 'A';
Char c = 65; 일종의 정수타입이라 65 대입 가능 = 아스키코드
Char c = '\u0041'; 유니코드 값으로 대입
Char c = "A"; (문자가 아니라 문자열로 감쌌기때문에 오류)

논리

Boolean 변수명(is머시깽) = true;

아스키코드(ASKII CODE)

문자세트 : 각 문자를 숫자와 매칭시킨 것

인코딩

컴퓨터에 입력 원래 리터럴값을 변환값으로 바꿔주는것

디코딩

컴퓨터가 반환 변환값을 원래 리터럴값으로 바꿔주는것

알파벳과 특수기호 표기

각 나라 언어 표현의 필요성으로 유니코드(UNI CODE) 개발

Var 예약어

자바 10부터 지원
변수에 대입되는 초기값을 통하여 데이터 타입을 컴파일러가 추론
식별자로 사용가능

상수

변경할 수 없는 데이터(변하지않아야하는 값)를 담는 변수
변수와 구분하려고 모두 대문자로 표기
반드시 final 키워드로 지정

타입변환

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

>(작은 범위의 수를 큰 범위의 형에 넣을때)

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

>(큰 범위의 수를 작은 범위의 형에 넣을때)

Double d1 = 5*3.14

ex)

// double의 3.14를 float로 형변환해 f에 저장
// 정수 5를 실수 5.0으로 자동 변환

Float f = (float)3.14;
Double d2 = 1;

//int의 300을 byte 형태로 변환하면 데이터손실
//정수 1을 실수로 자동 변환

Byte i = (byte)300;

기본 입출력

키보드로 데이터 입력
Import java.utl.Scanner;

Scanner in = new Scanner(system.in)

연산자

단항 연산자가 우선순위가 제일 높다

비교연산자

기초타입에서만 사용할 수 있다.

논리연산자

결과도 true or false

논리타입에만 사용 가능

단락회로 평가

And연산자에서 앞 조건식이 false면 조건식2 와는 관계없이 false가 나온다.
Or연산자에서 앞 조건식이 true면 조건식2와는 관계없이 true가 나온다.

비트 연산자

정수타입에만 사용

#개발자로 일하면서 쓸 일이 없을것이다~

시프트 연산자

증감연산자

증감연산자는 변수의 위치에 따라 의미가 다르다

오버플로우

타입이 허용하는 최대값을 벗어나는 것

언더플로우

타입이 허용하는 최소값을 벗어나는 것

삼항 연산자

조건식? 연산1:연산2 >> 조건 true :연산1 , 조건 false : 연산2

profile
개발자가 되려는 학생입니다

0개의 댓글