전체 글292 배열 배열을 사용하면 좋은 장단점은 다음과 같다. 장점 메모리에 연속적으로 연결되어 할당하기 때문에 접근 속도가 빠름 참조를 위한 추가적인 메모리 할당을 필요로 하지 않음 단점 자료를 삭제 또는 삽입할 때 다른 데이터를 밀어내거나 당겨와야하기 때문에 배열의 크기가 커질수록 비효율적임 배열의 크기는 불변이기 때문에 메모리가 낭비될 수 있고 데이터는 많지만, 배열에 다 넣지 못할 수도 있음 추가적으로, 배열 자료구조를 자세히 배우게 된다면 내용을 덧붙일 생각이다. (참고 : https://st-lab.tistory.com/51) 2022. 9. 6. 구분자를 기준으로 문자열 분리하는 방법 구분자(delimiter)를 기준으로 문자열을 분리하는 방법에는 무엇이 있을까? 먼저, split() 메서드를 보자. split() 메서드는 다음과 같이 2가지 형태로 사용할 수 있다. public String[] split(String regex) public String[] split(String regex, int limit) split() 메서드는 매개변수로 문자열을 구분할 정규식 형태의 구분자를 입력받는다. 구분자는 정규식(regular expression)의 형태이고, 알맞은 정규식을 입력해주면 여러 개의 문자열을 자를 수 있다. 다음 예제로 알아보자. "a&b,c,d-e" 라는 문자열을 & , - 를 구분자로 구분하려 한다. 이럴 때는, 위와 같이 | 을 구분자 사이에 넣어주어 정규식을 표현.. 2022. 9. 6. 2022.09.05. ▶ 학습 전(계획) 학습 목표는 무엇인가? 생성자 내부 클래스 기본 생성자 vs 매개 변수가 있는 생성자 this vs this() 내부 클래스 멤버 내부 클래스 지역 내부 클래스 이미 알고 있는 내용은 무엇인가? 전에 생성자에 관한 내용을 배웠다. 당시에, 생성자 파트에서 이해가 안되서 막혔던 기억이 있는데, 이번 학습을 통해 완전히 이해했으면 좋겠다. 내부 클래스에 관한 내용은 처음 배우는 것 같다. 집중해서 학습에 임해야겠다. 화이팅! ▶ 학습 후(점검 및 평가) 새롭게 배운 내용은 무엇인가? 새롭게 알게 된 사실은, 클래스에 있는 매개변수가 없는 생성자를 기본 생성자라고 부르지 않는다. 매개변수가 없는 생성자라고 부른다. this() 메서드, 내부 클래스에 대한 내용은 이번에 새로 배웠다. 다른 .. 2022. 9. 5. 내부 클래스란? 내부 클래스는 클래스 내에 선언된 클래스이다. 내부 클래스는 외부 클래스의 멤버들에 쉽게 접근할 수 있고, 코드의 복잡성을 줄일 수 있다. (출처 : https://velog.io/@spwwy3437/JAVA-%EB%82%B4%EB%B6%80%ED%81%B4%EB%9E%98%EC%8A%A4) 내부 클래스의 내용은 https://velog.io/@spwwy3437/JAVA-%EB%82%B4%EB%B6%80%ED%81%B4%EB%9E%98%EC%8A%A4 을 참고하시면 더 자세히 이해하실 수 있습니다. 2022. 9. 5. 생성자란? 생성자는 인스턴스가 생성될 때, 호출되는 인스턴스 변수들을 초기화하는 데 사용되는 특수한 메서드이다. 생성자의 기본 구조는 다음과 같다. 클래스명(매개변수) { ---- 생략 ---- } 생성자도 메서드라고 할 수 있다. 하지만, 메서드와 다른 점이 존재한다. 생성자의 이름은 반드시 클래스의 이름과 같아야 한다. 생성자는 리턴 타입 자체가 존재하지 않는다. 매개 변수는 있을 수도, 없을 수도 있다. 한 클래스 내에 여러 개의 생성자가 존재할 수 있다. 모든 클래스에는 하나 이상의 생성자가 존재해야 한다. 메서드 오버로딩은 생성자에서도 구현될 수 있다. 다음 코드를 통해 예시를 보자. 클래스에서 생성자를 만들어주지 않으면, 자동으로 자바 컴파일러가 기본 생성자를 만들어준다. 기본 생성자는 매개변수가 없는 .. 2022. 9. 5. 필드(Field)와 메서드(Method)란? 자바에서 변수는 크게 다음 3가지로 구분된다. 클래스 변수 인스턴스 변수 지역 변수 객체의 속성을 정의하는 필드는 '클래스에 포함된 변수'를 지칭한다. 필드 변수는 클래스 변수와 인스턴스 변수를 말한다. 이 둘은 static 키워드의 유무로 구분할 수 있다. staic 키워드가 함께 선언된 것은 클래스 변수, 그렇지 않은 것은 인스턴스 변수이다. 이 두 가지 변수에 포함되지 않고, 메서드 내에 포함된 모든 변수를 지역 변수라고 한다. 인스턴스 변수는 인스턴스가 가지는 각각의 고유한 속성을 저장하기 위한 변수이다. 인스턴스 변수는 new 키워드를 이용해 인스턴스가 생성될 때 만들어진다. 필드(멤버) 변수는 힙 메모리 영역에, 지역 변수는 스택 메모리에 저장이 된다. 힙 메모리에 저장되면 객체가 없어지지 않.. 2022. 9. 5. 클래스(Class)와 객체(Object)란? 객체란 우리가 보고 느끼고 생각할 수 있는 모든 것이며, 사용할 수 있는 실체를 말한다. 클래스는 객체를 생성하는 데 사용되는 하나의 틀이다. 클래스는 객체를 정의한 '설계도' 또는 '틀'이라고 볼 수 있고, 객체를 생성하는 데 사용된다. 객체는 클래스에 정의되고 설계된 내용 그대로 생성된다. 둘은 뗄 수 없는 관계이다. 클래스를 통해 생성된 객체를 인스턴스(instance)라고 부르고, 클래스로부터 객체를 만드는 과정을 인스턴스화(instanctiate)라고 부른다. 객체와 인스턴스는 같은 말이다. 둘을 혼용하여 사용할 수 있다. 다만, 객체는 모든 인스턴스를 포함하는 넓은 의미라면, 인스턴스는 어떤 클래스로부터 생성된 것인지를 강조한다. 클래스는 크게 다음 3가지의 구성요소를 가진다. 필드 : 클래스.. 2022. 9. 5. int형의 숫자와 String형의 문자열을 더하면? 문자열로 "123456"이 저장되었다. 나는 당연히 타입이 안 맞아서, 에러가 날 줄 알았다. int형을 String형으로, String형을 int형으로 고쳐서 더할 생각만 하고 있었는데.. 이런 경우, 자동으로 int형이 String형으로 변환된다고 한다... 이런 기초적인 부분, 잊지도 말고 헷갈리지도 말자. 2022. 9. 4. Java : 입력(input) 시, 사용되는 Scanner, BufferedReader Java에서 입력을 원할 때, 기본적으로 Scanner와 BufferedReader 클래스를 이용해서 받아올 수 있다. 다음의 코드처럼 받아올 수 있다. -Scanner- Scanner sc = new Scanner(System.in); -BufferedReader- BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 여기서, InputStreamReader라는 것이 문자를 하나하나 읽어들이고, BufferedReader가 그 문자들을 문자열로 만들어준다. Scanner와 BufferedReader은 모두 버퍼를 이용해서 입력값을 저장한다. 둘의 차이점은 버퍼의 크기이다. Scanner 버퍼 크기 : 1024chars Buf.. 2022. 9. 3. 이전 1 ··· 22 23 24 25 26 27 28 ··· 33 다음