<자바>
자바의 특징
1) WORA(Write Once Run Anywhere)
=> JVM에 의해 프로그램을 한 번 작성하고 나면 어디서든 실행 가능한 특징
2) JVM(Java Virtual Machine, 자바 가상 머신)
=> 운영체제 위에 설치되는 가상의 CPU(자바 개발에 필수 요소)
=> JVM으로 인해 운영체제에 독립적인 프로그래밍 가능(운영체제 상관없이 동작)
3) Garbage Collector(가비지 컬렉터)
=> 메모리 자동 관리
=> 자바의 힙 공간에서 더 이상 실행되지 않는 객체를 자동으로 제거하여 메모리를 관리
4) JDK(Java Devlopment Kit, 자바 개발 도구)
=> 자바 개발에 필요한 필수 프로그램
=> JVM, 실행환경을 포함하는 JRE와 컴파일 등의 개발 도구를 포함하여 제공하는 프로그램
변수명(식별자) 작성 규칙
1) 숫자로 시작 불가
2) 대소문자 구별
3) 예약어(키워드) 사용 불가
4) 특수문자 '$'와 '_'만 사용 가능
5) 공백 사용 불가
6) 두번째 단어부터 각 단어의 첫글자는 대문자로 작성하여 구분(Camel-case)
7) 의미있는 이름 사용
기본 자료형 변수 선언 및 초기화 방법
1) 변수 선언 : 데이터타입 변수명;
2) 변수 초기화 : 변수명 = 값;
3) 위의 두가지 문장을 하나로 결합하여 선언 및 초기화를 동시에 수행
: 데이터타입 변수명 = 값;
기본 데이터타입
정수형 : byte(0) short(0) int(0) long(0L)
실수형 : float(0.0f) double(0.0)
문자형 : char(0 또는 \u0000)
논리형 : boolean(false)
기본 데이터타입 형변환
1) 묵시적(암시적) 형 변환 = 자동 형 변환
=> 작은 데이터타입 데이터를 큰 데이터 타입으로 변환
2) 명시적 형 변환 = 강제 형 변환
=> 큰 데이터 타입 데이터를 작은 데이터 타입으로 변환
=> 형 변환 연산자를 사용
=> byte -> short -> int -> long -> float -> double
char ->
연산자 종류 및 특징
1) 산술연산자(+, -, *, / , % - 나머지 연산)
2) 비교(관계)연산자 (>, <, >=, <=, ==, !=)
3) 논리연산자(&, |)
1) AND연산자(&, &&)
=> 두 조건이 모두 true 일 때 true, 하나라도 false 일 때 false
2) OR연산자(|, ||)
=> 하나라도 true이면 true, 둘 다 false 이면 false
3) !연산자
=> 현재 상태 반전(true -> false)
4) 증감연산자
if문
if (조건식1) {
// 조건식1 결과가 true 일 때 실행
} else if (조건식2) {
// 조건식1 결과가 false이고, 조건식2 결과가 true 일 때 실행
} else {
// 모든 조건을 만족하지 않을 경우 실행
}
=> 양수&음수 판별, 홀수&짝수 판별
switch ~ case문
=> if문과 동일하게 어떤 조건에 대한 실행 문장을 달리하는 조건문
단, if문보다 유연하지 못하며, 컴파일 시점에서 이미 실행할 문장이 결정되므로 빠름
=> switch(값 or 식) {
case 1 : 값1 일 때 실행할 문장...[break;]
case 2 : 값2 일 때 실행할 문장...[break;]
default : 모든 case문과 일치하는 값이 없을 실행할 문장..
=> else문과 동일
}
=> break문이 없을 경우 해당 case 문을 실행한 후 아래쪽 문장 실행함
(단, break문 만나거나 switch~case 문 종료될 때까지 모든 case와 default 실행)
for / while문
for (초기식; 조건식; 증감식) {
// 조건식 결과가 true일 동안 반복할 문장들...
초기식;
while(조건식) {
[증감식;]
// 조건식 결과가 true일 동안 반복할 문장들...
[증감식;]
}
배열
1) 1차원 배열
선언 : 데이터타입[] 변수명; or 데이터타입 변수명[];
생성 : 변수명 = new 데이터타입[배열크기];
=> 두 문장을 결합 : 데이터타입[] 변수명 = new 데이터타입[배열크기];
초기화 : 변수명[인덱스] = 값;
=> 선언/생성/초기화를 모두 결합
: 데이터타입[] 변수명 = {10, 20};
: 데이터타입[] 변수명 = new 데이터타입[] {10, 20};
< for문 사용하여 1차원 배열의 모든 인덱스 접근 >
for(int i = 0; i < 변수명.length; i++) {
// 변수명[i] 형태로 배열 접근
}
2) 2차원 배열
선언 : 데이터타입[][] 변수명;
생성 : 변수명 = new 데이터타입[행크기][열크기];
=> 두 문장을 결합 : 데이터타입[][] 변수명 = new 데이터타입[행크기][열크기];
초기화 : 변수명[행인덱스][열인덱스] = 값;
=> 세문장을 모두 결합
: 데이터타입[][] 변수명 = {
{값1, 값2, ....}, // 0번행의 각 열 데이터
{값1, 값2, ....} // 1번행의 각 열 데이터
};
< for문 사용하여 2차원 배열의 모든 인덱스 접근 >
for (int i = 0; i < 배열명.length; i++) { // 행 접근
for (int j = 0; j < 배열명[i].length; j++) { // 열 접근
// 배열명[i][j] 로 배열에 접근
}
}
클래스
1) 클래스 정의
[접근제한자] class 클래스명 {
// 멤버변수 선언
// 생성자 정의
// 메서드 정의
}
2) 객체 생성
1) 레퍼런스 변수 선언
: 클래스명 변수명;
2) 인스턴스 생성 및 초기화
: 변수명 = new 클래스명([파라미터...]);
=> 두 문장을 하나로 결합
: 클래스명 변수명 = new 클래스명([파라미터...]);
3) 인스턴스 변수(멤버 변수) 초기화
: 변수명.멤버변수명 = 값;
4) 메서드 호출
: 변수명.메서드명([파라미터...]);
<자바스크립트>
변수 사용
=> 별도로 타입을 지정하지 않고 일반적인 공통타입으로 변수 선언 시 저장되는 데이터에 따라
각각의 타입이 자동으로 결정
=> 일반적인 변수 선언 시 var
내장 함수
=> 자바스크립트에서 제공하는 함수로, 이미 기능이 구현되어 있으므로 호출을 통해 구현된 기능을 사용 가능
1) alert() 함수 : 특정 데이터를 별도의 팝업창에 출력
2) prompt() 함수 : 웹브라우저에서 입력창을 통해 데이터를 입력
3) confirm() 함수 : 사용자로부터 확인 및 취소 버튼을 통해 확인 작업을 수행하는 팝업창
내장 객체
=> 자바스크립에서 제공되는 객체(별도의 선언없이 사용 가능)
1) window 객체
=> 자바스크립트의 최상위 객체
=> 함수 : window.open(), window.close() 등
2) location 객체
=> 페이지 이동 관련 정보를 관리하는 객체
=> location 객체의 href 속성이 URL 정보 관리
3) history 객체
=> 웹브라우저의 주소 기록을 관리하는 객체
=> 브라우저를 통해 접속했던 주소 정보를 차례대로 저장하고 관리
=> 함수 : history.back(), history.forward(), history.go()