반응형
객체지향 언어란 : 다형성, 캡슐화, 상속성
UML 다이어그램을 통한 흐름도 및 각기능별 클래스를 문서로 정리한다.
전자정보 표준 프레임워크 한국정보에서 중구난방으로 처리되고 있는 자바 환경에 대한 표준 제공
웹기본 공부 사이트 2개
http://opentutorials.org/course/1
http://www.w3schools.com/
▶자바 이론
JVM(Java virtual machine) - 번역기 jre 설치시 자동으로 설치 됨
앱에서 구동, 윈도우에서 구동, 리눅스 구동 jvm을 통하여 어떠한 환경에서도 그 환경에 맞게 프로그램이 구동되도록 해준다.
Java의 경우는 게임 개발을 하기에는 부적합한 언어 자바는 속도가 좀느리고 업무용 프로그램 개발하는데 많이 사용된다.
메모리가 넓어야 실행속도가 빨라진다. jvm의 경우에는 1기가 할당
jvm의 경우 실행되고 있는 생성된 객체를 종료하고 정리해주는 역할을 한다.
메모리 할당 -> 객체 생성 -> 메모리 소멸
가비지 컬렉터 : jvm 안에 가비지 컬렉터라는 프로그램 있다. 사용하지 않는 객체를 정리해주어 메모리 관리를 자동으로 해준다.
사용된 객체가 일정시간동안 사용되지 않으면 정리.
소스파일 작성후 실행하기위한 파일로 변환하기 위환 과정을 컴파일이라고 하며 .class라는 확장자가 생성되고 실행파일을 만든다.
클래스 = 설계도
객체 = 설계도를 가지고 메모리안에 만들어진것
실행파일 = 바이트 코드 + jvm이 이해할수 있는코드
C:\Program Files\Java\jdk1.8.0_40\bin\javac -> 이파일을 통해 컴파일 과정을 거친다.
실행파일은 무조건 . class 확장자가 되어야함
▶자바 종류
java ME(Micro Edition) - 태블릿 포토블 디바이스 휴대가 가능한 프로그램 개발시 이용
java SE(Standard Edition) - 데스크탑에서 구동되는 프로그램 개발시 이용 응용프로그램 같은경우는 c나 델파이로 만드는게 좋다.
java EE(Enterprise Edition) - Server에서 구동되는 프로그램 개발시 사용 되는 프로그램
▶자바 프로그램 개발시 셋팅
jdk 자바 개발 도구 자바 개발, 자바 실행 도구들이 셋팅되어 있음
jre 자바 실행 도구 자바 실행 환경 구성
java 설치
http://www.oracle.com/index.html 다운로드 항목에서
1. jdk설치
2. 환경설정 셋팅을 해주어야 java 실행가능 컴퓨터 -> 속성 -> 고급시스텝설정 -> 환경변수 클릭
- 시스템변수 등록 : JAVA_HOME 시스템변수를 등록
jdk가 설치되어 있는 경로를 JAVA_HOME이라는 이름으로 등록
새로만들기 클릭 -> 변수이름-JAVA_HOME, 변수값 jdk가 설치되어 있는 경로를 적는다. C:\Program Files\Java\jdk1.8.0_40
- path를 변경
jdk의 bin폴더내의 프로그램들을 어느곳에서나 자유롭게 사용하기 위해서 path를 변경
시스템 변수 Path를 찾아 더블클릭후 편집 %JAVA_HOME%\bin;를 앞쪽에 추가한다.
3. 설치확인
- java -version으로 설치가 되었는지 확인해보면 java version이 정상적으로 나오는지 보면 된다.
▶코딩도구 Eclipase 설치
이클립스 설치후 원하는 해당폴더에 압축풀면 됨.
Eclipase Marketplace 앱 다운받아서 확장이가능
.jar 압축파일이름을 .jar라고 지었다.
jar = 개발에 필요한 기본적인 설계도를 제공해준다.(객체를 만들면 설계도를 사용할수 있다.)
라이브러리를 사용하려면 클래스 패스를 등록해 줘야 한다.
이클립스내에서 클래스 파일명을 변경하고 싶을때는 리팩터라는 기능을 통해 클래스명을 편하게 바꿀수 있다.
▶실습
//My라는 이름을 가진 공개된 설계도를 만들었다.
public class My {
public static void main(String[] args){
System.out.println( "헬로우 자바.." );
}
}
//dos 창 해당 드라이브로 가서 javac My.java엔터 하면 .class파일이 생성되는것을 확인 할수 있다.
//그후 java My를 치면 실행완료.
//.java - 개발자 설계도
//.class - jvm이 이해할수 있는 설계도
package basic;
//class안에는 속성과 기능을 포함할수 있다.
class HelloWorld {
/**
* 메소드용 주석
* 자바 doc주석 메소드위에 기재한다. 자바 jdk내장 기능
* 자동으로 문서화가 되어 파일이 나오기 때문에 편하다
* 한국에선 잘안씀. pdf나 엑셀 선호
* @param args
*/
public static void main(String args[]){
//이클립스는 저장할때 .class가 생성됨
//실행파일은 bin폴더에 저장
//리터럴 : 변수에 데이터를 담을때 원형 그대로의 값을 리터럴이라고 한다.
int age = 24;
System.out.printf( "아이유의 나이는" );
}
}
package basic;
public class TypeDemo {
public static void main(String args[]){
//char 문자열 <- 한문자를 담을수 있는 자료형, 유니코드지원
//'역슬래쉬 u'는 유니코드를 사용하겠다고 선언하는것'
//다양한 국적언어가 지원되는 방법으로는 유니코드가 있다. 유니코드로 html 작업을 하면 다국적 언어로 출력된다.
//자주사용하기 때문에 이클립스 플러그인이 존재하여 자동 해석하여 유니코드를 얻을수 있다.
char name = '핫';
char unecode = '\u0041';
System.out.println(name + "\n" +unecode);
}
}
package basic;
public class TypeDemo {
public static void main(String args[]){
//char 문자열 <- 한문자를 담을수 있는 자료형, 유니코드지원
//'역슬래쉬 u'는 유니코드를 사용하겠다고 선언하는것'
//다양한 국적언어가 지원되는 방법으로는 유니코드가 있다. 유니코드로 html 작업을 하면 다국적 언어로 출력된다.
//자주사용하기 때문에 이클립스 플러그인이 존재하여 자동 해석하여 유니코드를 얻을수 있다.
char name = '핫';
char unecode = '\u0041';
System.out.println(name + "\n" +unecode);
//메모리에 2byte를 차지하기 위한 예약 키워드
//스트링은 객체다. String 객체는 대부분 대문자로 시작 문자조작을 위한 많은 기능들이 들어 있다.
String talent = "연예인 최고~!" ;
String star = "아이유라는 가수를 좋아합니다." ;
System.out.println(talent + "\n" + star);
boolean trueyo = true;
boolean falseyo = false;
boolean pandan = 10>5; //연산된 결과가 참인지 거짓인지를 나타낸다.
//System.out.println(trueyo + falseyo);
System.out.println(pandan);
}
}
package basic;
public class TypeDemo {
public static void main(String args[]){
//char 문자열 <- 한문자를 담을수 있는 자료형, 유니코드지원
//'역슬래쉬 u'는 유니코드를 사용하겠다고 선언하는것'
//다양한 국적언어가 지원되는 방법으로는 유니코드가 있다. 유니코드로 html 작업을 하면 다국적 언어로 출력된다.
//자주사용하기 때문에 이클립스 플러그인이 존재하여 자동 해석하여 유니코드를 얻을수 있다.
char name = '핫';
char unecode = '\u0041'; //유니코드문자 a
System.out.println(name + "\n" +unecode);
//메모리에 2byte를 차지하기 위한 예약 키워드
//스트링은 객체다. String 객체는 대부분 대문자로 시작 문자조작을 위한 많은 기능들이 들어 있다.
String talent = "연예인 최고~!" ;
String star = "아이유라는 가수를 좋아합니다." ;
System.out.println(talent + "\n" + star);
boolean trueyo = true;
boolean falseyo = false;
boolean pandan = 10>5; //연산된 결과가 참인지 거짓인지를 나타낸다.
System.out.println(trueyo);
System.out.println(falseyo);
System.out.println(pandan);
//정수나 실수는 2진표현시 첫번째 자리는 음수인지 양수인지를 판단함. 부호비트 0이면 양수 1이면 음수
int score = 80;
long top = 1000000000L;
System.out.println(score + top);
}
}
package basic;
public class TypeDemo2 {
public static void main(String args[]){
int totalScore = 230; //총점
int subject = 3; //과목수
int avg = totalScore / subject;
//연산시 소수점까지 표기되려면 소수점을 적어준다.
//연산전 타입 연산후의 타입이 항상 똑같다.
//int = 4byte, double = 8byte 타입이 다르면 자료의 손실이 없는 방향으로 계산됨. 4byte 8byte 면 4byte가 아닌 8byte로 출력 됨
//먼저 타입을 갖게 만든다 double 형으로 두개다 바뀜 그이후 계산됨 실수/실수 = 실수 내부적으로 캐스팅됩니다.
System.out.println(230 / 3.0);
}
}
package basic;
public class TypeDemo2 {
public static void main(String args[]){
int totalScore = 230; //총점
int subject = 3; //과목수
int avg = totalScore / subject;
//연산시 소수점까지 표기되려면 소수점을 적어준다.
//연산전 타입 연산후의 타입이 항상 똑같다.
//int = 4byte, double = 8byte 타입이 다르면 자료의 손실이 없는 방향으로 계산됨. 4byte 8byte 면 4byte가 아닌 8byte로 출력 됨
//먼저 타입을 갖게 만든다 double 형으로 두개다 바뀜 그이후 계산됨 실수/실수 = 실수 내부적으로 캐스팅됩니다.
System.out.println(230 / 3.0);
}
}
반응형