1일차 Subnote

Programing/Java 2015. 8. 17. 13:37 by kira-master

1 . 학습목표

자바 환경 설정 및

NetBeanIDE  설치

자바의 특징,  기본적인 메모리 구조  설명

자바의 기초 문법(변수, main 메소드 , 기본연산자)

2 .  학습내용

  1. 자바 설치

Oracle 홈페이지 - > 자바 최신 버전JDK 설치

C:\Program Files\Java\jdk1.8.0_51\bin

bin 폴더-  자바 명령어 포함됨

-java   자바 파일 실행

-javac  컴파일러

java - version  자바 버전 확인


  1. 자바 환경 설정

시스템 속성 -  환경변수 - 시스템 변수 추가

CALSSPATH - .;

JAVA_HOME - C:\Program Files\Java\jdk1.8.0_51

PATH - %JAVA_HOME%\bin;


  1. 넷빈즈  설치

넷빈즈 홈페이지 - > 넷빈즈 8.02 버전 다운로드

  1. 넷빈즈 설치 설정  - 톰켓7  추가 설치


  1. 자바의  특징

  • 객체 지향적이다.(OOP) - > 코드의 재사용성(재활용)

  • 배우기가 쉽다.

  • 플랫폼에 독립적이다. (JVM)

  • 가비지컬렉터(GC) ->    Heap영역 쓰지않는 객체들을 수집해서 메모리에서 해체

  • 멀티쓰레드 지원 -> 멀티 프로세스 (멀티 캐스팅)

  • 컴파일 언어, 인터 프리터 언어이다.

캡슐화 - > 사용자에게는 구현된 프로그램 내부는 보여주지 않고 사용자는 이를 단순히 이용만 하게 만든다.

컴파일: 개발자가 작성한 프로그래밍 언어를 JVM (가상머신)이 기계어로 번역하는 것을 의미한다.

Javac란 명령어를 의미한다.

Javac -> HelloJava.java => HelloJava.class(기계어)


인터프리터: (기계어/class)를 JVM이 해석하여 수행

java란 명령어를 사용한다.

Java - > class -> 기계어 -> CPU 연산 수행 -> 명령 실행


패키지란 ?

재사용되는 같은 성격을 가진 클래스를 모아둔 폴더.


리팩토링 : 사용한 코드를 다시 재설계하여 최적화 하는것.

레거시 :




  1. 자바 플랫폼의 구성

[HelloJava.java]

JAVA API

JVM 자바가상머신

하드웨어 플랫폼(리눅스, 맥, 윈도우)

자바 플랫폼의 종류 J2EE, J2SE, J2Me, JFX....

  1. 기본적인 메모리 구조 ( JVM )


  클래스 영역 - 사용자가 작성한 클래스가 저장되는 영역

  메서드 영역 - 멤버 메서드가 저장되는 영역

  상수풀[constant pool] - 상수가 저장되는 영역 (static 영역 포함)

자바 스택[Stack] - 메서드 호출, 지역변수가 선언돠 초기화(가벼운 영역)

  힙[Heap]  - 객체가 생성되고 사라지지전까지 재사용되기 위해서 메모리에서 기억하는 영역 (즉, 힙이 생성되고 유지, 소멸되는 영역) -                    주소를  참조한다.

  네이티브 스택[Native Stack] - C 언어와 같은 다른 언어의 자원을 빌어 쓸때 사용하는 공간






  1. 자바의 기초 문법

  • 클래스 식별자 : 대문자로 시작 _ , $ 중간에 사용가능 , 특수문자로 시작 불가

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

  1. 자료형과 변수의 종류

Variable : 특정 값을 연산, 재 사용의 목적으로 메모리의  한 공간에 기억을 해두고 사용하기 위해서 값을 담아두고 사용하기 위한 특정 공간 - 특정 값을 담아두고 사용하기 위한 특정 공간 이름을 지어준다.

  1. 변수의 선언과 초기화

=============================================================

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
Nav