-
[Java] 포장 클래스 (Wrapper Class)Java 2023. 4. 14. 03:50
포장 클래스 (Wrapper Class) java에서 프로그래밍을 하다보면 원시 자료형(primitive type)의 데이터를 객체를 표현해야 하는 경우가 있다. 이럴 때에 원시 자료형(primitive type)을 객체로 다루기 위하여 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. 🔎 박싱(Boxing)과 언박싱(UnBoxing) 박싱(boxing): 기본 타입의 값을 포장 객체로 만드는 과정 언박싱(unboxing): 포장 객체에서 기본 타입의 값을 얻어내는 과정 🔎 자동 박싱(AutoBoxing)과 자동 언박싱(AutoUnBoxing) 포장 클래스 타입에 기본값이 대입되는 경우에 자동 박싱이 일어난다. 반대로 기본 클래스 타입에 포장 클래스가 대입되는 경우에는 자동 언박싱이 ..
-
[Java] ==와 equals() 차이Java 2023. 4. 14. 03:35
==와 equals() 차이 java에서 ==와 equals()는 두 대상을 비교하여 결괏값을 boolean으로 return 한다. == 연산자: 비교하고자 하는 대상의 주소값을 비교 equals(): 비교하고자 하는 대상의 내용을 비교 String a = "str"; String b = a; String c = new String("str"); System.out.println(a.equals(b)); // true System.out.println(a == b); // true System.out.println(a.equals(c)); // true System.out.println(a == c); // false 해당 코드에서 a와 c는 같은 값을 가지지만, c는 new 생성자를 통해 새로운 객체를..
-
[Java] 접근 제어 지시자 (access modifier)Java 2023. 4. 14. 03:16
접근 제어 지시자 java에서는 변수나 메서드의 사용 권한을 다음과 같은 접근 제어자를 사용하여 설정할 수 있다. public > default > protected > private 지시자 클래스 내부 동일 패키지 상속받은 클래스 이외의 영역 private O X X X default O O X X protected O O O X public O O O O 📋 참고 자료 07-02 접근제어자 (Access Modifier) 자바는 접근제어자를 사용하여 변수나 메서드의 사용 권한을 설정할 수 있다. [TOC] ## 접근 제어자 변수나 메서드의 사용 권한은 다음과 같은 접근 제어자를 사용하여 … wikidocs.net [JAVA] 접근 제어 지시자 접근 제어 지시자란? 접근의 허용 범위를 제한하는 용도 종..
-
[Java] 객체 지향 프로그래밍이란?Java 2023. 4. 14. 03:12
객체 지향 프로그래밍 (Object Oriented Programming) : 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 🔎 객체 지향 프로그래밍의 장단점 [ 장점 ] 코드 재사용 용이 유지보수가 쉬움 대형 프로젝트에 적합 [ 단점 ] 처리 속도가 상대적으로 느림 객체가 많으면 용량이 커질 수 있음 설계시 많은 시간과 노력 필요 🔎 좋은 객체 지향 설계의 5가지 원칙 [Spring] SOLID | 좋은 객체 지향 설계의 5가지 원칙 SOLID SRP: 단일 책임 원칙 (Single responsibility principle) OCP..
-
[Java] String, StringBuilder, StringBuffer 차이Java 2023. 4. 14. 01:47
String, StringBuilder, StringBuffer 차이 String, StringBuilder, StringBuffer는 java에서 문자열을 다루는 대표적인 클래스이다. 위 3가지 클래스는 모두 문자열을 다룬다는 공통점이 있지만, 사용 목적에 따라 쓰임새가 달라진다. 🔎 String String은 불변성(Immutable)을 가지고 있다. String 객체가 한 번 생성되면, Heap 영역에 생성된다. concat이나 + 연산자를 통해 문자열을 이어 붙이는 경우에도 기존 문자열에 추가되는 것이 아니라, 새로운 String 객체를 생성한 후 연결을 시켜 그 객체를 참조한다. ➡️ 이러한 이유 때문에 문자열 연산이 많은 경우 성능이 좋지 않다. 🔎 StringBuffer & StringBui..
-
[Java] Call by Value vs Call by ReferenceJava 2023. 4. 12. 01:09
Call by Value vs Call by Reference method를 호출할 때, parameter를 전달하는 방법으로는 크게 두 가지가 있다. Call by Value Call by Reference 🔎 Call by Value Call by Value 방식은 함수 호출시 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 호출자의 변수와 수신자의 paramenter는 복사된 서로 다른 변수이다. 전달받은 인자의 값은 local value의 특성을 가지기 때문에, 함수 내부에서 값이 변경되어도 외부에서의 값은 변경되지 않는다. 🔎 Call by Reference Call by Reference 방식은 함수 호출시 전달되는 변수의 참조 주소(reference)를 전달한다. 참조를 직접 넘기기 ..
-
[C++] 백준 14499 | 주사위 굴리기Problem Solving/Baekjoon 2023. 4. 8. 17:36
주사위 굴리기 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net ✍🏻 풀이 단순 구현 문제였다. 연습장에 주사위를 그려가며 풀면 간단하게 해결할 수 있음 😀 1. 주사위 배열을 선언한 후, 다음과 같이 임의로 인덱스에 위치를 부여하였다. * 0: 위 * 1: 뒤 * 2: 아래 * 3: 앞 * 4: 왼쪽 * 5: 오른쪽 2. 주사위를 동, 서, 남, 북으로 굴렸을 때의 위치를 각각 함수로 구현하였다. (아래는 동쪽으로 굴렸을 때의 함수) void r..
-
[C++] 백준 14502번 | 연구소Problem Solving/Baekjoon 2023. 4. 8. 16:47
연구소 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net ✍🏻 풀이 크게 두 가지 과정을 거쳐 풀이하였다. 벽 세우기 ➡️ 조합 안전 영역 크기 계산 ➡️ BFS(너비 우선 탐색) 조합 문제 풀 때 아직 버벅이는 부분이 있다 추후 포스팅으로 정리하겠습니닷 ✅ Accept Code // baekjoon 14502 #include using namespace std; int N, M; int ans = 0; int virusMap[8][8]; int tmp[8][8]; queue virus; vector space; vector..