Languages/Java 38

[Java]데이터 타입을 분리해서 알아두기(기본 타입, 참조 타입)

📌개요 https://mooonstar.tistory.com/entry/JAVA-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EA%B8%B0%EB%B3%B8%ED%83%80%EC%9E%85-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85 [JAVA] 데이터의 기본타입, 참조타입 ⚡️프로그램의 구성 개발자는 프로그램을 구성할 때 프로그램 내에서 사용될 데이터를 정의하고 정의된 데이터를 바탕으로 기능을 구현합니다. 데이터가 어떻게 정의되느냐에 따라 프로그램 mooonstar.tistory.com 👺과거에 같은 주제로 포스팅을 한 적이 있었습니다. 추가할 내용이 있어 새로 포스팅 하려 합니다. 📌데이터 타입의 구분(기본 타입, 참조 타입) 개발자는 프로그램을 구성할 때..

Languages/Java 2023.03.21

[Java]this 키워드의 의미와 사용 방법

📌this는 무엇일까? Java 소스를 보다 보면 this는 많이 등장하는 키워드 중 하나이다. 과연 이 this는 무엇일까? Java에서 this는 생성된 인스턴스 즉, 자기 자신을 가리키는 키워드이다. Java 프로그래머라면 반드시 알아야 하는 개념이기 때문에 이번 포스팅에서는 this의 의미와 사용 방법에 대해 작성하도록 하겠다. 📌Java에서의 this란? 객체 자신의 참조값을 가진다. 생성자에서 다른 생성자를 호출하는 겨우 사용한다. 인스턴스가 자기 자신의 주소를 반환하는 경우 사용한다. 📌this를 사용하지 않는 경우 class Member { private String member_name private int member_age public void setName(String member_..

Languages/Java 2023.02.14

[Java]함수형 인터페이스(Functional Interface) 사용해보기

📌함수형 인터페이스(Functional Interface) 사용해보기 함수형 프로그래밍(Functional Programming)은 순수 함수들로 조합하여 기본 원칙에 따라 소프트웨어를 구성하는 것을 말합니다. 쉽게 말하면 프로그래밍의 상태, 상태를 변경시키는 구문의 관점에서 연산을 설명하는 명령형 프로그래밍이 아닌, 결과에 중점을 두고 필요한 것을 추출하기 위해 구조를 세워나가는 선언형 프로그래밍을 따른다. JAVA 8 버전 이 후로 함수형 인터페이스와 람다의 도입으로 함수형 프로그래밍이 가능하게 되었지만, 완전한 함수형 프로그래밍이라고 볼수는 없다. 📌프로그래밍 패러다임 프로그래밍 패러다임란 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 한다. 각 프로그래밍 언어들을 보면 절차지향, 객체지향 ..

Languages/Java 2023.02.08

[Java]SecureRandom 클래스를 이용한 임시 비밀번호 생성 방법

우리가 특정 웹사이트의 비밀번호를 잊어버렸을 경우 회원 정보 확인 후 로그인을 위한 임시 비밀번호를 제공받는다. 이러한 임시 비밀번호는 어떻게 생성이 되는 것일까? 바로 Java의 강력한 암호화 난수 생성기를 제공하는 SecureRandom 클래스를 사용하여 구현이 가능하다. 하지만 SecureRandom 클래스 외에 그냥 Random 클래스 또한 존재하지만 잘 사용하지 않는다. 이것의 이유 또한 알아보자. Random VS SecureRandom 우선 이 두 개의 클래스를 비교하기 위해서는 seed에 대한 개념을 알고 있어야 한다. seed는 난수를 발생시키는 기준 값을 의미한다. Random, SecureRandom의 가장 큰 차이는 이 seed의 값이 다르다. Random 클래스는 시스템 시간을 기..

Languages/Java 2023.02.03

[Java]Java 8 이후의 도입된 현재의 날짜 및 시간 가져오기

📌Java 8 이후의 도입된 현재의 날짜 및 시간 가져오기 Java에서는 날짜와 시간을 다루는 java.util.Date, java.util.Calender 두 개의 클래스가 존재하였습니다. 하지만 여러 가지 이유로 사람들은 사용하길 지양하고, 별도의 오픈 소스 라이브러리를 사용하여 시간, 날짜를 표현하였습니다. 하지만 이러한 문제를 해결하고자 Java 8 이후에 새로운 클래스들이 등장하였습니다. 🟥Calender, Date의 사용을 지양하는 여러 가지 이유 - 아래 링크 확인 🟥출처 : https://d2.naver.com/helloworld/645609 📌새로운 클래스의 등장 - Java 8 이후 java.time.LocalDate java.time.LocalTime java.time.LocalDat..

Languages/Java 2023.02.02

[Java]toString() 메서드는 왜 만들어졌을까?

toString() 메서드는 왜 만들어졌을까? 객체를 문자열로 리턴하기 위해 사용한다고 알고 있던 toString() 메서드에 대해 의문이 생겨 이 글을 작성하게 되었다. toString()의 반환 결과 Java에 모든 클래스들은 최상위 클래스 Object를 상속받는다. 따라서 Object의 정의된 메서드 또한 사용이 가능하다. toString() 메서드 또한 Object에 정의된 메서드 중 하나로 반환 형식은 다음과 같다. getClass().getName() + '@' + Integer.toHexString(hashCode()) toString() 예시 코드 class Blog { private Strintg name; private int count; } package moon; public cla..

Languages/Java 2023.01.30

[Java]Map의 요소를 반복하는 다양한 방법

Map의 요소를 반복하는 다양한 방법 ⚡️keySet을 통해 순환 Map map = new HashMap(); for (String key : map.keySet()) { map.get(key); } ⚡️entrySet을 통해 순환 Map map = new HashMap(); for (Map.Entry entry : map.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); } ⚡️iterator을 통해 순환 Map map = new HashMap(); Iterator keys = map.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); map..

Languages/Java 2023.01.26

[Java]상속(Inheritance)과 super, super() 완벽 이해하기

super, super() 완벽 이해하기 Java 코드를 보다보면 super 키워드는 자주 등장합니다. 이번 포스팅에서는 super, super()에 대해 다뤄보려고 합니다. 하지만 위의 키워드를 이애하기 위해서는 객체지향프로그래밍 언어인 Java에 상속에 대해 먼저 알아야 합니다. 상속(Inheritance)이란? 상속(Inheritance)은 기존 클래스의 멤버변수와 메서드를 이어 받아 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미합니다. 위의 그림을 보면 부모 클래스로 부터 상속받아 생성된 자식 클래스가 부모 클래스를 포함하고 있는 것을 볼 수 있으며, 부모 클래스에 없는 추가된 멤버를 정의한 것을 확인할 수 있습니다. 상속(Inheritance) 예제 class Parent { ..

Languages/Java 2023.01.19

[Java]삼항 연산자(조건 연산자)로 불필요한 IF 문 줄이기

삼항연산자란? 삼항 연산자는 피연산자의 갯수가 3개인 조건부 연산자이다. 기본 구문은 아래 그림을 보면 확인할 수 있습니다. 이 연산자는 if-else 구문을 압축한 형태이며, 간결한 코드를 작성할 수 있습니다. 조건식의 결과 가 True인 경우 두 번째 항의 값 또는 연산식이 반환되며 반대로 조건식의 결과가 False인 경우 세 번째 항의 값 또는 연산식이 반환됩니다. IF -ELSE 구문 기본 형태 if (조건식) { System.out.println("조건식은 참입니다."); } else { System.out.println("조건식은 거짓입니다."); } 위의 IF-ELSE 구문은 조건식의 결과에 따라 다음 프로세스를 진행합니다. 하지만 이렇게 작성한 코드는 5줄 입니다. 이러한 구문에서 삼항 연..

Languages/Java 2023.01.18

[Java]클래스와 객체 그리고 인스턴스와의 차이

클래스(Class) 객체 지향이라는 프로그래밍 패러다임을 가진 JAVA에서는 객체(Object)를 중심으로 프로그래밍을 구성합니다. 객체(Object)의 동작이나 속성들을 구체화 시킨 것이 객체 지향 프로그래밍이기 때문에 객체(Object)는 정말 중요한 요소입니다. 이러한 객체를 만들어 낼 수 있는 틀이 바로 클래스(class)입니다. 클래스(class)라는 틀 안에는 속성(변수), 동작(메서드)으로 구성되어있습니다. 아래 예시를 보며 간단한 클래스(class)를 만들어 보겠습니다. 클래스(Class) 생성 public class Animal { //클래스명 : Animal //속성 private String name; //이름 private int lifespan; //수명 //동작 public vo..

Languages/Java 2023.01.17