자바 4

프로그래머스 #12916 문자열 내 p와 y의 개수

내가 작성한 코드는 아래와 같다.class Solution { boolean solution(String s) { boolean answer = true; int countP = 0; int countY = 0; for (int i = 0; i  다른 사람들의 코드를 보며 내가 생각하지 못했던 점들을 정리해보려 한다.  예시 코드 1class Solution { boolean solution(String s) { s = s.toLowerCase(); int count = 0; for (int i = 0; i  생각해본 지점 (1) toUpperCase() / toLowerCase()나는 정말 ..

[Java] 배열

1. 배열- 동일한 자료형, 순차적 자료 구조- 선언 시 배열 길이 결정된다.- heap 영역에 new 연산자를 통해 할당된다.- 인덱스 연산자[]로 빠른 참조가능 (cf. Linked list는 빠르지 않다. 시간 복잡도 O(n))- 물리적 위치와 논리적 위치가 동일 (실제 메모리에서 A[0]와 A[1]은 연속적이다. Linked list는 물리적 위치 != 논리적 위치)- 자바에선 객체 배열을 구현한 ArrayList를 자주 사용한다. (Java util 패키지에서 제공)  2. 배열 선언 및 초기화(1) 배열 선언하기: 스택에 배열의 주소를 보관할 레퍼런스 변수 공간을 만드는 것- 선언한 레퍼런스 변수에 배열을 할당하여 대입할 수 있다.  (발생한 주소가 레퍼런스 변수에 저장되고, 이것을 참조해서 ..

Java 2024.07.11

생성자(constructor)와 생성자 오버로딩

1. 기본 생성자 (default constructor)- 클래스에는 적어도 하나 이상의 생성자가 존재해야 한다.- 생성자를 구현하지 않으면 컴파일러가 기본생성자를 넣어주기 때문에,   클래스에 생성자를 구현하지 않아도 생성자를 호출할 수 있다.- 기본 생성자는 매개변수와 구현부가 없다. (public Company() {})  2. 생성자 오버로딩- 클래스에 생성자를 1개 이상 구현하면 기본 생성자는 제공되지 않는다.- cf. 오버로딩은 생성자 말고 메서드에서도 존재하는 개념이다.  * 본 게시물은 패스트캠퍼스 "한 번에 끝내는 Java/Spring 웹개발 마스터 초격차 패키지" 강의를 바탕으로 정리한 글입니다.

Java 2024.07.05

[Java] 인스턴스 생성과 힙 메모리

1. 인스턴스- 실제 클래스 기반으로 생성된 인스턴스는 각각 다른 멤버 변수 값을 갖게 된다.  (같은 클래스 기반으로 생성되어도 각 인스턴스는 메모리 내 각각 다른 위치를 차지하기 때문이다.)- new 키워드를 사용해서 인스턴스 생성 -> 이 때 메모리(동적 메모리, heap)를 할당받는다.  2. 힙 메모리- 생성된 인스턴스는 동적 메모리(heap)에 할당된다.- C나 C++에서는 사용한 동적 메모리를 free()나 delete을 이용해서 해제시켜야 하지만,   자바에서는 gabage collector가 주기적으로 사용하지 않는 메모리를 수거해준다.  3. 참조 변수, 참조 값 Student studentLee = new Student(); studentLee.studentName = "홍길동";..

Java 2024.07.05