일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SQL 개발자
- 조건문
- 프로젝트
- time.sleep
- 메서드
- 슬라이싱
- 파이썬
- SQLD
- CSV
- Python
- 자격증
- 프로그래머스
- SQL
- lv0
- 자격증공부
- django
- 스크랩핑
- scraping
- 크롤링
- 정보처리기사
- HTML
- 튜플
- 데이터베이스
- 1과목
- Crawling
- 정리
- 데이터 타입
- 파이선
- 태그
- 딕셔너리
- Today
- Total
나의 공부 일기
Java) Java 기초 본문
컴퓨타가 이해할 수 있는 기계어는 우리가 일상생활에서 사용하는 언어와 다른 0과 1로 이루어진 이진 코드를 사용합니다.
이때문에 사람이 이해하기 어렵습니다. 하지만 컴퓨터는 반대로 사람의 언어가 아닌 이 기계어를 잘 이해합니다.
그러므로 사람과 컴퓨터가 대화하기 위해서는 사람의 언어와 기계어를 이어주는 역할인 프로그래밍 언어가 필요합니다.
여기서 프로그래밍 언어로 작성한 파일을 소스 파일 이라고 합니다.
소스파일은 컴퓨터가 바로 이해할 수 없기 때문에 컴파일 이라는 과정을 통해서 0과 1로 이루어진 기계어 파일로 번역한 후 컴퓨터에서 사용합니다.
이런 프로그래밍 언어는 수많은 종류가 있습니다.
대표적으로 C#, C++, C, Python, Java가 있고 이중 파이썬은 공부를 했었고, 이번엔 Java에 대해 공부하려고 합니다.
5개월전쯤 공부를 했엇지만 깊게 공부를 하지 않아 다시한번 공부하려고 합니다.
저는 인텔리제이를 가지고 공부를 하였습니다.
기본적으로 자바 파일을 생성한다면
package day02; // 폴더 이름
public class _01_ {
}
이렇게 만들어지게 됩니다.
여기서 public class는 공개 클라스라는 뜻이고, _01_은 클래스이름 입니다.
클래스 이름은 파일명과 대소문자 구분되어 일치해야 합니다.
이상태에서 코드를 바로 작성할 수는 없고,
public static void main(String[] args){}라는 메인 메서드로 묶어준 뒤 사용해야 합니다.
여기서 메서드란 파이썬에서는 함수라고 불립니다.
자바 명령어를 사용하면 메인메서드 부터 실행됩니다.
기본적으로 코드를 작성할때 // 로 주석처리를 한 뒤 메모를 해가며 이 코드가 무었인지 해주면 좋습니다.
package day02;
public class _01_ {
// 이렇게 말이죠
}
// 아니면 /* */ 로 묶어주거나 해주면 됩니다.
아니면 내가 주석으로 지정할 부분을 선택하여 Ctrl + / 를 해준다면 한번에 주석처리가 들어갑니다.
자바의 코드를 작성할때 실행문 끝이나 변수를 선언할때는 세미콜론(;)을 꼭 해줘야 합니다.
마지막에 세미콜론으로 마무리 하지 않는다면 컴파일 에러가 발생하게 됩니 주의하셔야 합니다.
ex)
package day02;
public class _01_ {
public static void main(String[] args) {
int x = 1;
int y = 2;
System.out.println(x + y);
}
}
한줄에 한번에 변수를 선언해도 됩니다.
package day02;
public class _01_ {
public static void main(String[] args) {
int x = 1; int y = 2;
System.out.println(x + y);
}
}
변수의 이름을 지정해줄때 그 변수의 특징에 해당하는 이름으로 지정해줘야 합니다.
파이썬과 다르게 자바에서는 변수 앞에 내가 사용할 변수의 타입을 미리 지정해줘야합니다.(int,String,char,boolean .....)
한번 같은 이름의 변수를 int x = 1; 로 지정해주었다면 다음에 이 변수 x를 사용할때는
int x 가 아닌 x로 바로 사용 가능합니다.
그리고 이 변수의 사용범위는 해당 메서드 내에서만 사용 가능합니다
{} 이 중가로를 벗어나면 사용이 안됩니다.
이때 그 해당 메서드내에 있는 변수를 지역변수라고 합니다.
메서드 {} 안에 또다른 {} 가 생길 수도 있는데 이때도 사용이 불가능하니 변수를 선언할때 조심해야합니다.
{} 안에 {} 에서는 밖에있는 {}의 변수를 사용 가능합니다
Java에서 for문이 있는데 여기서
public class Hello {
public static void main(String[] args) {
String str = "Hello";
for (int i = 0; i < 4; i++) {
System.out.println(str);
}
}
}
이렇게 더 큰 부분에 있는 변수는 사용이 가능합니다.
public class Hello {
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
String str = "Hello";
System.out.println(str);
}
System.out.println(str);
}
}
이런식으로 사용한다면 마지막 str을 호출할때 오류가 발생하게 되니 주의해야 합니다.
아 그리고 Java에서 출력물을 보고싶을때 System.out.print(); 로 호출해주면되고,
호출 된 후 줄바꿈을 즉시 하길 원하면 System.out.println(); 으로 ln을 추가해주면 됩니다.
아까 변수를 지정할때 타입을 지정해준다고 했는데, 이 타입은 크게 3 종류로 나뉩니다.
정수타입, 실수타입, 논리타입이 있고
각각 정수타입(byte, char, short, int, long), 실수타입(float, double), 논리 타입(boolean)입니다.
정수타입은 메모리 사용 크기와 저장되는 값의 범위가 서로 다릅니다.
순서대로 8bit, 16bit, 32bit, 64bit 입니다
이 크기를 넘으면 각 크기의 첫번째 값으로 넘어가니 주의해야 합니다.
long 타입을 사용할때는
long test = 300000000L;
이렇게 값의 마지막에 L을 부여줘야 합니다.
소문자 l도 사용 가능하지만 1과 구분하기 위해 L 을 사용해줍니다.
char는 ' 작은 따옴표로 감싸서 사용하는데 이 값을 유니코드로 변환되어 저장해줍니다.
유니코드란 세계 각국 문자를 2바이트로 표현할 있는 순자(0~65535)로 매핑한 국제 표준 규약입니다.
자바에서는 이러한 유니코드를 저장할 수 있도록 2바이트 크기인 char를 제공해줍니다.
char test = 'A';
ex) 유니코드로 대문자 A는 65 소문자 a는 97 입니다.
유니코드는 정수이므로 char도 정수 타입에 속합니다.
" 큰 따옴표로 묶은 문자들은 우리는 문자열 이라고 부릅니다.
String타입이고 이 문자열에는 이스케이프 문자 라는게 존제합니다.
"" 큰 따옴표로 묶인 문자열에서 " 를 사용하고 싶을때 \ 이 역슬래시를
\" 이렇게 묶어준다면 문자열에서 " 를 쓸 수 있습니다.
String test = "Hello I'm \"Java\" ";
System.out.println(test); // 결과 : Hello I'm "Java"
이 뿐만 아니라 \n로 개행 \t로 탭기능을 할 수 있습니다.
이런 변수들의 타입을 바꿀수 도 있습니다.
타입을 바꾸는 방법은 크게 두가지가 있는데, 자동 타입 변환과, 강제 타입 변환이 있습니다.
먼저 자동 타입 변환은 말 그대로 자동으로 타입이 변환이 일어나는 것을 말합니다.
하지만 자동 타입 변환은 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때만 발생합니다.
범위의 구분은
byte < short < int < long < float < double 이 있습니다.
byte byteTest = 10;
int intTest = byteTest;
이렇게 작은 값에서 큰 값으로 변환은 가능하지만
int intTest = 10;
byte byteTest = intTest;
이렇게 큰 값에서 작은 값으로 변환은 불가능합니다.
정수 타입이 실수 타입으로 저장될 경우 무조건 자동 타입 변환이 일어납니다.
실수 타입은 정수 타입보다 허용 범위가 더 크기 때문이죠
char 타입의 경우 int타입으로 자동 타입 변환되면 저장되어있던 값의 유니코드 값이 int타입에 저장됩니다.
char charTest = 'A'; // 유니코드 값 65
int intTest = charTest; // 65가 들어감