본문 바로가기

분류 전체보기

[백엔드온라인TIL] java 학습 10일차 - 제네릭 개념 '제네릭(Generic) 기본적인 개념 이해하기' '데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법' 어떤 자료 구조를 만들어서 사용하려고 할 때 String 타입도 지원하고 싶고, Integer 타입도 지원하고 싶고, 다른 타입들도 지원하고 싶은 경우가 있습니다. 그럴 때 String에 대한 클래스, Integer에 대한 클래스 등 타입에 따라 각각의 클래스들을 모두 만드는 것은 너무 비효율적입니다. 자바에서는 이러한 문제를 해결하기 위해 java 1.5부터 제네릭을 사용하게 되었는데요. 제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌, 외부에서 사용자에 의해 지정되는 것을 의미하며, 한마디로 특정(Specific) 타입을 미.. 더보기
[백엔드스터디WIL]3주차 학습일지 자바에 대한 전반적인 개념을 복습하였다. (제네릭, map) Generic(제네릭)의 장점 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다. 2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다. 3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다. Generic(제네릭) 사용방법 보통 제네릭은 아래 표의 타입들이 많이 쓰인다. 타입 설명 Type Element Key Value Number 물론 반드시 한 글자일 필요는 없다. 또한 설명과 반드시 일치해야 할 필요도 없다. 예로들어 라고 해도 전혀 무방하다. 다만 대중적으로 통하는 통상적인 선언이 가장 편하기 때문에 위와같은 암묵적(?)인 규.. 더보기
[백엔드온라인TIL] java 학습 9일차 자바 교재를참고하여 자바에 대해 전반적으로 복습을 하는 시간을 가졌다. jvm, 자바의 특징, 연산자, 제어문, 반복문, 클래스, 객체, 생성자 등을 복습하였다. 자바 가상머신 Java Virtual Machine의 줄임말. 직역하면 '자바를 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있다. Java 는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요하다. 그게 바로 JVM이다. 즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터이다. 자바의 특징 운영체제에 독립적 - 자바응용프로그램은 JVM과 통신하고 JVM이 응용프로그램으로부터 전달받은 명령을 운영체제가 이해할 수 있도록 변환.. 더보기
[백엔드온라인TIL] java 학습 8일차 오늘 한일 - 큰따옴표입력 - 제네릭 객체 복습 - map 개념 복습 Java에서 문자열(String)은 큰따옴표로 감싸서 표현합니다. 그렇다면, 큰따옴표가 문자열 안에 포함되도록 하려면 어떻게 해야 할까요? Hello "World" 위 문자열을 출력해야 한다면, 이 문자열을 어떻게 표현해야 할까요? String str = "Hello "World""; 위와 같이 표현해주면 될까요? 아마도, 위와 같이 문자열을 선언을 하면 컴파일 에러가 발생할 것입니다. 그래서 이번에는 문자열 안에서 쌍따옴표를 표현하는 3가지 방법을 알아보도록 하겠습니다. 1. 이스케이프(Escape) 문자 사용하기 코드 public class StringQuotes { public static void main(String[] arg.. 더보기
[백엔드온라인TIL] java 학습 7일차 자바 Custom object를 중복제거 하는 법에 대해서는 찾기가 어려워서 블로그를 작성한다. 일반적으로 string이나 int값은 list나 array에 넣어서 hashset에 넣었다가 list나 array로 바로 빼면 쉽게 중복 제거가 가능하다 자바객체가 들어있는 Arraylist나 linkedlist를 제거하는 방법 중 빠르고 간편한 방법 하나는 Hashset이다..!! 2가지만 알면 위의 과정을 쉽게 처리할 수 있다. 첫번째 과정은 hashset을 이용하는 것이다. 가정 : custom객체는 FileVO로 가정(FileVO는 파일ID, 파일명, 확장자, MD5, 사이즈 등 파일의 여러 속성을 가진 객체) 가정 : 아래에 쓰인 test1과 test2는 FileVO 커스텀 객체로 만들어 가상 데이터.. 더보기
[백엔드온라인TIL] java 학습 6일차 public 더보기
[백엔드스터디WIL]2주차 학습일지 다형성(ploymorphism)이란? 다형성은 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 뜻하며 이는 같은 코드에서 여러 실행 결과가 나올 수 있는 것을 말합니다. 정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나인 다형성은 객체지향 프로그래밍의 유연성, 재활용성, 유지보수성에 기본이 되는 특징입니다. 실습 //1번 //Animal class 생성 class Animal { public void animalMove() { System.out.println("동물이 움직입니다"); } } class Human extends Animal { public void animalMove() { System.out.println("사람이 두발로 걷습니다"); } } class Tige.. 더보기
[백엔드온라인TIL] java 학습 5일차 제네릭 (Generics) 이란 자바에서 제네릭(Generics)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 객체별로 다른 타입의 자료가 저장될 수 있도록 한다. 자바에서 배열과 함께 자주 쓰이는 자료형이 리스트(List)인데, 다음과 같이 클래스 선언 문법에 꺾쇠 괄호 로 되어있는 코드 형태를 한번 쯤은 봤을 것이다. JAVA ArrayList list = new ArrayList();Copy 저 꺾쇠 괄호가 바로 제네릭이다. 괄호 안에는 타입명을 기재한다. 그러면 저 리스트 클래스 자료형의 타입은 String 타입으로 지정되어 문자열 데이터만 리스트에 적재할 수 있게 된다. 아래 그림과 같이 배열과 리스트의 선언문 형태를 비교해보면 이해하기 쉬울 것이다. 선언하는 키워.. 더보기
[백엔드온라인TIL] java 학습 4일차 🧑‍💻 계산기 만들기 📌 충분히 고민한 후에도 해결이 되지 않으실 때에는 아래 힌트 살펴보기를 이용해주세요! Step 1 1️⃣ 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만듭니다. Calulator 클래스는 연산을 수행하는 반환타입이 double 인 calculate 메서드를 가지고 있습니다. calculate 메서드는 String 타입의 operator 매개변수를 통해 연산자 매개값을 받습니다. int 타입의 firstNumber, secondNumber 매개변수를 통해 피연산자 값을 받습니다. calculate 메서드는 전달받은 피연산자, 연산자를 사용하여 연산을 수행합니다. Step 2 2️⃣ 나머지 연산자(%)를 수행할 수 있게 Calculator 클래스.. 더보기
[백엔드온라인TIL] java 학습 3일차 오버로딩(Overloading) 오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻이다. C언어에서는 함수명이 고유하게 존재해야 한다. 즉 하나의 함수가 하나의 기능만을 구현해야 한다는 것이다. 하지만 자바에서는 하나의 메소드 이름으로 여러 기능을 구현하기 때문에 '과적하다.'라는 뜻의 이름을 붙여준 것으로 보인다. 오버로딩의 정의는 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 오버로딩의 조건 메소드의 이름이 같고, 매개변수의 개수나 타입이 달라야 한다. 주의할 점은 '리턴 값만' 다른 것은 오버로딩을 할 수 없다는 것이다. 아래의 코드를 통해서 예를 들어보자.. 더보기