| Templates 만들기 Web Project를 진행하면서 Logger를 자주 사용하게 되는데,매번 타이핑해주기 번거로워서 Templates에 등록해보려고 합니다! PS 할 때,BufferedReader, Stringtokenizer 같은 코드들도미리 Templates에 등록해 놓으면 아주 좋겠군! 먼저 logger 사용에 필요한 코드는import로 아래 코드가 필요하고12import org.slf4j.Logger;import org.slf4j.LoggerFactory;cs Logger 등록을 위해 아래 코드가 필요하다.1private static final Logger logger = LoggerFactory.getLogger(HomeController.class);cs 이 코드를 Templates..
#. JAVA ㅇ 절차지향 (POP) - 실행되는 순서가 위에서부터 아래로 순차적으로 진행되는 형태를 가진 언어 - 프로그램 재사용 시 기존에 만들어진 코드를 복사하여 붙여넣기 하는 방법 사용 => 함수의 등장. ㄴ자주 사용되는 특정한 코드를 하나의 모듈(묶음)로 묶어 놓은 것 ㄴ프로그래머가 사용하고 싶을 때마다 호출하여 코드가 실행되도록 함 ㄴ데이터와 함수 간에 유기적인 관계성을 갖지 못함 ㅇ 객체지향 (OOP : Object-Oriented Programming) - 데이터를 객체로 취급하여 프로그램에 반영, 객체와 객체의 상호작용을 통해 프로그램이 동작 - 코드의 재사용성이 높음, 코드 관리가 용이, 코드의 중복을 제거 - 각각의 객체는 메시지를 주고받고, 데이터를 처리 -> 유지보수성 Good -..
#. HashSet - Hash Table에 의한 동작 - 집단을 반복(iterator)하려면 HashSet 인스턴스의 크기(원소의 수)와 백업 HashMap 인스턴스의 용량(버킷 수)의 합계에 비례하는 시간이 필요. 따라서, 반복 성능이 중요한 경우 초기 용량을 너무 높게 설정하지 않는 것이 매우 중요 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import java.util.*; // HashSet을 사용하기 위해 import public class test { public static void main(String[] args) { HashSet hs = new HashSet(); // HashS..
#. 객체의 형변환 > 형변환(Casting) ㄴ 묵시적 형변환(Promotion) - 형변환 연산자를 사용하지 않아도 자동으로 이루어지는 경우 = 자동 형변환 - ex) 4btye의 int형 데이터를 8byte double 형으로 변환12int age = 25;double avgAge = age; // 25.0, (double)cs ㄴ 명시적 형변환(Demotion) - 더 작은 범위를 나타내는 데이터 타입으로 변환되는 경우 = 축소 형변환 - ex) 8byte의 double형 데이터를 4byte int 형으로 변환 12double avgAge = 23.86;int age = (int)avgAge; // 24, 문장에서 명시적 형변환cs > 객체 형변환 - 객체 참조변수의 경우에도 형변환이 이루어짐 -..
[ 요약 ] - 내부 클래스는 정의되는 위치에 따라 멤버 클래스와 지역 클래스로 나뉜다. - 멤버 클래스는 멤버 변수와 동일한 위치에 선언된 내부 클래스를 의미한다. - 멤버 클래스는 static 예약어가 붙은 static 멤버와 instance 멤버로 나뉜다. - 지역 클래스는 메서드 내에 클래스가 정의되어 있는 경우를 말하며, 이름이 있는 지역 클래스와 이름을 갖지 않는 무명 클래스로 다시 나뉜다. #. 내부 클래스 > 내부 클래스 - 클래스가 다른 클래스를 포함하는 경우, 내부에 포함된 클래스의 명칭 - 파일 크기의 최소화, 보안, 성능 향상, 이벤트 처리 등을 쉽게 하기 위해 사용 - 자바 클래스 구조를 더 조직화하고, 소스코드를 구현시 효율을 높일 수 있음 - 내부 클래스가 생성되기 위해 외부 ..
#. 추상 클래스 > 추상 메서드 - abstract 예약어 ㄴ 메서드와 클래스를 선언할 때 사용하는 Modifier ㄴ 메서드를 선언에 사용 시 추상 메서드로 정의하겠다는 의미 - 추상 메서드12public int sum(int n1, int n2 ..) { ... } // 일반 메서드public abstract int sum(int n1, int n2 ..); // 상 메서드cs ㄴ 메서드의 시그니처(리턴 타입, 메서드명, 매개변수)만 정의 ㄴ 구체적인 행위, 즉 블록({ }) 부분은 정의되지 않은 특수한 메서드 ㄴ 메서드의 시그니처가 선언되어 있기 때문에 메서드의 기본적인 기능 유추 가능 ㄴ 추상 메서드는 의미가 없지만 자식 클래스에서 Overriding 했을 때, 상속을 통해 의미를 가짐 ㄴ 추상..
#. 상속과 변수 > 변수의 상속 - 자식 클래스는 부모 클래스 변수를 물려받아 사용할 수 있음 => private로 정의된 변수는 상속되긴 하지만 접근할 수 있는 권한이 없음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Employee { public String name; int employeeNo; private int salary; // private 선언 변수는 선언된 클래스 내부에서만 사용 int age; public String jobTitle; protected int deptNo; String grade; } class Manager extends Employee { // Employee 클래스의 모든 변수들은 상속되지만, String jobOfManage; St..
#. 상속(Inheritance) > 상속 - 기본 클래스를 확장하여 새로운 클래스를 정의 (부모 클래스의 보든 변수와 메서드를 자식 클래스가 물려받음) - 상속을 통해 소스코드의 재사용성이 보장되며, 가독성이 높아짐 - 기본 클래스 (Base Class) ㄴ 상위 클래스 (Super Class) ㄴ 부모 클래스 (Parent Class)12345678class Employee { String name; int number; int age; String title; String dept; String grade;}cs - 상속된 클래스 = 확장된 클래스 (Extended Class) ㄴ 파생 클래스 ㄴ 하위 클래스 (Sub Class) ㄴ 자식 클래스(Child Class)12345class Manage..