추상클래스 vs 인터페이스, 언제 어떤 것을 사용할까?
·
프로그래밍 언어/Java
추상 클래스`class` 앞 `abstract` 키워드 사용추상 메서드를 포함한 클래스그러나 추상 메서드를 포함하지 않더라도 abstract 키워드를 통해 추상 클래스 처리가 가능하다. ( -> 인스턴스 생성 불가하도록 만들 수 있음)기존 클래스처럼 멤버변수와 메서드, 생성자를 가질 수 있음인스턴스를 생성할 수 없음추상 클래스를 상속받는 클래스는모든 추상 메서드를 구현하여 인스턴스 생성이 가능한 `클래스`가 되거나,모든 추상 메서드를 구현하지 않은 경우 `추상 클래스`가 된다.인터페이스오직 `추상 메서드`와 `상수`만을 멤버로 가진다 ( *default/static 메서드 예외 )모든 메서드는 `public abstract`모든 멤버 변수는 `public static final`인스턴스를 생성할 수 없음..
Java Enum 이놈아
·
프로그래밍 언어/Java
오늘은 Java Enum에 대해서 복습해보았다.되게 신기한게 책에 밑줄이 좍좍 그어져 있는데 마치 새로 알게 된 정보처럼 느껴진다는 것이었다.  ㅠㅠ 떵뇌 인간 그렇지만 이번엔 완벽하게 기억할 것만 같은 느낌인데책에 기억에 없는 밑줄을 그었던 순간에도 이렇게 느꼈을지도 ...그럴지도 ...Enum열거형열거형 데이터란, 서로 관련된 상수들을 묶어서 관리하는 틀 역할을 제공하는 것이다.예를 들어서 월 화 수 목 금 토 일의 내용을 상수로 관리하고 싶다면 다음과 같이 정의한다.// enum 열거형이름 { 상수명1, 상수명2, 상수명3, ... }enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDA..
Java의 예외처리 (함수 너 회피형이야?)
·
프로그래밍 언어/Java
오늘은 Java의 예외 처리에 대해 복습을 해 보았다. 예외를 처리하는 방법Java에서 예외를 처리하는 방법은, try-catch문을 사용하는 것이다.예외가 발생할 수 있는 코드, 즉 예외가 발생한다면 처리를 해주고 싶은 부분을 try 블럭으로 감싸준다.그리고 catch 블럭을 이용하여 각 Exception이 발생할 경우를 처리해준다.만일 예외 발생 여부에 상관없이 공통적으로 수행하고 싶은 작업이 있다면, finally 블럭을 추가하여 적어준다.try { // 여기에 쓰인 코드들에서 예외가 발생한다면 // 해당하는 catch문 블럭이 실행된다.} catch (ArithmeticException e) { // ArithmeticException이 발생한 경우} catch (IllegalArgumen..
잠깐 ! JVM 정리하고 갑시다
·
프로그래밍 언어/Java
오늘부터 Java 강의를 듣고 과제를 수행한다.1~3주차 강의의 내용은 아주 기본적인 내용들이었다.몇몇은 건너뛰기도 하고, 1.5배속으로 훑으면서 가물가물한 부분들은 따로 공부를 진행하려고 메모를 해두었다.그리하여 이제 메모한 내용들을 공부할 시간 ... 먼저 JVM에 대해 정리하고 넘어가자   JVM이란?JVM은 Java Virtual Machine의 줄임말로, Java로 짜여진 코드들을 운영체제에서 실행할 수 있도록 만들어주는 가상의 기기(소프트웨어)이다.자바로 작성된 어플리케이션이 컴퓨터에서 동작하기 위해서는 반드시 JVM이 필요하다.일반적인 다른 어플리케이션이 바로 OS와 상호작용하는 것과 달리 자바 어플리케이션은 JVM과 상호작용하며, JVM이 OS와 상호작용하는 역할을 한다.이 때문에 어플리케..
[Java] 문자열(String) 내장 함수 정리
·
프로그래밍 언어/Java
length()문자열의 길이를 반환한다.compareTo()int compareTo(String str)str과 현재 인스턴스의 문자열의 내용을 사전순으로 비교한다.현재 인스턴스가 사전순으로 더 이전이면 음수를, 이후면 양수를, 두 문자열의 내용이 같다면 0을 반환한다. String str1 = "apple"; String str2 = "banana"; System.out.println(str1.compareTo(str2)); // -1 출력chatAt()char chatAt(int index)인스턴스 변수로 가진 char[] value에서 해당 index의 문자를 반환한다.concat()String concat(String str)(..
[Java] CharSequence란?
·
프로그래밍 언어/Java
String 내장 함수를 정리하다 CharSequence를 발견했다. 생성시 ""를 사용하는 것은 String과 같은데, CharSequence란 무엇이며 String과 어떻게 다른지 알아봤다. Interface CharSequence는 클래스가 아니라 인터페이스이다. 그리고, 이 인터페이스를 구현한 클래스로는 바로 String, StringBuffer, StringBuilder 등이 있다. 즉 문자열로 사용하는 클래스의 구현 토대인 것이다. 따라서 CharSequence는 아래의 모든 방법으로 생성 가능하며, 위의 모든 클래스를 담을 수 있다. CharSequence charSequence = "hello"; CharSequence charSequence = new StringBuffer("hello"..
[Java] 문자열(String) 클래스 정리
·
프로그래밍 언어/Java
문자열(String)1. 변경 불가능한 클래스String 클래스는 문자열을 저장하기위해 char[] value를 인스턴스 변수로 정의하고 있다.인스턴스 생성시 입력받는 문자열이 value에 저장되는데, value에 한 번 저장된 배열은 읽기만 가능하며 변경할 수 없다.2. 문자열 비교String 클래스 생성자를 이용하여 문자열을 만든 경우, new 연산자에 의해 메모리 할당이 이루어진다.따라서 항상 새로운 String인스턴스가 생성되어 서로 다른 메모리값을 가진다. 하지만, 문자열 리터럴의 경우 같은 내용의 문자열 리터럴을 재사용한다.아래 예시를 보자.String str1 = new String("apple");String str2 = new String("apple");Strin..
[Java] 스트림(Stream)
·
프로그래밍 언어/Java
Java에서의 입출력사용자가 키보드로 입력한 문자를 받아와 모니터에 보여주려면 어떻게 해야할까?만약 사용자가 특정 문서를 인쇄하기 위해 인쇄 버튼을 누른다면 이를 프린터를 어떻게 인쇄할까? 이처럼 프로그램에서 데이터를 받아오거나 데이터를 특정 장치에 보내줘야 할 때, 바로 스트림을 이용한다. 위의 경우에서는 키보드로 입력한 문자를 받아올 때 입력 스트림을, 해당 문자를 화면에 나타낼 때 출력 스트림을 이용한다.또 사용자가 인쇄를 요청한 경우에는 인쇄를 담당하는 프로그램이 해당 문서의 내용을 입력 스트림을 통해 받아오며, 출력 스트림을 통해 프린터기로 데이터를 전송한다. 스트림이란 데이터를 교환하려는 두 대상을 연결하고, 데이터를 전송할 수 있는 통로 역할을 한다.Stream의 특징..