목록Java (70)
drexqq
Java의 Design Pattern중 하나인 Singleton(싱글톤)에 대해서 알아보자. Singleton을 설명하기 위해서 예제를 하나 보겠다. public class a { public a() { System.out.println("a Instance create"); } } 일단 기본적으로 클래스 a를 생성해주었다. 너무 성의없게 만들었다.. 죄송합니다.. public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { System.out.println("Singleton Instance create"); } public static Singleton getInstance() { ..
Java의 자료구조중 스택(stack)과 큐(Queue)에 대해 알아보자. Stack - FILO (FILO : First In Last Out) Queue - FIFO (FIFO : First In First Out) 위 그림을 보면 이해하기 쉽다. 그림을 쉽게 설명하자면 FILO는 상자에 물건을 차곡차곡 담는다고 생각하면 된다. 상자에 물건을 담게되면 어떻게 되는가 당연히 제일 처음에 넣은 물건은 제일 아래에 있어서 가장 마지막에 꺼낼 수 있다. 이게 FILO다. FIFO는 차곡차곡 물건을 담은 상자에 아래쪽에서 물건을 꺼낸다고 생각하면 된다. 그렇게 되면 제일 처음에 들어간 물건을 가장 먼저 꺼내게 된다. 이게 FIFO라고 생각하면 될 것 같다. Stack의 메서드 메서드 설 명 boolean em..
Java의 HashMap과 TreeMap에 대해서 알아보자. HashMap과 TreeMap은 Map Collection이다. Map Collection은 key와 value를 한 쌍으로 값을 저장한다. public static void main(String[] args) { HashMap a = new HashMap(); a.put("one", 1); a.put("two", 2); a.put("three", 3); a.put("four", 4); System.out.println(a.get("one")); System.out.println(a.get("two")); System.out.println(a.get("three")); iteratorUsingForEach(a); iteratorUsingIter..
Java의 Iterator에 대해서 알아보자. Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어있는 요소를 읽어오는 방법 중 하나이다. 기본적으로 Iterator는 인터페이스이다. 아래 구조를 보자. public interface Iterator { boolean hasNext(); Object next(); void remove(); } boolean hasNext() 메소드는 읽어 올 요소가 남아있는지 확인하는 메서드이다. 있으면 true, 없으면 false를 반환한다. Object next() 메소드는 읽어 올 요소가 남아있는지 확인하는 메서드이다. 있으면 true, 없으면 false를 반환한다. void remove() 메소드는 next()로 읽어 온 요소를 삭제한다. next()를..
Java의 LinkedList에 대해서 알아보자. 전에 포스팅한 게시글에 ArrayList에 대한 글이 있다. 이번에 공부한 LinkedList는 ArrayList와 비슷한 개념이다. ArrayList가 검색과 대입에 효과적이라면 LinkedList는 추가 및 삭제에 효과적이라고 설명할 수 있다. 사용법은 ArrayList와 동일하지만 LinkedList에 추가되어있는 기능이 있다. LinkedList blist = new LinkedList(); if (blist.isEmpty()) {//blist.size() == 0 } // 맨 앞에 element추가 blist.addFirst("doosan"); // 맨 뒤에 element추가 blist.addLast("hanhwa"); 바로 isEmpty, ad..
Java의 Abstract에 대해서 알아보자. Abstract는 추상이라는 뜻이다. Java에서의 abstract는 상속을 강제한다고 생각하면 좋다. abstract클래스 또는 메서드를 사용하기 위해서는 반드시 상속을 강제한다. public abstract class AbstractClass { private int number; public void method() { System.out.println("AbstractClass method()"); } public abstract void abstractMethod(); } 위 코드를 보면 class앞에 abstract가 붙어 있는 것을 볼 수 있다. 클래스 안에 하나 이상의 메서드가 추상 메서드라면 그 메서드를 포함한 클래스는 자연스레 추상 클래스가..
Java의 ArrayList에 대해서 알아보자. ArrayList는 배열을 선언하는 것처럼 List의 Size를 초기화해줄 필요가 없다 배열처럼 고정된 크기를 가지는 것이 아니라 메모리가 허용하는 한 자동으로 ArrayList 크기는 동적으로 변경된다. 그럼 ArrayList를 관리하는 방법을 보자 1. 추가 ArrayList arrList = new ArrayList(); //제일 뒤에 추가 .add(value); arrList.add(111); Integer in = new Integer(222); arrList.add(in); arrList.add(new Integer(333)); Integer inum = new Integer(200); arrList.add(1, inum); ArrayList에 ..
Java의 Generic(제네릭)에 대해서 알아보자. Generic == template 자료형의 변수라고 생각할 수 있다. Generic은 간단하게 '같은 클래스'에서 '여러 가지 자료형'을 사용할 경우에 사용된다 package main; public class mainClass { public static void main(String[] args) { Box box = new Box(123); System.out.println(box.getTemp()+1); Box sBox = new Box("my world"); System.out.println(sBox.getTemp()); BoxMap bMap = new BoxMap(1001, "hello"); System.out.println(bMap.get..
Java의 static에 대해서 알아보자. static은 정적이라고 생각할 수 있다. static 또한 변수, 클래스, 메서드에서 사용할 수 있는 점이 final과 비슷하다. 사용처를 알아보자. package main; public class MyClass { private int memNum = 0;//member variable - 객체가 달라지면 초기화 static int staticVar;//static variable - 객체가 달라져도 계속해서 값유지 //메모리영역이 무조건 하나다 public int getMemNum() { return memNum; } public void setMemNum(int memNum) { this.memNum = memNum; } public void method..
Java의 final에 대해서 알아보자 final은 제약을 걸어준다고 생각하면 쉽다. 변수, 메서드, 클래스에 final을 사용할 수 있다. final int number = 10;// 변수 -> 상수(대입용) final int MEMBER_NUMBER = 100; int num; final class superClass {//상속금지 int number; public superClass() { } public final void method() {//override 금지 } } 변수에서 사용하는 법은 final int number와 final int MEMBER_NUMBER는 값이 변할 수 없는 상수로 취급되어서 값을 다른 곳에 대입을 할 순 있지만 값 자체를 바꾸는 건 불가능하다. 클래스에서 사용하는..