
코테를 풀다가 split()의 내부를 몰라 시간복잡도를 구할 수 없어서 공부해보고자 한다. 1. 호출String [] str = br.readLine().split("/");코드 작성 후 실행 후 "10/20/30/40"을 입력한다. 2. String의 split() 실행public String[] split(String regex) { return split(regex, 0);} 3. 구분자 포함여부가 있는 split() 실행private String[] split(String regex, int limit, boolean withDelimiters) { /* fastpath if the regex is a * (1) one-char String and this character is..

처음 자바를 배울 때는 제네릭이 이렇게 중요한 줄 몰랐는데 개발을 할 수록 제네릭 개념이 많이나와서 정리해보고자 한다. 해당 글은 인프런의 '김영한의 실전 자바 - 중급 2편'을 참고했다. 제네릭이 필요한 이유왜 제네릭을 많이 사용할까? 사실 나는 개발할 때 많이 사용하지 않는다. 하지만 사용하고 있는 라이브러리 코드들을 확인해보면 T나 K가 사용되고 있는 코드들이 많았다. 많이 사용하는 이유 중 하나는 `코드의 재사용`이다. 코드의 재사용제네릭을 사용하면 StringBox이든, IntegerBox이든 객체마다 새로운 클래스를 만들지 않고도 단 하나의 클래스만으로 여러 개의 클래스를 지원할 수 있게 된다.public class GenericBox { private T value; pub..

Static 변수 static멤버와 non-static 멤버의 차이 non-static 멤버 static 멤버 공간적 특성 객체마다 별도 존재 클래스당 하나 생성 • 멤버는 객체 내부가 아닌 별도의 공간(데이터 영역)에 생성 시간적 특성 객체 생성시에 멤버 생성됨 • 객체가 사라지면 멤버도 사라짐 클래스 로딩 시에 멤버 생성 • 프로그램이 종료될 때 멤버 사라짐 공유의 특성 공유되지 않음 • 객체 내에 각각 공간 유지 동일한 클래스의 모든 객체들에 의해 공유됨 static변수 객체 접근 public static void main(String []args){ 1. StaticSample s1, s2; 2. s1 = new StaticSample(); 3. s2.n = 5; // static 멤버 접근 } ..

생성자 생성자의 특징 • 메소드이다. • 객체당 한 번 호출된다. • 리턴타입을 지정할 수 없다 • 목적은 객체의 초기화이다. 생성자는 객체가 생성될 때 반드시 호출된다. • 개발자가 생성자를 생성하지 않았다면 컴파일러가 자동으로 기본 생성자 삽입한다. 기본 생성자 매개 변수 없고 아무 작업 없이 단순 리턴하는 생성자 컴파일러가 만든다 하지만 개발자가 클래스 생성자를 하나라도 작성한 경우 컴파일로는 기본 생성자를 만들지 않는다. this 레퍼런스 ▶︎ this 객체 자신에 대한 레퍼런스 ▶︎ this() 클래스 내의 다른 생성자 호출 생성자 내에서만 사용가능 반드시 생성자 코드의 제일 처음에 수행 public class Book{ String title; String author; public Book(..

객체 지향언어 객체 세상 모든 것이 객체로 이루어진다. (TV, 냉장고, 컴퓨터, 사람...) 실세계 객체의 특징 객체마다 고유한 특성(state)와 행동(behavior)를 가짐 다른 객체들과 정보를 주고 받는 등, 상호작용하면서 존재 객체 지향 언어의 목적 ▶︎ 소프트웨어 생산성 향상 컴퓨터 산업 발전에 따라 소프트웨어 생명주기가 단축됨 상속, 다형성, 객체, 캡슐화 등 소프트웨어 재사용을 위한 여러 장치가 내장됨 ➞ 재사용, 부분 수정 용이. 다시 만들 필요 없음 ▶︎ 실세게에 대한 쉬운 모델링 실세계에서 발생하는 일을 프로그래밍하기 때문에, 절차나 과정보다 물체들의 상호작용으로 묘사하는 것이 용이 절차 지향 프로그래밍과 객체 지향 프로그래밍 ▶︎ 절차 지향 프로그래밍 작업 순서 표현 작업을 함수로..