Notice»

Recent Post»

Recent Comment»

Recent Trackback»

Archive»

« 2025/9 »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

 

'Java -/Java'에 해당되는 글 7

  1. 2009.08.16 자료구조
  2. 2009.08.05 단일 차원 배열
  3. 2009.07.28 메서드
  4. 2009.07.21 연산자.
  5. 2009.07.21 자바의 기본 입력.
  6. 2009.07.18 기본용어.
  7. 2009.07.18 Start-!
 

자료구조

Java -/Java | 2009. 8. 16. 23:06 | Posted by 신b


자료구조 : 데이터를 효율적으로 사용할 수 있도록 구조를 만들어서 저장해 둔 것
자료구조의 종류
1. 리스트: 데이터를 1차원으로 늘어놓은 형태의 자료구조 (배열리스트, 연결리스트)
2. 스택: 배낭에 물건을 넣을 때처럼 제일 마지막에 넣은 데이터부터 순서대로 꺼낼수 있는 자료구조
3. 큐: 매표소에 줄을 서서 기다리는 사람들처럼 들어온 순서대로 데이터를 꺼낼 수 있는 자료구조
3. 해쉬테이블: 데이터를 키로 검색하는것
4. 집합: 똑같은 데이터가 중복 저장되지 않게 만드는 경우

1. 리스트로 사용할수 있는 클래스
 1). ArrayList
 - ArrayList 클래스를 포함한 모든 자료구조 클래스에는 레퍼런스 타입의 데이터만 저장 가능.
 - ArrayList<String>list = new ArrayList<String>();
              타입파라미터
 - list.add("포도"); 의 형태로 데이터를 추가!
 - String str = list.get(2); 인덱서 2위치에 있는것을 리턴!!
 - int num = list.size(); 리스트에 있는 데이터의 수를 호출!
 - list.set(0,"오렌지"); 인덱스 0위치의 데이터를 "오렌지"로 변경!
 - list.remove(1); 인뎃스 1위치의 데이터 삭제
 - list index = list.indexOf("사과); 데이터 검색에 사용되는 메소드! 사과의 위치가 있는 인덱스 리턴!
                                               데이터가 없을경우 -1을 리턴
 - list.index = list.lastIndexOf("사과"); 리스트의 마지막부터 데이터를 찾음. 마지막 사과의 위치를 리턴.

 2). LinkedList
 - LinkedList 는 ArrayList와는 달리 객체를 생성한다고 해서 데이터 저장 영역이 생기지 않음.
   첫번째 데이터와 마지막 데이터의 위치만 보관하고 있으면 나머지 데이터는 링크를 따라가면서 찾을수 있음.
 - 데이터의 추가와 삭제가 빈번한 경우는 LinkedList, 인덱스로 데이터 항목을 찾을일이 많은경우 ArrayList.

 - Iterator (순차접근) 사용법!
 - Iterator<String> iterator = list.iterator(); 객체생성!
 - String str = iterator.next(); next메소드를 통해 데이터 읽어옴
 - while (iterator.hasNext()){ String str = iterator.next(); } 반복문을 통해 출력!

2. 스택으로 사용할 수 있는 클래스
 - 나중에 넣었던 데이터를 가장 먼저 꺼내는 입출력 방식으로 LIFO(last-in frist-out) 방식이라고 함.
* LinkedList 를 스택으로 사용하는 방법
 - LinkedList<Integer>stack = new LinkedList<Integer>();
 - list.addLast(new Integer(12); addLast 메소드는 데이터를 스택의 아래쪽부터 순서대로 저장함.
 - Integer obj = removeLast();  제일 위에 있는 숫자가 지워짐.

3. 큐로 사용할 수 있는 클래스
 -  LinkedList<String> queue = new LinkedList<String>();
 -  queue.offer("토끼"); 데이터추가
 - str = queue.poll(); 큐에 이썬 데이터를 제거하면서 가져오는 메소드.(remove와 쓰임새 비슷)
 - str = queue.peek(); 제거하지 않고 그대로 둔 상태에서 가져옴(get과 비슷)

4. 해쉬테이블로 사용할 수 있는 클래스
 - 전화번호부의 ㄱㄴㄷㄹ의 분류와 같은 방법
 1). HashMap
 - HashMap<String, Integer> hashtable = new HashMap<String, Integer>();
             <키의타입, 데이터의타입>
 - hashtable.put("해리", new Integer(95)); 키값에 "해리" 과 integer 타입 95를 통에다가 넣음.(데이터 넣음)
 - Integer num = hashtable.get("해리"); 해리와 일치하는 데이터를 찾아서 리턴
 - hashtable.remove("해리"); 해리와 일치하는 데이터 삭제
 - hashCode : Object클래스에 있는 메소드로써 객체가 가지는 유일한 값. 

 class Name{
   String firstName;
   String lastName;
   Name(String firstName, String lastName){
      this.firstName = firstName;
      this.lastName = lastName;
   }
   public boolean equals(Object obj){
      if(!(obj instanceof Name))
         return false;
      Name name = (Name)obj;
      if(fistName.equals(name.firstName) && lstName.equals(name.lastName))
         return true;
      else
         return false;
   }
   public int hashCode(){
      return firstName.hashCode() + lastName.hashCode();
   }
}
import jaca,util.*;
class HashMapExam{
   public static void main(String args[]){
      HashMap<name, Integer> hashtable = new HashMap<Name, Interger>();
      hashtable.put(new Name("해리,"포터"),new Integer(95));
      hashtable.put(new Name("헤르미온느","그레인져"), new Integer(100));
      hashtable.put(new Name("론","위즐리"), new Integer(85));
      hashtable.put(new Name("드레이코","말포이"), new Integer(93));
      hashtable.put(new Name("네빌","롱버텀"), new Integer(70));
      Integer num = hashtable.get(new Name("헤르미온느","그레인져"));
      System.out.println("헤르미온느 그레인져의 성적은?" + num);
   }
}

5. 집합으로 사용할 수 있는 클래스
* HashSet
- HashSet<String>set = new HashSet<String>(); 객체생성!
- set.add("자바");  집합에 데이터를 저장.
- 집합에 있는 데이터에는 순서가 없음. Iterator를 이용해 집합에 있는 모든 데이터를 읽어올 수 있음.

'Java - > Java' 카테고리의 다른 글

단일 차원 배열  (0) 2009.08.05
메서드  (0) 2009.07.28
연산자.  (0) 2009.07.21
자바의 기본 입력.  (0) 2009.07.21
기본용어.  (0) 2009.07.18
:

단일 차원 배열

Java -/Java | 2009. 8. 5. 18:58 | Posted by 신b
배열 : 동일한 자료형으로 선언 된 데이터 공간을 메로리 상에 연속적으로 나열하여 데이터 관리의 효율성을 높인것.


기존자료 처리와 배열의 비교
- 동일 자료형과의 관리
- 유사 문구의 관리

단일 차원 배열의 선언
- 자료형[] 배열명;
- 자료형 배열명[];

단일 차원 배열의 초기화
- 배열명 = new 자료형[개수];
- 배열명 - new 자료형[]{초기값, 초기값,,,};

선언과 초기화
- 자료형[]배열명 = {초기값, 초기값,,,};

'Java - > Java' 카테고리의 다른 글

자료구조  (0) 2009.08.16
메서드  (0) 2009.07.28
연산자.  (0) 2009.07.21
자바의 기본 입력.  (0) 2009.07.21
기본용어.  (0) 2009.07.18
:

메서드

Java -/Java | 2009. 7. 28. 17:59 | Posted by 신b
메서드의 정의
-자주 반복하여 사용하는 내용에 대해 특정 이름으로 정의한 묶음.
형식
-접근_제한자 지정_예약어 결과형_리턴값
    메서드명(매개변수들)throws 예외_클래스들{
        내용정의부;
    }
메서드의 종류
-call by name: 메서드의 이름에 의해 호출되는 메서드로 특정 매개변수 없이 실행
-call by value: 메서드를 이름으로 호출할 때 특정 매개변수를 전달하여 그 값을 기초로 실행하는 메소드
                      (원본데이터가 변하지 않음.)
-call by reference: 메서드 호출 시 매개변수로 사용되는 값이 특정 위치를 참조하는 reference변수
                           (원본데이터가 변함.)

결과형 리턴값
-메서드를 실행 한 후 결과로 되돌려 주는 값.
- return 예약어 이용
-종류: void( 돌려줄 결과가 없을때), 원시 타입 자료형, 클래스형 ( 모든 클래스나 인터페이스형)


'Java - > Java' 카테고리의 다른 글

자료구조  (0) 2009.08.16
단일 차원 배열  (0) 2009.08.05
연산자.  (0) 2009.07.21
자바의 기본 입력.  (0) 2009.07.21
기본용어.  (0) 2009.07.18
:

연산자.

Java -/Java | 2009. 7. 21. 18:57 | Posted by 신b
연산자 우선순위
최우선 연산자 - 단항 연산자 - 산술 연산자 - 쉬프트 연산자 - 관계 연산자 - 비트 연산자 - 논리 연산자 - 삼항 연산자 - 배정 대입 연산자 - 증감 후위 연산자 - 순차 연산자.

최우선 연산자 (".", "[]","()")
단항 연산자 (논리부정과 비트부정("!","~"), 부호연산("+/-"), 증감전위연산("++/--"),
  형변환연산"(cast자료형)",Type비교("instanceof"))
산술 연산자 (-"*","/","%","+","-")
시프트 연산자 ("<<".">>",">>>")
관계 연산자 ("<","<=",">",">=","==","!=")
비트 연산자 ("&","|","^") and 양쪽 모두가 참이어야 참, or 양쪽 모두가 거짓이어야지만 거짓 ,
                   ^ 양쪽 모두가 틀려야 참..
논리 연산자 ("&&","||")
삼항 연산자 ("조건항? 항1: 항2:")
배정 대입 연산자 ("=","*=","/="."%=","+=","-=","<<=",">>=",">>>=")
순차 연산자 (",")

'Java - > Java' 카테고리의 다른 글

단일 차원 배열  (0) 2009.08.05
메서드  (0) 2009.07.28
자바의 기본 입력.  (0) 2009.07.21
기본용어.  (0) 2009.07.18
Start-!  (0) 2009.07.18
:

자바의 기본 입력.

Java -/Java | 2009. 7. 21. 16:35 | Posted by 신b

int a = system.in.read();
아스키 코드 값 1개 입력받기.
char b = (char)System.in.read();
아스키코드 값으로 입력받은 데이터를 char형으로 변환해서 문자로 만들기
int c = System.in.read()-48; 
(아스키코드 48은 숫자 0)
int d = System.in.read() - '0'; 
아스키코드 값으로 입력받은 0~9의 숫자를 int형 수로 변환하기
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
문자열 입력받기위한 포멧
String str = in.readLine();
문자열 입력받기
boolean bool = Boolean.valueOf(str).booleanValue();
int e = Integer.parseInt(str);
문자열을 원하는 자료형으로 파싱하기

import java.io.*;
public class Ex_01 {
    public static void main(String []ar)throws IOException{
       System.out.print("입력= ");
       int aa = System.in.read();
       System.out.println("입력된 아스키 값은  "+aa+"입니다." );
   }
}

import java.io.*;
public class Ex_02 {
     public static void main(String []ar)throws IOException{
       System.out.print("입력1= ");
       char aa = (char)System.in.read();
       System.in.read();
       System.in.read();
       System.out.print("입력2= ");  
       int bb = System.in.read();  
       System.out.println("입력된 문자는 "+aa+"입니다." );
       System.out.println("입력된 숫자는 "+bb+" 입니다.");
     }
}

import java.io.*;
public class Ex_03 {
     public static void main(String []ar)throws IOException{
        System.out.print("입력: ");
        int aa = System.in.read();
        int bb = System.in.read();
        int cc = System.in.read();
        int dd = System.in.read();
        int ee = System.in.read();
        System.out.println("aa= "+aa);
        System.out.println("bb= "+bb);
        System.out.println("cc= "+cc);
        System.out.println("dd= "+dd);
        System.out.println("ee= "+ee);
     }
}

import java.io.*;
public class Ex_04 {
     public static void main(String []ar)throws IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  
        String name="";
        System.out.print("이름을 입력하세요: ");
        name = in.readLine();
        System.out.println("당신이 입력하신 이름은 "+name+"입니다.");
     }
}

import java.io.*;
public class Ex_05 {
     public static void main(String []ar)throws IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  
        System.out.print("boolean 자료를 입력 하세요: ");
        String imsi = in.readLine();
        boolean bool = Boolean.valueOf(imsi).booleanValue();
        System.out.println("입력된 boolean형 자료의 값은 "+bool+"입니다.");
     }
}

import java.io.*;
public class Ex_06 {
     public static void main(String []ar)throws IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    
        System.out.print("나이를 입력 하세요: ");
        String imsi = in.readLine();
        int aa = Integer.parseInt(imsi);
        int age = aa-1;
        System.out.println("당신은 만 "+age+"입니다.");
     }
}


'Java - > Java' 카테고리의 다른 글

단일 차원 배열  (0) 2009.08.05
메서드  (0) 2009.07.28
연산자.  (0) 2009.07.21
기본용어.  (0) 2009.07.18
Start-!  (0) 2009.07.18
:

기본용어.

Java -/Java | 2009. 7. 18. 13:33 | Posted by 신b

간단하게 살펴보는 자바의 특징

간단하고 친숙

객체지향언어(Object-Oriented)

플랫폼에 독립적(Platform Independent, Architecture-natural)

강하고 보안성(Robust secure)

멀티스레드를 제공(Multi-threaded)

Bad Smells in code

이해하기 어렵다. 수정하기 어렵다, 확장이 어렵다.

악취가 나지 않게 코드를 계획해서 작성하고, 혹 악취를 느끼게 되면 수정해 나가야함.

JVM (Java Virual Machine)

Java 인터프리터.

JVM은 Java의 중간 형태 언어(바이트코드)를 시스템 언어로 변환하여 실행하는 소프트웨어다.

instance (인스턴스)

해당클래스의 변수를 저장할수 있도록 미리 얻어놓는 번지수.

클래스 모양 그대로 실제 쓸수있도록 얻어놓는곳( 공간이 할당된곳).

클래스는 설계도정도이며 new를 선언하면 얻어지는것.

클래스 밑에는 인스턴스변수이고 메소드 안에 있는 것들은 로컬변수.

stack (스택) - 로컬변수가 저장되는곳

하드웨어 레지스터 집합 또는 산술계산에 사용되거나 내부 작업을 추적하는데 사용되는 예약된 메모리 양.

스택은 프로그램에서 호출된 루틴의 순서를 추적한다. 예를 들면, 한 루틴은 다른 루틴을 호출하고 다른 루틴은 또 다른 루틴을 호출한다. 각 루틴이 완료되면 컴퓨터는 호출 루틴에 대한 컨트롤을 시퀀스를 시작한 첫 번째 루틴으로 다시 반환한다. 이런 방식으로 사용된 스택은 LIFO를 기반으로 한다.

Heap (힙) - 실제로 쓸수있는객체가 저장되는곳 (인스턴스)

이것은 프로그래밍에서 프로그램이 사용 가능한 공통 메모리 풀을 가리킨다. 힙의 관리는 응용 프로그램 자체에서 필요한 만큼 메모리를 할당 및 취소하여 수행되거나, 운영 체제나 기타 시스템 프로그램에서 수행된다.


public static void main(String [] args){

(접근제한이 없고 리턴값도 없는 메인은 스트링 타입의 인자를 받습니다.)

- public 은 누구나 사용할수 있다는 뜻.

- 결과의 계산문을 돌려주는걸 return 이라고함.

- void의 경우는 리턴값이 없다는걸 뜻함.

- () 안에 들어가는것을 인자(인수)라고 함.

- String 타입으로 들어오는것을  args 라는 임시변수를 사용하겠다는 뜻.

 


'Java - > Java' 카테고리의 다른 글

단일 차원 배열  (0) 2009.08.05
메서드  (0) 2009.07.28
연산자.  (0) 2009.07.21
자바의 기본 입력.  (0) 2009.07.21
Start-!  (0) 2009.07.18
:

Start-!

Java -/Java | 2009. 7. 18. 13:26 | Posted by 신b

JDK 설치

Http://java.sun.com/javase/downloads/5/jdk

 

환경변수 설정 + 확인 !!

 

 

'Java - > Java' 카테고리의 다른 글

단일 차원 배열  (0) 2009.08.05
메서드  (0) 2009.07.28
연산자.  (0) 2009.07.21
자바의 기본 입력.  (0) 2009.07.21
기본용어.  (0) 2009.07.18
: