'JavaSE'에 해당되는 글 38건

[정리]컬렉션

JavaSE 2015. 8. 18. 23:35

1. 컬렉션 프레임윅의핵심 인터페이스 - List, Set, Map


1. List

: 순서가 있는 데이터의 집합, 데이터의 중복을 허용

: ArrayList, LinkedList, Stack, Vector ...


ArrayList와 Vector의 공통점 및 차이점


공통점 

차이점 

 - List 인터페이스 구현

 - 저장 순서유지, 중복 허용

 - 데이터 저장공간으로 배열을 사용

 - Vector는 멀티 쓰레드에 대한 동기화가 되어 있으나

      ArrayList는 그렇지않다.


2. Set

: 순서가 유지 되지않은 데이터의 집합, 데이터 중복 불가

: HashSet, TreeSet ..


3. Map

: 키(Key)와 값(value)의 쌍 으로 이루어진 데이터 집합

: HashMap, TreeMap, ...



2. Comparator / Comparable


1. Comparable : 기본 정렬기준을 구현

2. Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자할때 사용


공통점 : 두 객체를 비교하는것이 목적이다.

두 객체가 같으면 "0", 비교하는 값보다 작으면 "음수", 크면 "양수"



3. 제네릭스(Generics)


: 다룰 객체의 타입을 미리 명시해줌으로써 형변환을 하지 않아도 되게 하는 것.


ArrayList<E> 에서 <E> 에 해당부분을 상황에 맞게 사용하면 된다.

'JavaSE' 카테고리의 다른 글

[정리]Java.lang 패키지  (1) 2015.08.18
[정리]예외처리  (0) 2015.08.18
[정리]객체지향2  (0) 2015.08.18
[정리]객체지향1  (1) 2015.08.17
[정리] 배열  (0) 2015.08.17
블로그 이미지

알 수 없는 사용자

,

[정리]Java.lang 패키지

JavaSE 2015. 8. 18. 22:55

1. String


: 문자열을 다루기 위한 클래스 이다


String클래스중 자주 사용하는 생성자 및 메서드


1. equals : 문자열을 비교한다

2. equalsIgnoreCase : 대소문자 관계없이 문자열을 비교한다.

3. indexOf : 주어진 문자가 문자열에 존재하는지 확인한다.

4. int length : 문자열 길이를 알려준다.

5. String [] split : 문자열을 지정된 분리자로 나누어 문자열 배열에 담아 반환

6. String toString () : String인스턴스에 저장되어 있는 문자열을 반환



2. toString


:toString은 이미 Object클래스에 정의 되어있다. 원하는 방식으로 사용하기 위해서는 오버라이딩을 통해 재정의 하여 사용해야 한다



3. StringBuffer

: Buffer는 문자열을 더할때 쓰는 클래스이다.
: Buffer는 크기를 지정해주지 않으면 16개의 문자를 저장할 수 있는 크기를 생성



4. Math클래스


:임의의 수를 얻을 수 있는 random()과 반올림에 사용되는 round() 등에 사용한다.


:math.round();


**참고**

Math클래스를 이용한 소수점을 얻는 방법

1. 원래값에 100을 곱한다

2. 위 결과에 Math.round()를 사용한다

3. 위 결과에 100.0을 나눈다



5. Wrapper클래스


: int -> Integer  /  double -> Double



 

문자열 > 기본형 

문자열 > Wrapper클래스 

Byte 

b = Byte.parseByte("100");

b = Byte.valueOf("100"); 

short

s = Short.parseShort("100");

s = Short.valueOf("100"); 

int 

i = Int.parseInt("100"); 

i = Int.valueOf("100"); 

long

l = Long.parseLong("100"); 

l = Long.valueOf("100"); 

float

f = Float.parseFloat("3.14"); 

f = Float.valueOf("3.14"); 

double 

d = Double.parseDouble("3.14"); 

d = Double.valueOf("3.14"); 





'JavaSE' 카테고리의 다른 글

[정리]컬렉션  (0) 2015.08.18
[정리]예외처리  (0) 2015.08.18
[정리]객체지향2  (0) 2015.08.18
[정리]객체지향1  (1) 2015.08.17
[정리] 배열  (0) 2015.08.17
블로그 이미지

알 수 없는 사용자

,

[정리]예외처리

JavaSE 2015. 8. 18. 16:57

예외처리란!?


 : 예기치 못한 예외의 발생에 대비한 코드를 작성,

프로그램의 갑작스런 비정상 종료를 막고 정상적인 실행상태를 유지할수 있도록 하는것이다.


try-catch


try{

//예외가 발생할 가능성이 있는 문장들을 넣는다.

}catch(Exception e){

//Exception이 발생할 경우, 이를 처리하기 위한 문장을 적는다.

}catch(Exception1 e1){

//Exception1이 발생할 경우, 이를 처리하기 위한 문장을 적는다.

}


try-catch구문을 통해 정상작동 구분과 비정상작동 했을때 예외처리 하는 부분을 나누어 처리 가능하다.


try-catch의 작동원리


1. try블럭 내에서 예외가 발생할 경우

=>1.  발생한 예외와 일치하는 catch블럭이 있는지 확인

2.일치하는 catch블럭이 존재하면, 블럭내 문장들을 수행하고 try-catch구문을 빠져나가 다음 문장 계속 수행,

만일, 일치하는 구문이 없을 경우 예외는 처리되지 못한다.


2. try블럭 내에서 예외가 발생하지 않은 경우

=> 1. catch 블럭을 거치지 않고 전체 try-catch블럭을 빠져나가 수행을 계속한다.


---------------------


try-catch-finally


try{

//예외가 발생할 가능성이 있는 문장들을 넣는다.

}catch(Exception e){

//Exception이 발생할 경우, 이를 처리하기 위한 문장을 적는다.

}finally{

//예외와 상관없이 항상 수행되어야 하는 문장들을 넣는다.

//항상 맨 마지막 catch 다음에 위치해야 한다.

}



'JavaSE' 카테고리의 다른 글

[정리]컬렉션  (0) 2015.08.18
[정리]Java.lang 패키지  (1) 2015.08.18
[정리]객체지향2  (0) 2015.08.18
[정리]객체지향1  (1) 2015.08.17
[정리] 배열  (0) 2015.08.17
블로그 이미지

알 수 없는 사용자

,

[정리]객체지향2

JavaSE 2015. 8. 18. 15:47

상속이란!?(+장점)

 

 : 기존의 클래스를 재사용 하여 새로운 클래스를 작성하는 것이다.

장점 : 코드를 공통적으로 관리할수 있기때문에  코드의 추가 및 변경이 매우 용이하다.

조상 클래스만 변경해도 모든 자손 클래스에, 자손의 자손 클래에까지 영향을 미치기 때문에, 코드가 적어지고 관리가 용이하다.


Class Child extend Parent {}


와 같이 extend를 작성하고 상속받고자 하는 클래스명을 작성하여 주면 된다.


 위에서 볼 수 있듯이, 상속받는 자식클래스가 부모클래스를 정하여 받을 수 있다.

(단! 클래스 간의 관계에서 형제 관계와 같은건 없다, 부모와 자식관계만이 존재할 뿐이다.)


Object Class

: 모든 클래스의 최상위 클래스다. 기본클래스들은 모두 Object클래스를 상속받는다.



Super()


상속받은 멤버를 참조하는데 사용되는 참조 변수이다.

상속받은 멤버와 자신의 클래스에 정의된 멤버의 이름이 같을 때는 Super()를 사용해서 구별할 수 있다.


Super는 this와 근본적으로 같다

super는 this와 마찬가지로 static메소드에서 사용할수 없고, 인스턴스메소드에서만 사용할 수 있다.

하지만,


Super와 this의 차이점 이 있다.

this()와 마찬가지로 super() 역시 생성자이다. this()는 같은 클래스의 다른 생성자를 호출 하는데 사용 하지만

super()는 조상 클래스의 생성자를 호출하는데 사용된다.



**참고**

 상속은 단일 상속만 가능하고 다중상속은 불가하다.(Interface를 통한 다중상속이 가능)


**참고**

 자손클래스가 조상클래스를 사용하기 위해선 조상클래스가 먼저 초기화 되어야 한다!.

 Object클래스를 제외한 모든 클래스의 생성자 첫 줄에는 생성자를 호출해야한다. 그렇지 않으면 컴파일러가 자동으로 super();를 생성자의 첫 줄에 삽입한다.


패키지란!?(Package)


: 클래스의 묶음이다.

 목적으론 : 클래스를 효율적으로 관리하기 위함 이다. -> 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 출돌하는것을 피할 수 있다.


특징 :    

1. 하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용

2. 모든 클래스는 반드시 하나의 패키지에 속해야 한다.

3. 패키지는 . 을 구분자로 하여 계층구조로 구성

4. 패키지는 물리적으로 클래스파일을 포함하는 하나의 디렉토리이다.



Import란!?


: 클래스의 코드를 작성 하기전, import를 통해 사용하고자 하는 클래스의 패키지를 미리 명시, 소스코드에 사용되는 클래스이름에서 패키지명은 생량 가능.


ex) import java.util.*;     import java.sql.*;    import java.html.*;



제어자란!?


1.접근제어자 : private, defalult, protected, public

2. 그외 : static, final, abstract, native, transient, synchroniuzed, volatile, strictfp


1-1 접근제어자

 : 접근제어자를 사용하는 이유는 클래스의 내부에 선언된 데이터를 보호하기 위해서이다.

public > protected > default > private 순으로 접근범위가 줄어든다 즉! public이 가장 큰 접근범위를 가진다.

private : 같은 클래스 전체

default : 같은 패키지

protected : 같은 패키지, 다른패키지의 자손클래스

public : 접근 제한이 없다.



 대상

사용가능한 제어자 

클래스 

public   default   final   abstract 

(abstract와 static을 동시 사용불가)

메서드 

모든 접근제어자   final   abstract   static 

(메서드에 static과 abstract를 함께 사용불가)

 멤버변수

모든 접근제어자   final   static 

지역변수 

 final

**abstract메서드(자손클래스 구현 목적)의 접근 제어자가 private(자손클래스에 접근 불가)일 수 없다.


**참고**

생성자에 접근제어자를 사용함으로써 인스턴스의 생성을 제한할 수 있다.



2-1 final

: 더이상 상속을 불가하게 막을때 사용한다.


InstanceOf연산자란!?


: 인스턴스의 실제 타입을 알아보기 위해 instanceOf연산자를 사용한다.(주로 조건문에 사용)


Abstract Class(=추상클래스)


: abstract를 보고 이 클래스에는 추상 메서드가 있으니 상속을 통해, 구현해주어야 한다.(멤버변수,메서드를 가질 수 있다)


작성방법

: 공통적으로 사용될 수 있는 클래스를 바로 작성하기도 하고, 공통적인 부분을 뽑아 추상크래스로 만들어 상속하도록 하는경우



인터페이스(Interface)란!?

: 추상클래스다.  하지만, 메서도 또는 멤버변수를 구성원으로 가질수 없다.

다른 클래스를 작성하는데 도움 줄 목적이다.


인터페이스는 implements를 사용한다.


**참고**


 상속 

 extend 

 인터페이스(Interface)

 implements



인터페이스의 장점

1. 개발시간 단축

2. 표준화 가능

3. 서로 관계없는 클래스들을 관계를 맺어준다

4. 독립적인 프로그래밍 가능



'JavaSE' 카테고리의 다른 글

[정리]Java.lang 패키지  (1) 2015.08.18
[정리]예외처리  (0) 2015.08.18
[정리]객체지향1  (1) 2015.08.17
[정리] 배열  (0) 2015.08.17
[정리] 조건문과 반복문  (1) 2015.08.17
블로그 이미지

알 수 없는 사용자

,

[정리]객체지향1

JavaSE 2015. 8. 17. 16:14

객체지향이란!?


 : 기본개념은 실제 세계를 사물(객체)로 이루어져 있으며, 발생하는 사건들은 사물간의 상호작용이다. 라는 것이다.


객체지향의 가장 큰 특징

1. 상속

2. 캡슐화

3. 추상화


객체지향의 장점

1. 코드 재사용이 높다

2. 코드의 관리가 용이하다.

3. 신뢰성이 높은 프로그래밍을 가능하게 한다.


클래스와 객체


1. 클래스란!? 

 

객체를 정의해놓은것 (Object), 객체의 설계도 또는 틀

클래스의 정의 : 객체를 정의해 놓은것

클래스의 용도 : 객체를 생성


2. 객체란? 사전적 의미로는 실제로 존재하는 것


객체의 정의 : 실제로 존재하는 것.

객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다르다.


인스턴스란!


 : 클래스로 부터 객체를 만드는 과정을 클래스 인스턴스화 라한다.


1. 속성 과 기능


속성 : 멤버변수, 특성,필드, 상태

기능 : 메서드, 행위, 함수


2. 인스턴스 생성 및 사용


생성방법 :

클래스명 변수명 = new 클래스명();


 **인스턴스는 참조변수를 통해서만 다룰수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.**


--참고--


변수의 정리


 변수의 종류 

 선언위치 

 생성시기 

 클래스 변수 

 클래스 영역 

 클래스가 메모리에 올라갈 떄 

(Static이용)=공유변수

 인스턴스변수

 클래스 영역

 인스턴스가 생성되었을 때 

(new에의한 활성화)

 지역변수 

 클래스 영역 이외 영역(메서드,생성자..) 

 변수 선언문이 수행되었을 때 

({ }내에서만 사용가능)


메서드


 : 어떤 작업을 수행하기 위한 명령문의 집합


메서드 장점


1. 하나의 메서드는 한가지 기능만 수행하도록

2. 반복적으로 수행되어야 하는 여러 문장을 하나의 메서드로 정의

3. 관련된 여러 문장을 하나의 메서드로 만들어 놓음.


**참고**

1. Static이 있을 경우 : 클래스멤버(=공통적으로 사용가능)

-> 인스턴스를 생성 하지 않아도 사용할수 있다.

-> 인스턴스 멤버는 클래스멤버로 전환이 가능 하지만, 클래스 멤버는 인스턴스멤버로 전환이 불가하다.


2. Static이 없을 경우 : 인스턴트 멤버.


Return문


  : Return타입은 반환값(자료형)이 일치해야한다.

  : 메서드가 종료 될 때 return문이 있을경우 값을 반환 하여 준다


 **Call by Reference, value**

1.Call by Reference : 매개 변수의 원래 주소에 값을 저장 하는 방식

2.Call by Value : 주어진 값을 복사하여 처리하는 방식, 메소드 내의 처리 결과는 메소드 밖의 변수에는 영향이 없다.



메서드 호출


참조변수.메서드이름();

참조변수.메서드이름(값1, 값2..) // 메서드에 선언된 매개변수가 있을경우

 와 같은 형태로 사용해야 된다.


메서드 오버로딩

 : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의 하는것 을 의미.


오버로딩 조건!


1. 메서드 이름이 같아야 한다.

2. 매개변수 개수 or 타입이 달라야한다

3. 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다.


오버로딩 장점!

 : 같은 이름으로 여러개를 만들 수 있어, 이름을 작명할 경우의 수가 줄어든다.


**참고**

오버로딩,오버라이딩 개념정리!


1.오버로딩 : 같은 이름의 메서드를 여러개 정의 가능. (단, 조건이 충족되어야 한다)


2. 오버라이딩 : 상속에서 나온 개념으로, 상위 클래스의 메소드를 하위 클래스에서 재정의 하여 사용하는것.



생성자


 : 인스턴스 초기화 메서드, 초기화 작업에 주로 사용!


생성자 조건


1. 생성자의 이름은 클래스의 이름과 같아야 한다.

2. 생성자는 리턴 값이 없다.


생성자에서 다른 생성자 호출 방법

1.this. 

-> 인스턴스 멤버 호출시 자주 사용하게 되며, 인스턴스 주소가 저장

2.this();

-> 다른 생성자를 호출할 때 사용한다.


**참고**

1. 클래스 변수 초기화 시점 : 클래스 처음 로딩될때 , 단 한번 초기화

-> 클래스 변수 초기화 순서 : 기본값 -> 명시적초기화 -> 클래스 초기화 블럭


2. 인스턴스변수 초기화 시점 : 인스턴스가 생성될 때 마다, 인스턴스별로 초기화

-> 기본값 -> 명시적 초기화 -> 인스턴스 초기화 블럭 -> 생성자


'JavaSE' 카테고리의 다른 글

[정리]예외처리  (0) 2015.08.18
[정리]객체지향2  (0) 2015.08.18
[정리] 배열  (0) 2015.08.17
[정리] 조건문과 반복문  (1) 2015.08.17
[정리] 연산자  (0) 2015.08.13
블로그 이미지

알 수 없는 사용자

,

[정리] 배열

JavaSE 2015. 8. 17. 14:57

배열 (array) 이란!?


 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열 이라고 한다.



배열 생성


 int [] Test

Test = new int [5];

  = 같은방법 : int[] Test = new int[5] 와 같이 작성하여도 된다.

해석 : int 자료형을 가진 배열을 5칸 만들겠다 의 의미다. Test =  [ 1 |  2 |  3  |  4 |  5 ];


배열의 특징

5칸을 가진 배열을 처음부터 끝까지 불러서 사용할 경우 0부터 시작해 4까지 총 5칸의 배열을 불러올수 있다.


--참고--

난수 발생 메서드


public static void main(String ar[]){

 int [] num = new int [10];

 for(int i = 0; i < num.length; i++){

num[i] = i;

System.out.printlin(num[i]);

}

System.out.printlin();

 for(int i = 0; i < 100; i ++){

int n = (int)(Math.random() * 10);

int temp = num[0];

num[0] = num[n];

num[n] = temp;

}

for(int i = 0; i < num.length; i ++){

System.out.println(num[i]);

}

}


다차원 배열


타입[] [] 변수이름  ex_ int [][] Test;

타입 변수이름 [][] ex_ int Test [][];

타입[] 변수이름[] ex+ int[] Test[];



'JavaSE' 카테고리의 다른 글

[정리]객체지향2  (0) 2015.08.18
[정리]객체지향1  (1) 2015.08.17
[정리] 조건문과 반복문  (1) 2015.08.17
[정리] 연산자  (0) 2015.08.13
[정리]변수, 형변환  (0) 2015.08.13
블로그 이미지

알 수 없는 사용자

,

조건문 - IF 문, SWiTCH


 1 .if


  if(조건식){

          //조건식이 TURE의 값을 가질때 수행될 문장을 적어준다.

}


----------------------


  if(조건식){

          //조건식이 TURE의 값을 가질때 수행될 문장을 적어준다.

 }else{

   //조건식이 false일때 수행될 문장을 적어준다.

}


----------------------


  if(조건식1){

          //조건식1이 TURE의 값을 가질때 수행될 문장을 적어준다.

 } else if(조건식2){

          //조건식2이 TURE의 값을 가질때 수행될 문장을 적어준다.

 } else if(조건식3){

          //조건식3이 TURE의 값을 가질때 수행될 문장을 적어준다.

 }else{

   //조건식이 false일때 수행될 문장을 적어준다.

}

----------------------

if(조건식1){

          //조건식1이 TURE의 값을 가질때 수행될 문장을 적어준다.

if(조건식2){

          //조건식1 과 조건식2이 TURE의 값을 가질때 수행될 문장을 적어준다.

 }else{

   //조건식1이 ture이고, 조건식2이 false일때 수행될 문장을 적어준다.

}

 }else{

   //조건식이 false일때 수행될 문장을 적어준다.

}


위의 내용은 if문의 사용방법 이다.


2. switch


switch(조건식) {

case 값1 :

//조건식 의 결과가 값1과 같을 경우 수행될 문장들

break;

case 값2 :

//조건식 의 결과가 값1과 같을 경우 수행될 문장들

break;

case 값3 :

//조건식 의 결과가 값1과 같을 경우 수행될 문장들

break;

}

와 같이 사용한다 . break; 문장이 없을 경우 조건식에 해당되는 값이 있어도 전체 case문을 다 돌기때문에 break; 문을 작성하여. 조건문에 해당되는 값이 있다면 값을 가지고 switch문을 빠져 나와줘야 한다.


반복문 - for, while, do-while


1. for


for(초기화; 조건식; 증감식) {

 //조건식이 ture일 경우 수행될 문장

}


의 형태로 작성가능 하며, 실행 순서는

 초기화 -> 조건식 -> 수행될 문장 -> 증감식 -> 조건식 -> 수행될 문장 -> 증감식 -> 조건식 순이다

초기화는 한번만 진행이 되고, 조건식이 false 일경우 빠져나오게 된다.


for(초기화; 조건식; 증감식){

 //조건식이 true 일 경우 수행될 문장

 for(초기화; 조건식; 증감식){

 // 조건식1이 ture 이면서, 내부 for문 조건식이 ture일 경우 수행될 문장

}

//외곽 for문이 한번 작동할때 내부 for문은 해당 조건식이 맞을떄까지 작동하게 된다

즉 외곽 for문을 통해 1이 출력된후 내부 for문은 1을 가지고 1~해당조건식 까지 작동하게 된다.


2. while


초기화값; 

while(조건식){

 증감식

 //조건식이 ture일 경우 작동될 문장

}

while 문은 for문과 달리 초기화값과 증감식을 조건식에 함께 작성하지 않고 위,아래로 작성해준다.



3. do-while


do{

//조건식이 ture일 경우 작동될 문장

}while(조건식)


do-while문은 최초 한번은 무조건 실행하게 되고, 그후 조건식에 해당될경우 계속 작동하게 된다. 빠져나오기 위해선 break; 문을 함께 작성하여 do-while문을 멈춰주는 방법이 있다.


또한 Countinue문을 사용할 수 있다.

'JavaSE' 카테고리의 다른 글

[정리]객체지향1  (1) 2015.08.17
[정리] 배열  (0) 2015.08.17
[정리] 연산자  (0) 2015.08.13
[정리]변수, 형변환  (0) 2015.08.13
[정리]Java란!? (Static, Heap, Stack포함)  (1) 2015.08.13
블로그 이미지

알 수 없는 사용자

,

[정리] 연산자

JavaSE 2015. 8. 13. 18:34

연산자란!?


 연산자는 프로그래밍의 가장 기본적이며, 중요한 요소!, 계산, 대입, 조건문분석 등과 같은 다양한 종류가 있다.



연산자 종류


 종류

연산방향 

연산자 

우선순위 

 단항 연산자

 <<

++ -- + - ~ ! 

 높음

 산술 연산자

 >>

 * / %

 


 >>

 + -

 

  

 >>

 <<, >>, >>>

 

 비교 연산자

 >>

 < > <= >= Instanceof

 

 

 >>

 == !=

 

 논리 연산자

 >>

 &

 

 

 >>

 ^

 

 

 >>

 |

 

 

 >>

 &&

 

 

 >>

 ||

 

 삼항 연산자

 >>

 ?:

 

 대입 연산자

 <<

 = *= /= %= += <<=

>>= >>>= &= ^= |=

 낮음


표와 같이 연산자가 존재한다

 [표정리]

 1. 산술> 비교 >논리 > 대입 순으로 수행이 된다.

 2. 단항 > 이항> 삼항 연잔사 순으로 우선순위가 높다

 3. 대입, 단항 연산자를 제외한 연산방향이 왼쪽에서 오른쪽이다.


 1-1 단항연산자


 ++ 은 전위형과 후위형으로 나뉘며 계산되어 적용되는 방법이 다르다.

 전위형은 값이 참조 된기 전에 증가, 후위형은 값이 전용 된 후 증가 시킨다.


 ~ 은 비트 전환 연산자 이다.

 ! 은 논리 부정 연산자로  !을 사용하면 true 값이 false로 바뀐다

 ex) boolean Test = false;  -> Test1 = !Test  -> Test1 = true의 값을 가진다.


 1-2 삼항연산자


 (조건식) ? 식1 : 식2

 : 조건식에 해당이 될 경우 식1의 값을 가지게 되고, 해당되지 않을 경우 식2의 값을 가지게 된다.


 1-3 서식 지정 출력


1. %d -> 숫자(정수) 지정 서식

2. %n -> 줄바꿈 서식

3. %s -> 문자열 지정 서식

4. %f -> 숫자(실수) 지정 서식

4-1 : 소수점 지정 출력 방법 :

System.out.printf("%.1f %n", 123.456); 와 같이 출력 시킬 경우 : 123.5 가 출력

System.out.printf("%.10f %n", 123.456); 와 같이 출력 시킬 경우 : 123.4560000000


'JavaSE' 카테고리의 다른 글

[정리] 배열  (0) 2015.08.17
[정리] 조건문과 반복문  (1) 2015.08.17
[정리]변수, 형변환  (0) 2015.08.13
[정리]Java란!? (Static, Heap, Stack포함)  (1) 2015.08.13
날짜 형식 검사하는 방법  (1) 2015.06.21
블로그 이미지

알 수 없는 사용자

,

[정리]변수, 형변환

JavaSE 2015. 8. 13. 18:05

변수란 ?


 : 값을 저장할 수 있는 메모리상의 공간을 의미한다.

 하나의 변수에는 단 하나의 값만을 저장할수 있다. 또한, 값을 여러번 저장하면 마지막에 저장된 값을 가진다.


변수의 선언 방법 ?


 : 자료형 변수명 ;

  -> ex) int a ; , double x ;, String foodTItle;


변수의 규칙!


 1. 대소문자가 구분, 길이제한이 없다


 2. 예약어를 사용해서는 안된다.


 3. 숫자로 시작해서 는 안된다. (숫자를 섞어사용 가능하지만, 첫 글자가 숫자일 경우 불가)


 4. 특수문자는 _  ,  $ 만 사용할 수 있다.



프로그램 코드 작성시 규칙


 1. 클래스 이름의 첫 글자는 항상 대문자로 한다.


 2. 여러 단어로 이루어진 이름은 첫 글자를 대문자로 표기한다.

 

 3. 상수의 이름은 모두 대문자로 한다, 여러 단어로 구성 된 경우 _ 을 이용하여 구분한다.



변수의 타입


 1. 기본형


 2. 참조형


 총 2가지로 구분이 된다.


  1-1 기본형의 종류

 

    1. 논리형 : boolean (1byte)

: 기본값은 false,  사용할수 있는 값은 : ture, false로써, 논리구현에 사용한다.


    2. 문자형 : char (2byte)

: 문자를 저장할 떄는 작은따옴표('')로 문자를 감싼다. 한글자만 저장이 가능,  'Test'와 같으 4단어 모두 저장 이 가능한것이 아니다. 'T'와 같이 한 글자만이 저장이 가능하다.

 또한, 문자열 + 문자열 = 문자열

  다른종류의타입 + 문자열 = 문자열,   문자열 + 다른종류의타입 = 문자열

 -- 참조 --

여러문자를 저장하기 위해선 String을 사용하게 되는데 String을 사용하기 우해선 String 변수명 ; 을 선언 해줘야 한다

ex) String name = "Java"; 와 같이 선언 해줘야 한다 다른 표현으로써는

     = String name = new String("Java");   =   String name = "Ja" + " va"; 와 같이 사용이 가능하다



    3. 정수형 : byte(1byte), short(2byte), int(4byte), long(8byte)

: 기본형 = int

    4. 실수형 : float(4byte), double(8byte)

: 기본형 = double

 실수형 같은 경우 float를 사용할떄 끝자리에 f, F를 붙여, float를 표시해줘야 하며, 표시를 해주지 않을 경우 기본형인 double로 인식하게 된다. double은 끝자리에 d, D 둘중 아무 표현을 사용해 표현가능

 ex) float pi = 3.14 와 같이 표기를 한다면 자료형 불일치로 에러가 발생 하게 된다 . 이것을 맞는 표현으로 수정 한다면 , float pi = 3.14f 로 표현을 해야 한다.

 2-1 참조형의 선언 방법


    : 클래스이름 변수명;

     ->ex) Test foodTitle;

 ** 참조 변수는 null 또는 개체의 주소를 값으로 갖으며 참조변수의 초기화를 해주어야 한다

 방법 : Test foodTitle = null; or Test foodTitle = new Test() ; 와같이 초기화를 해줘야 한다.


형변환


 변수 또는 리터럴 타입을 다른 타입으로 변환 하는 것이다.


방법으론, 명시적형변환 과 암시적 형변환으로 구분이 된다.


특징  :


 1. boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다


 2. 기본형과 참조형은 서로 형변환 할 수 없다


 3. 서로 다른 타입의 변수간의 연산은 형변환을 하는것이 원칙이지만=(명시적형변환), 값의 범위가 작은 타입에서 큰 타입으로 형변환=(암시적형변환)은 생략할수 있다.

암시적 형변환 :


  byte(1byte) -> short, char(2byte) -> int(4byte) -> long(8byte) -> float(4byte) -> double(8byte)


** long 다음 float으로 형변환 되는 이유는 정수 보다는 실수의 크기가 크기 떄문이다.


명시적 형변환 :

 

  명시적 형변환은 큰 자료형에서 작은 자료형으로 변환할 경우 손실이 발생하여도 자료형을 바꾸는 것이다. 방법 으로는 원하는 자료형을 앞에 작성해주므로써, 형변환을 진행 할수 있다.


ex) float f = 10.01

int i = (int)f  와 같이 작성 해준다면 결과 값은 int값 = "10"이 출력이 된다.


--참조--

특수문자 표현 방법 : 리터럴 이용!

tab = \t

backspace  = \b

form Feed = \f

new line = \n

carriage return = \r

\(역슬래쉬) = \\

작은따옴표(') = \'

큰따옴표(") = \"

유니코드 문자 = \u0041




블로그 이미지

알 수 없는 사용자

,

Java!?


C언어와 C++과 달리 인터넷환경에 적합한 언어로써, 객체지향 프로그래밍 언어이다.


C언어는 기계어로 변환해주는 프로그래밍 언어 이며,  C++은 C언어와 달리 객체지향 프로그래밍언어이다.


 --참고--


 C언어와 C++과 JAVA의 차이


C언어 : 인간의 명령어를 컴퓨터가 수용할 수 있도록 기계적 언어로 변환 시켜주는 역할
C++ : 객체지향형 프로그래밍 언어, C언어와 달리 중간에 변수 선언이 가능하다.
JAVA : 인터넷의 분산 환경에서 사용되도록 설계된 프로그래밍 언어이다.


JAVA의 특징!


1. 운영체제가 독립적이다


- JVM (JAVA Virtual Machine)의 약자로써, 각 응용프로램에 가튼 코드를 사용할수 있게 해주는 변환기의 역활이다.

 즉 -> 다양환 환경에서 JAVA를 가동시켜주는 역활을 한다.


2. 객체지향 언어이다

 

 - 객체지향개념의 특징인 '상속', '캡슐화', '추상화', '은닉화' 가 잘 적용된 순수한 객체지향 언어.


** 객체지향이란 ?

 

 ->실제 세계를 모델링 하여 소프트웨어를 개발하는 방법을 의미한다.



Java 컴파일 순서


 코드작성 -> JavaC.exe(컴파일러) -> .class 생성  -> Java.exe(인터프리터) -> 실행

                                                                             ㅣ-> 기계어번역 + 실행


- 보충설명


 : 프로그램의 실행에 필요한 클래스(*.class파일)를 로드 한 후, 클래스 파일을 검사한다. (파일형식), 최종적으로, 지정된 클래스 에서 main메서드를 호출한다.



Java의 메인메서드


 public static void main(String ar[]) {} 는 main메서드의 선언부로써, 모든 클래스가 main메서드를 가지고 있어야 하는것은 아니지만, 하나의 Java어플리케이션에는 Main메서드를 포함한 클래스가 반드시 하나는 있어야 한다.


Static이란!?

 처음 설정된 메모리 공간이 변하지 않음을 의미 한다. 객체를 아무리 많이 생성하여도, 해당 변수는 하나만 존재, 객체와 무관한 키워드
  가장 큰 특징 으론 : 멤버변수의 메모리는 한 번 만들어지므로 전체 객체에 공유할 수 있음.

Heap이란!?

 개체나 배열 new 키워드로 할당된 객체들이 저장된다
  즉! 모든 객체들이 저장되는 곳이다.
 ex) Static Test = new Static -> 이처럼 NEW을 이용한다.


Stack이란!?

메서드가 호출될 때 마다, 스텍프레임 이라 불리는 새로운 데이터 영역이 생성 (영역구분), 스택 프레임이 모여 자바 스택을 생성한다.



--참고--

JDK :  자바 개발 도구

 -> JRE +  개발에 필요한 실행파일(Javac.exe)

JRE : 자바 실행 환경

 -> JVM + 클래스라이브러리(JAVA API)


--기능참고--


 주석을 달기 위해선 // 을 사용 하거나 /**/을 사용한다.

//은 한줄씩 주석으로 처리 해주며, /**/은 여러줄을 주석으로 처리 할 수 있다.

단축키로는 컨트롤 + 쉬프트 + / 을 통해 주석처리 가능하다.



블로그 이미지

알 수 없는 사용자

,