December 31, 2020
public class FirstClass{
//실행할 내용
}
``public``: 자바 예약어
``class``: 자바 프로그램의 최소 구성 단위. 내부에 변수, 메소드 등이 정의됨.
``/** */``: javadoc 형태 주석처리 시 사용
``/* */``: 다중행 주석 처리 시 사용
``//``: 단일 행 주석 처리 시 사용
클래스 내에 java
라는 명령어로 프로그램을 실행할 때 자동으로 호출되어 프로그램을 시작하는 main()
메소드를 가져야 함
public class JavaApp{
// 변수 선언
// 메소드 선언
public static void main(String args[]){
// 실행될 프로그램 코드
}
}
java.io 패키지
처리하기 어려운 입출력 작업을 효율적으로 지원하기 위한 패키지로, 이 패키지를 이용하여 입출력 프로그램을 구현
System.out.println("Hello World!");
//System: 클래스
//out: 변수
//println: 메소드
식별자는 클래스, 변수, 메소드에 주어지는 이름으로 각 요소의 식별을 가능하게 함
👀 관례상 클래스 이름과 상수는 대분자로, 메소드 이름과 변수는 소문자로 시작
data type
, program definition
bit
: 0, 1로 표현되는 데이터 표현의 가장 기본단위
byte
: 1byte는 8bit로 하나의 문자를 표현함
표현형태 | 데이터타입 | 정의 |
---|---|---|
논릿값 | boolean | 참/거짓 |
단일문자 | char | 16bit 유니코드 문자 데이터 - Unsigned |
정수 | byte | 부호 있는 8bit 정수 - Signed |
정수 | short | 부호 있는 16bit 정수 - Signed |
정수 | int | 부호 있는 32bit 정수 - Signed, default |
정수 | long | 부호 있는 64bit 정수 - Signed |
실수 | float | 부호 있는 32bit 부동소수점 실수 - Signed |
실수 | double | 부호 있는 64bit 부동소수점 실수 - Signed, default |
프로그래머가 메모리상의 데이터에 접근하기 위한 방법
boolean, char, byte, short, int, long, float, double
기본형 8가지를 제외한 나머지 타입
선언: JVM에게 데이터를 저장하기 위한 메모리 할당을 요청하는 것
할당: 선언 후 변수 초기화
전역(Global) 변수: 클래스 선언부 밑에 선언된 변수로, 여러 메소드에서 공통으로 사용 가능
지역(Local) 변수: 메소드 선언부 밑에 선언된 변수 또는 메소드 매개변수로 선언된 변수
변수의 타입을 다른 타입으로 변경하고자 할 때 형변환 연산자를 사용하여 변환
작은 데이터 타입에서 큰 데이터 타입으로 변환 시, 데이터 손실의 우려가 없어 자동 캐스팅. 즉, 형변환 연산자 사용하지 않아도 됨.
byte → short → int → long → float → double
char → int → long → float → double
순서로 변환 가능
큰 데이터 타입에서 작은 데이터 타입으로 변환 시, 데이터 손실의 우려로 명시적 캐스팅. 축소 형변환
double avgAge = 24.56;
int age = (int)avgAge;
❗️데이터 타입이 축소되어 변환된 후에도 해당값을 표현할 수 있어야 한다.
종류
++, --
+, -, *, /
%
< =, > =, = =, ! =
and &
, or |
, not !
&, |, !
&&, ||
: 단축연산자로 첫 번째 값이 false인 경우 두 번째 값 여부를 판단하지 않고 바로 값을 return → 빠른 연산 처리 가능연산자 | 사용법 | 설명 |
---|---|---|
& |
값1 & 값2 |
비트 단위 논리곱(And) 연산 |
| |
값1 | 값2 |
비트 단위 논리합(Or) 연산 |
^ |
값1 ^ 값2 |
비트 단위 배타 논리합(Exclusive or) 연산 |
~ |
~값 |
비트 단위 보수(Not) 연산 |
>> |
값1 >> 값2 |
값1을 비트 단위로 값2의 비트 수만큼 오른쪽으로 shift하고 왼쪽에는 현재 부호 비트가 채워짐, 즉 양수이면 0, 음수이면 1이 채워짐 |
<< |
값1 << 값2 |
값1을 비트 단위로 값2의 비트 수만큼 왼쪽으로 shift하고 빈자리에는 0이 채워짐 |
>>> |
값1 >>> 값2 |
값1을 비트 단위로 값2의 비트 수만큼 오른쪽으로 shift하고 빈자리에는 0이 채워짐 |
=
int tmp = a==1 ? a : 0;
String greeting; // 실제로 저장되는 값은 "Hi"가 저장된 메모리의 주소값이다.
greeting = new String("Hi");
int[] javaScore
: 일차원 배열 선언 예시
int scoreList[] = new int[100];
int[] scoreList = new int[100];
int[] scoreList = {45, 80}
scoreList.lenght // 배열 길이 알 수 있음
int[][] javaScore
: 이차원 배열 선언 예시
int scoreList[][] = new int[3][4]; //3by4 배열 생성
int[] scoreList = new int[3][]; // 3행 설정 후 열은 다른 길이로 생성할 수 있음
자바 애플리케이션에 필수적으로 있어야 하는 특수한 메소드로 자바 애플리케이션이 실행될 때 자동으로 실행됨
숫자 사용시 문자열을 숫자로 캐스팅 해야함 using Integer.parseInt()
or Double.parseDouble()
public class JavaApp{
public static void main(String args[]){
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
int sum = num1 + num2;
System.out.println(sum);
}
}
if
if(조건){
//실행 코드
}
if else
if(조건){
//실행 코드
}else{
//실행 코드
}
if else if
if(조건){
//실행 코드
}else if(조건){
//실행 코드
}else{
//실행 코드
}
switch
switch (표현식){
case 경우:
...
}
for
for(int i=0; i< 10; i++){
//반복할 코드
}
while
while(1){
// 참일 동안 계속 반복할 코드
}
do while
do{
// 일단 수행할 코드
}while(조건식);
break
continue
return