1 . 학습목표
자바 환경 설정 및
NetBeanIDE 설치
자바의 특징, 기본적인 메모리 구조 설명
자바의 기초 문법(변수, main 메소드 , 기본연산자)
2 . 학습내용
자바 설치
Oracle 홈페이지 - > 자바 최신 버전JDK 설치
C:\Program Files\Java\jdk1.8.0_51\bin
bin 폴더- 자바 명령어 포함됨
-java 자바 파일 실행
-javac 컴파일러
java - version 자바 버전 확인
자바 환경 설정
시스템 속성 - 환경변수 - 시스템 변수 추가
CALSSPATH - .;
JAVA_HOME - C:\Program Files\Java\jdk1.8.0_51
PATH - %JAVA_HOME%\bin;
넷빈즈 설치
넷빈즈 홈페이지 - > 넷빈즈 8.02 버전 다운로드
넷빈즈 설치 설정 - 톰켓7 추가 설치
자바의 특징
객체 지향적이다.(OOP) - > 코드의 재사용성(재활용)
배우기가 쉽다.
플랫폼에 독립적이다. (JVM)
가비지컬렉터(GC) -> Heap영역 쓰지않는 객체들을 수집해서 메모리에서 해체
멀티쓰레드 지원 -> 멀티 프로세스 (멀티 캐스팅)
컴파일 언어, 인터 프리터 언어이다.
캡슐화 - > 사용자에게는 구현된 프로그램 내부는 보여주지 않고 사용자는 이를 단순히 이용만 하게 만든다.
컴파일: 개발자가 작성한 프로그래밍 언어를 JVM (가상머신)이 기계어로 번역하는 것을 의미한다.
Javac란 명령어를 의미한다.
Javac -> HelloJava.java => HelloJava.class(기계어)
인터프리터: (기계어/class)를 JVM이 해석하여 수행
java란 명령어를 사용한다.
Java - > class -> 기계어 -> CPU 연산 수행 -> 명령 실행
패키지란 ?
재사용되는 같은 성격을 가진 클래스를 모아둔 폴더.
리팩토링 : 사용한 코드를 다시 재설계하여 최적화 하는것.
레거시 :
자바 플랫폼의 구성
[HelloJava.java] |
JAVA API |
JVM 자바가상머신 |
하드웨어 플랫폼(리눅스, 맥, 윈도우) |
자바 플랫폼의 종류 J2EE, J2SE, J2Me, JFX....
기본적인 메모리 구조 ( JVM )
클래스 영역 - 사용자가 작성한 클래스가 저장되는 영역 |
메서드 영역 - 멤버 메서드가 저장되는 영역 |
상수풀[constant pool] - 상수가 저장되는 영역 (static 영역 포함) |
자바 스택[Stack] - 메서드 호출, 지역변수가 선언돠 초기화(가벼운 영역) |
힙[Heap] - 객체가 생성되고 사라지지전까지 재사용되기 위해서 메모리에서 기억하는 영역 (즉, 힙이 생성되고 유지, 소멸되는 영역) - 주소를 참조한다. |
네이티브 스택[Native Stack] - C 언어와 같은 다른 언어의 자원을 빌어 쓸때 사용하는 공간 |
자바의 기초 문법
클래스 식별자 : 대문자로 시작 _ , $ 중간에 사용가능 , 특수문자로 시작 불가
ex ) class Myclass_01
메소드/변수 식별자: 반드시 소문자로 시작해야 한다.
소문자와 대문자로 혼용(예약어를 피하기 위한 방법)
예약어 사용 불가
/**
* JVM - > main() 메소드 모든 프로그램의 시작
*
*/
package ex1; // 패키지
// Class 영역 -
public class Ex1_Test {
// Main Method 영역 - JVM은 java 명령어를 통해서 Main 메소드를 항상 호출함.
public static void main(String[] args){
// 모니터로 문자를 출력해주는 println() 메소드를 호출
System.out.println("jjjjjjjj");
} // end Main
} // end Class
자료형과 변수의 종류
Variable : 특정 값을 연산, 재 사용의 목적으로 메모리의 한 공간에 기억을 해두고 사용하기 위해서 값을 담아두고 사용하기 위한 특정 공간 - 특정 값을 담아두고 사용하기 위한 특정 공간 이름을 지어준다.
변수의 선언과 초기화
=============================================================
package ex1;
// 변수와 자료형
// 자료형 : 변수의 타입을 지정
// 문법 ) 자료형 변수명 => 변수를 선언한다.
public class Ex2_Val {
public static void main(String[] args){
// *자료형의 종류
// - 기본 자료형 , 참조자료형
// *변수의 종류
// - 멤버 변수 (멤버필드)+ 지역변수
// 논리형
boolean a = false; // defalut - > false , 1byte
// 문자형
char b= 'd'; // defalut - > \u0000 ,1byte
// 정수형
byte c = 2; // defalut - > 0, 2byte
short d= 3; // defalut - > 0, 8byte
int e = 1; // defalut - > 0, 4byte
long f= 33l; // defalut - > 0, 8byte
// 실수형
float g = 3.1f; // defalut - > 0.0, 4byte
double i= 1; // defalut - > 0.0, 8byte
} // end Main
} // end class
=============================================================
package ex1;
public class Ex3_Val {
// main 메소드의 프로그램내에 오직 하나이어야만 한다.
public static void main(String[] args) {
// 지역변수 - 메소드나 생성자 즉, Local 변수라고 한다.
// 지역변수는 반드시 초기화 해야한다.
boolean b;// 변수 선언
b = true;
// ---- 참고 --------------------------------------
// println() 메소드의 인자값으로 문자열과 변수를 전달할떄
// "문자열값" + 변수명과 같은 형식으로 값을 전달할수 있다.
// 그러면 println 은 이 값을 문자열로 취급한다.
// +: 연산자는 문자열의 연결 연산자로 취급됨
System.out.println("Boolean 타입의 변수 B 의 값 "+b);
// 문자열 - char
// char c= "A"; // 문자열 (X)
char c= 'A'; // 문자열 (X)
System.out.println("Char 타입의 변수 c 의 값 "+c);
c = 65+1;
System.out.println("Char 타입의 변수 c 의 값 "+c ); // B
// 유니코드 -> 자바는 2바이트 기반.
c='\u0042';
System.out.println("Char 타입의 변수 c 의 값 "+c ); // B
} // end main
} // end class
=============================================================
package ex1;
public class Ex4_Val {
public static void main(String[] args) {
// JVM 연산
byte a = 10;
byte b = 10;
// JVM 연산할때 특징
// 4바이트 이하에서 연산할때 JVM 은 무조건 연산시에
// int 형으로 자동 형변환한다.
byte c;
// 큰 자료형에서 작은 자료형으로 값을 전달할떄는
// demotion(축소변화)이 일어난다고 캐스팅 표기를 해준다(컴파일러가)
c = (byte) (a+b);
System.out.println(c);
// promotion(확대변화) byte - > int
int num =c;
System.out.println(num);
// 연습문제 1) short 자료형도 위와 같이 테스트
// 연습문제 2) byte, short 와 같은 정수형 자료의 범위를 넘겨서
// 저장해보고 결과를 주석으로 남겨 봅시다.
// 1. 연습문제
short num1 = 200;
short num2 = 200;
short num3 = (short) (num1 + num2); // demotion
System.out.println(num3);
int num4 = num3; // promotion
System.out.println(num3);
// 2. 연습문제
// byte num5 = 200; // - 56 -> overflow
long lb = 1212; // promotion
long lb2 = 1212L; // long형으로 대입
} // end main
} // end calss
'Programing > Java' 카테고리의 다른 글
자바 메모리 구조 2 (0) | 2015.08.22 |
---|---|
String 객체 특징 (== 연산자 특징) (0) | 2015.08.22 |
자바 메모리 구조1. 변수의 저장영역 (0) | 2015.08.22 |
홀짝 게임 예제 (0) | 2015.08.21 |
1. Variable (0) | 2015.08.15 |