자바의 자료형 -!! 메모리가 무한대가아닌 이상 효율적인 데이터저장이 필요해서 필요한 양만큼 할당해주기위하여 사용
기본 자료형 (primitive data type)
-자바 컴파일러에 의해서 해석되는 자료형

참조 자료형 (reference data type)
-자바 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우
-클래스, 인터페이스, 배열

논리형= 1byte
문자형= 2byte  = 정수형에 포함 문자도 숫자로 코드
실수형=오차가있을수있다. double=정밀도가 높다



예제
public class VariableTypes {
 public static void main(String[] args){
  //1.논리형(true,false)
  System.out.println("====논리형====");
  boolean b = true;
  //boolean b = 1; //자바에선 True=1 불허
  System.out.println("b = " + b);
  
  //2.문자형 (크기:2byte, 표현범위:0~65,535
  //다국어처리를 위한 유니코드(unicode)방식
  System.out.println("====문자형====");
  char c1 = 'A'; //내부적으로는 아스키코드 65에 해당
  char c2 = 65; //A에 해당하는 는 아스키코드 값 65
  char c3 = '\u0041';  //\//u//는 16진수유니코드로 표현 하는거
  char c4 = '자';
  char c5 = '\uc790'; //자를 유니코드로 표현
   
  System.out.println("c1 = " + c1);
  System.out.println("c2 = " + c2);
  System.out.println("c3 = " + c3);
  System.out.println("c4 = " + c4);
  System.out.println("c5 = " + c5);
  
  //3.정수형
  System.out.println("====정수형====");
  //byte, 크기 : 1byte, 표현범위 : -128 ~ 127
  byte b1 = 127; //128에러
  
  //short, 크기 : 2byte, 표현범위 : -32,768 ~ 32,767 
  short s1 = 32767;
  //int, 정수표현의 기본  크기 : 4byte
  int in = 45678;
    
  //long, 크기 : 8byte 
  long lg = 2345L; //1이랑 해깔리기 때문에 L 대문자표시 
  
  System.out.println("lg = "+ lg);

  //4. 실수형
  System.out.println("====실수형====");
  //float, 크기 : 4byte
  float f1 = 3.245f;
  //double, 실수표현의 기본, 크기 : 8byte
  double d1 = 2.56;
  
  //5.문자열 표시 (기본자료형이 아닌 참조자료형-레퍼런스형)
  // 문자열 " " 
  System.out.println("====문자열표시====");
  String str = "Hello World!";
  System.out.println("str = " + str);
 }
}   




출력값
====논리형====
b = true
====문자형====
c1 = A
c2 = A
c3 = A
c4 = 자
c5 = 자
====정수형====
lg = 2345
====실수형====
====문자열표시====
str = Hello World!


+연산자
연산 
3+5=8
문자열+문자열 연결
"Hello" + "hi" -> Hellohi
"b= " + true -> b=true

연산시 자료형이 같아야 오류가없음
자료형이다르면 일치해야 하기때문에 형변환 을 통하여 자료형을 통일

int []  - 자동 형뱐환 -> long [[[[[[]]]]]]]  : 데이터외곡이생김
long  [[[[[[]]]]]]] - 강제 형변환 -> int[]    : int에 맞게 강제로 짤라내야한다.  - 데이터외곡이생김

 <<-----------------------------------------------------------------명시적(강제)형변환 - 데이터손실이 있을수있다.
char(2byte)  < int(4byte) < long(8byte) < float(4byte) < double(8byte)
------------------------------------------------------------------>>자동적 형변환 - 데이터손실이없다.

byte short로 연산하면 int로 승격됨

예제
public class CastEx {
 public static void main(String[] args){
  //====프로모션 (자동형변환)====//
  //더큰 자료형으로 승격이 일어나는 형태,
  //정보의 손실이 전혀 없으며 자동적으로 발생
  byte b1 = 127;
  byte b2 = 127;
  int b3 = b1 + b2; //32bit 미만의 자료형 (byte) 연산시 32bit(int)로 승격
  
  short s1 = 123;
  short s2 = 123;
  int s3 = s1 + s2; //32bit 미만의 자료형 (short) 연산시 32bit(int)로 승격
 
  int in1 = 234;
  long lg = in1; //int->long 자동 형변환
  System.out.println("lg = " + lg);
  
  int in2 = 1234;
  long lg2 = 234L;
  long lg3 = in2+ lg2; //int2 -> long 자동형변환

  //====디모션(명시적(강제) 형변환)====//
  //더 작은 자료형으로 강등, 데이터의 손실이 있을 수 있음
  //명시적(강제) 형변환
  byte b4 = 127;
  byte b5 = 127;
  byte b6 = (byte)(b4 + b5); //int->byte 명시적(강제) 형변환
  System.out.println("b6 = " + b6);

  short s4 = 123;
  short s5 = 123;
  short s6 = (short)(s4 + s5);//int->short 명시적(강제) 형변환

  int in5 = 234;
  float f5 = 123.5f;
  int in6= in5 + (int)f5; //float -> int  손실이 있을수있슴
  System.out.println("in6 = " + in6);   //(int) = Cast 연산자.
 }
}



출력값
lg = 234
b6 = -2    //명시적(강제) 형변환으로 데이터 손실이 일어남
in6 = 357  // float->int로 명시적(강제) 형변환으로  .5가 날라가버림 
-------------------------------------------------------------------------

생략이 가능한건 생략하는게 좋다 = 좋은코드.


식별자 :  객체들을 각각 구별할 수 있는 것
-영문자(A~Z,a~z)와 숫자(0~9)와 ‘_’,’$’의 조합
-첫 글자는 반드시 영문자나 ‘_’로 시작.숫자로  시작 불허
-자바에서 사용되는 예약어는 식별자로 사용할 수 없다
-식별자는 대소문자를 철저히 구분
-가급적이면 자기 역할에 맞는 이름 부여


클래스 ->변수,상수,함수를 담는범위
-첫 문자는 항상 대문자로 표현   ex)  class JavaTest{

변수,함수(메소드)->데이터를 바꿀수있슴
-첫 문자는 항상 소문자로 표현   ex) getTest(){}

상수->데이터를 못바꿈
-모든 문자를 대문자로 표현 ex) int JAVATEST = 10;

예제
public class VariableEX {//클래스시작
   //클래스명 = 주석
 public static void main(String[] arg){//메소드시작
  int num; //변수선언
  num=17; //변수의 초기화
  System.out.println(num);

  final int COUNT = 30; //상수
  //COUNT =50; //상수는 프로그램 종료때까지 변하지 않음
  System.out.println(COUNT);

  int number; //변수선언
  //변수선언후에 변수 초기화를 해야 출력 또는 연산 가능
  //System.out.println(number); 
  
 }//메소드끝
}//클래스끝c   




예약어
-자바 프로그래밍을 하는데 있어 특정한 의미가 부여되어 이미 만들어진 식별자를 말한다.
-예약어에 등록되어 있는 것을 프로그래밍에서 식별자로 사용할 수 없다.
     (const와 goto는 예약어로 등록만 되어 있을 뿐 사용되지 않는 예약어이다.)


'Java' 카테고리의 다른 글

JDK, Eclipce 설치  (0) 2012.01.12
참고한 교재




JAVA(프로그램언어)
1.응용프로그램
2.Web프로그램->JSP
3.모바일프로그램->안드로이드

언어는 암기->이해

1.용어=>모르는용어 찾아서 정리
2.기초 (연산자,제어문) 배열변수 많이해볼수록 좋음 -연습,스터디
3.객체 (생성,활용) 이해
4.실습 (자동자,자판기) 만들어보기

JDK 다운로드와 설치
http://www.oracle.com/technetwork/java/index.html
->java se
->jdk->동의->다운->설치

제어판>시스템>고급>환경변수
JAVA_HOME : C:\Program Files\Java\jdk1.7.0_01
Path : %JAVA_HOME%\bin;  <=기존값에추가 ;=Path구분자 
CLASSPATH : . (현재폴더)

환경설정확인 - 날코딩
파일명Hello.java

package javaapplicationl;                                               //패키지정의
public main(){}                                                             //생성자정의
public class Hello{                                                        //클래스정의
 public static void main(String[] args){                            //매서드정의
  System.out.println("Hello, world.");                                //문장
 }
}

cmd->D:\javaWork->javac Hello.java-(class생성)->java Hello



(java bin 에위치한-> javac.exe 컴파일러!-두뇌,번역자)

cd:폴더이동
cd \:root
dir:폴더명세
dir /w:폴더간단명세

JAVA applet
넷빈->eclipse

배우기 쉽다   - c보단쉽다
객체지향 프로그래밍  - !!중요 인기
가비지 컬렉션 - 
플랫폼 독립성 - os랑 상관없이 사용가능(JVM번역) -속도가 느리다 (플래시도 플랫폼 독립성)
멀티스레드 - 동시작업지원
네크워크와 분산처리 지원 -

자바플랫폼
자바 프로그램이 실행되기 위해 제공되는 '하드웨어적 프로그램'

구성
MyProgram.java
JAVA API-미리만들어져있는 코드
JAVA JVM-각 os맞게 번역

자바플랫폼의 종류
Java 2 Platform, Standard Edition(J2SE) 기본문법
Java 2 Platform, Enterprise Edition(J2EE) 웹환경
Java 2 Platform, Micro Edition(J2ME) 모바일

JAVA는 반기계어

API packages.
http://www.oracle.com/technetwork/java/index.html
Essential Links->Java APIs->Java SE 7
자바에서는 폴더\대신 . 으로 구분
java.lang 

자바범용에디터 이클립스
http://www.eclipse.org    ->Downloads -> Java EE Developers

Eclipse IDE for Java Developers - 자바에디터
Eclipse IDE for Java EE Developers - 자바+웹기반

설치
eclipse.ini -> 메모장으로 설정변경 ->xmx256mb 메모리할당
javaWork\workspace 폴더생성및 지정

help-> about Eclipse -> 버전확인 // 최신버전 Indigo

프로젝트를 만들어 사용
Project Explorer -> 우클릭-> 뉴->프로젝트->자바프로젝트 -> ch01_javaBasic(이름은 마음대로 한영가능)
->open associated perspective? =메뉴구성을 바꾸는거 yes

파일을 만드는순간 컴파일 -> javac 를통한 컴파일과정을 대신해줌
(preferences의 generla ->cokor and font =폰트변경 ,show line numbers ) 
->new->class->클레스명= 파일명->완료=컴파일


'Java' 카테고리의 다른 글

식별자 ,예약어  (0) 2012.01.12

+ Recent posts