본문 바로가기

java8

[Java] 컬렉션 프레임 워크 (List 인터페이스, Stack, Queue) 컬렉션 프레임 워크란? 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리이다. java.util 패키지에 구현되어 있다. 개발에 소요된느 시간을 절약하고 최적화된 라이브러리를 사용할 수 있다. Collection 인터페이스와 Map 인터페이스로 구성됨. Collection 인터페이스 하나의 객체 관리를 위해 선언된 인터페이스로 필요한 기본 메서드가 선언되어 있다. 하위에 List, Set 인터페이스가 있다. Map 인터페이스 쌍으로 이루어진 객체를 관리하는데 필요한 여러 메서드가 선언되어 있다. Map을 사용하는 객체는 Key-Value 쌍으로 되어 있고, Key는 중복될 수없다. List 인터페이스 Collection 하위 인터페이스이다. 객체를 순서에 따라 저장하고 관리하는데 필요한.. 2022. 1. 6.
[Java] String 클래스, StringBuilder와 StringBuffer, Wrapper 클래스 String 클래스 선언하기 String str1 = new String("abc");//인스턴스로 생성된다. String str2 = "abc";//상수풀에 있는 문자열을 가리킴 public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1 == str2); //결과는 힙메모리에 할당되어 메모리 위치가 다르기 때문에 false String str3 = "abc"; String str4 = "abc"; System.out.println(str3 == str4); //결과는 상수풀에 같은 값.. 2022. 1. 5.
[Java] Object 클래스 & Class 클래스 - toString(), equals(), hashCode(), clone(), forName() 모든 클래스의 최상위 클래스이다. java.lang.Object 클래스 (따로 import하지 않아도 된다.) 모든 클래스는 Object클래스에서 상속 받는다. 모든 클래스는 Object클래스의 메소드를 사용할 수 있다. 모든 클래스는 Object클래스의 일부 메서드를 재정의 하여 사용할 수 있다. (final로 정의된 메서드가 있기 때문) Object클래스의 toString메서드 toString()메서드의 원형: getClass().getName() + '@' + Integer.toHexString(hashCode()) 객체의 정보를 String으로 바꾸어 사용할 때 유용하다. package Object; class Book{ String title; String author; public Book(S.. 2021. 12. 29.
[Java] 추상 클래스, 템플릿 메서드 패턴 -final 예약어 추상 클래스는 추상 메서드를 포함한 클래스이다. 추상메서드란? 구현 코드가 없이 선언부만 있는 메서드 abstract 예약어를 사용한다. 추상클래스는 new(인스턴스화)할 수 없다. public class Computer { public void display(){}//추상메서드가 아님 public void typing();//추상메서드임 하지만 이대로는 에러가 발생. } 사용 방법 public abstract class Computer { public abstract void display(); public abstract void typing(); } 추상클래스는 주로 상속의 상위클래스를 위해 사용된다. 하위클래스에서 반드시 구현해야하는 메서드이지만 상위클래스는 그 선언이 모호할때 사용. 하나의 추상.. 2021. 12. 21.
[Java] 상속(Inheritance), 메서드 오버라이딩, 다형성, 다운캐스팅, 업캐스팅 상속이란? 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속 받아서 속성이나 기능이 확장되는 클래스를 구현하는 것. 상위클래스는 하위클래스보다 일반적인 개념과 기능을 가진다. 하위클래스는 상위클래스보다 구체적인 개념과 기능을 가진다. 자바는 Single Inheritance만 지원하기 때문에 extends 뒤에는 단 하나의 class 만 사용할 수 있다. class B extends A{ } public class Customer { protected int customerID; protected String customerName; protected String customerGrade; int bonusPoint; double bonusRatio; } public class VIPCustomer .. 2021. 12. 21.
[Java] 싱글톤 패턴 (Singleton Pattern) -static 싱글톤 패턴이란?? 프로젝트안에서 객체를 참조할 수 있는 인스턴스가 오직 1개만 존재해야 하는 경우에 사용되는 패턴입니다. 구현해 보기 company객체는 private인 생성자가 있다. 이 경우 외부에서 생성자를 만들 때 Company cp_instance = new Company(); 호출이 불가능하다. (외부에서 인스턴스 생성이 불가능) 싱글톤 패턴은 인스턴스를 하나만 가지고 있는 디자인 패턴이기 때문에 Company객체 내부에서 instance를 하나 생성하고, 외부에서 호출했을 때 인스턴스를 내보내주는 함수를 갖는다. 이렇게 함수를 사용해서 인스턴스를 가져올 수 있다. 이름이 다른 company1과 company2를 생성한것 같지만, 출력된 결과는 같은 주소값을 갖는다. (같은 인스턴스이다.) .. 2021. 12. 8.
IntelliJ 단축키 익히기 (for mac) 프로젝트 창 포커스: command + 1 포커스 해제: esc 파일 미리보기: space 새파일 생성: 커서 이동 주석처리 자동 들여쓰기(자동 인덴트) 코드 사용처 찾기 최근 파일 열기: command + e Live Template: command + j (자동 완성 기능) psvm sout 퀵픽스: option + enter. (빠른 수정) 이슈별로 이동: F2, shift + F2 import 최적화: ctrl + option + o 터미널창: option + F12 구문 완성: shift + command + enter 파일 내에서 단어 대체하기: command + R 실행: ctrl + r 종료: command + F2 라인 복사 바로 붙여넣기: command + d 게터 세터 자동 완성: 에.. 2021. 12. 2.
Java HashSet Set은 List와 다르게 순서가 보장되지 않는 자료구조입니다. 1) HashSet은 다음과 같은 특징이 있습니다. 중복된 값을 허용하지 않습니다. 순서를 보장하지 않습니다. null 값을 저장할 수 있습니다. 내부적으로 HashMap을 사용하여 데이터를 저장합니다. Hashset은 중복된 값을 허용하지 않기 때문에 public int solution(int[] nums){ HashSet set = new HashSet(); int length = nums.length; int pk = length/2; for (int i=0; i 2020. 9. 20.