전체 글 썸네일형 리스트형 인터페이스와 추상클래스의 차이점 인터페이스 인터페이스는 추상 클래스보다 추상화 정도가 높으며 추상 클래스와는 다르게 구현부가 있는 일반 메서드, 일반 멤버 변수를 가질 수 없다는 특징이 있습니다. 추상 클래스 class 앞에 'abstract' 키워드를 사용하여 정의하며, 하나 이상의 추상 메서드를 가지는 클래스를 말합니다. 추상 메서드를 선언하여 상속을 통해서 하위 클래스에서 구현하도록 강제하는 클래스입니다. 차이점 추상 클래스는 extends키워드를 사용하며 다중상속이 불가능하지만 인터페이스는 implements키워드를 사용하며 다중상속이 가능하다. 추상클래스는 일반 변수, 생성자, 일반 메서드, 추상 메서드를 모두 가질 수 있는 반면 인터페이스는 상수와 추상 메서드만 가질 수 있고, 생성자와 일반 변수는 가질 수 없습니다. 더보기 list.indexOf() list.indexOf(Object o), list.lastIndexOf(Object o) for(int i=0; i 더보기 Dispatcher Servlet의 동작 원리 Dispatcher Servlet의 동작 원리 Spring MVC 패턴에서 기본적으로 사용하는 Servlet으로, 클라이언트의 요청이 있을 시 가장 앞단에서 요청을 가로채어 요청에 매핑되는 Controller에 작업을 전달하고 비즈니스 로직 처리 후 해당 결과 View를 클라이언트에 전달하는 역할 더보기 Array와 LinkedList 차이,Call By value와 Call By Reference 차이 배열과 링크드 리스트의 차이 배열 데이터 입력이 순차적으로 이루어지며, 물리적 주소 또한 순차적이다. 인덱스가 있어 원하는 데이터에 한 번에 접근 가능하기 때문에 데이터 접근 속도가 매우 빠르다. 데이터 삽입, 삭제에 취약하다.배열 특성상 데이터 삽입, 삭제가 이루어지면 해당 위치의 다음 순서의 데이터의 위치 변경이 이루어지기 때문이다. 배열의 크기가 처음에 결정되어서(unresizable) 변경이 불가능하다. 링크드 리스트 인덱스를 가지고 있는 배열과는 다르게 리스트는 인덱스 대신 현재 위치의 이전 및 다음 위치에 대한 정보가 있다. 데이터 접근 시 연결되어 있는 링크를 따라가야 하기 때문에 배열에 비해 속도가 떨어진다. 데이터 삽입, 삭제는 논리적 주소만 바꿔주면 되기 때문에 용이하다. 언제든지 메모.. 더보기 2차원배열 정렬 및 중복계산제거로 인한 알고리즘 실행시간 줄이기 2차원 배열 정렬 (1) Comparator 클래스 구현 Arrays.sort(scope, new Comparator() { @Override public int compare(int[] o1, int[] o2) { return o1[0]-o2[0]; // 첫번쨰 숫자 기준 오름차순 //return o2[0]-o1[0]; // 첫번째 숫자 기준 내림차순 //return o1[1]-o2[1]; // 두번째 숫자 기준 오름차순 { //return o2[1]-o1[1]; // 두번째 숫자 기준 내림차순 } }); (2) 람다 사용 Arrays.sort(scope,(o1, o2) ->o1[0]-o2[0]); (3) Comparator.comparing() 사용 Arrays.sort(scope, Comparato.. 더보기 String,StringBuillder,StringBuffer String 불변(immutable)하는 특징 할당된 메모리 공간이 변하지 않는다. concat이나 + 연산자를 통해 다른 문자열을 붙일 경우 기존 문자열에 새로운 문자열을 붙이는 것이 아니라 새로운 String 객체를 만든 후 새 String 객체에 연결된 문자열을 저장하고 그 객체를 참조하도록 한다. 짧은 문자열을 더할 경우 문자열 연산이 적고 멀티스레드 환경일 경우 StringBuffer 변함(Mubtable)하는 특징 문자열 연산으로 기존 객체의 공간이 부족하게 되는 경우 버프크기를 늘리며 유연하게 동작한다. 스레드에 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전한지 모를 경우 문자열 연산이 많고 멀티스레드 환경일 경우 StringBuilder 스레드에 안전한지 여부가 .. 더보기 객체지향 객체지향 프로그래밍 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 장점 코드 재사용이 용이하다 유지보수가 쉽다 대형프로젝트에 적합하다 단점 처리속도가 상대적으로 느림 객체가 많으면 용량이 커질 수 있음 설계시 많은 시간과 노력이 필요 클래스:집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것 인스턴스(객체):클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것으로 실제 프로그램에서 사용되는 데이터 추상화:공통의 속성이나 기능을 묶어 이름을 붙이는 것 캡슐화:기능과 특성의 모음을 클래스라는 캡슐에 분류해서 넣는 것 객체가 외부에 노출하지 않아야할 정보 또는 기능을 접근제어자를 통해 적절히 제어권한이 있는 .. 더보기 Spring MVC패턴 SpringMVC패턴 모델(Model) 애플리케이션 데이터만을 포함하고, 데이터를 조작하는 로직을 포함하지 않습니다. 뷰(View) 모델을 사용자에게 표시합니다 컨트롤러(Controller) 뷰에 의해 변경요쳥된 이벤트들을 감지하고, 이러한 이벤트들에 대한 적절한 로직을 실행합니다. 장점 1.여러 개발자가 역할을 나눠서 동시에 개발가능하다. 2.중복코드를 없앨 수 있고, 확장성있고 유연한 코딩이 가능하다. 3.각 컴포넌트별로 나눠져 있어 디버깅과 테스트가 용이 합니다. 단점 1.규모가 커질수록 파일이 많아져 복잡해질 수 있습니다. 2.개발자 수가 적으면 유지보수 시간이 길어질 수 있습니다. 더보기 이전 1 ··· 10 11 12 13 14 15 다음