일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 루프
- 인텔리제이
- Jenkins
- 빌드
- maven
- Short
- 싱글턴
- Scanner
- 싱글톤
- 클래스
- 내장객체
- start.spring.io
- 콜렉션
- bootstrap
- suvlet
- 언박싱
- 스프링
- Java
- https://start.spring.io
- 제너릭
- 컬렉션
- 메소드
- dependency
- 자동형변환
- 박싱
- unboxing
- 무한
- 제네릭
- boxing
- wrapper
- Today
- Total
목록K-DigitalTraining 강의/1. Java (102)
Developer Gonie
* 배열의 한계점 배열은 생성할 때 부터 크기가 고정되기 때문에 크기가 불분명한 다수의 객체를 저장하는데 문제가 있다. 또한, 배열은 중간의 객체를 삭제하게 되면 해당 인덱스 공간이 비어 이빨 빠진 옥수수가 될 수 있다. 이 때문에 새로운 객체를 저장하려면 어디가 비어있는지 확인하는 코드도 필요하다. * 컬렉션 프레임워크란? (http://www.tcpschool.com/java/java_collectionFramework_concept) 배열의 한계를 해결하고자 널리 알려져 있는 자료구조를 바탕으로 크기를 동적으로 변경해가며 객체들을 효율적으로 추가, 삭제, 검색하기 위해 표준화된 방법을 제공하는 클래스 집합을 의미한다. 그냥 '컬렉션'이라고 부르기도 하며 이 단어는 인터페이스와 이를 구현한 컬렉션 클..
* 제네릭(Generic) 타입이란? '제네릭 타입'은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다. * 제네릭 메소드란? '제네릭 메소드'는 매개 타입과 리턴 타입으로 타입 파라미터를 갖는 메소드를 말한다. * 제네릭 사용시 주의할 점 주의할 점으로 구체적인 자료형을 지정할 땐 안에 클래스 이름을 기입해줘야 하는데 기본자료형의 경우 레퍼클래스의 이름을 넣어줘야 한다. ex) int 자료형의 경우 -> API 도큐먼트를 보면 제네릭 표현이 많기 때문에 이를 이해하지 못하면 API 도큐먼트를 정확히 이해할 수 없다. 또한, 제네릭을 사용하면 코드의 재사용성을 높일 수 있어 효율적이다. 이것 말고도 장점이 있는데 지금은 이 정도만 이해하자. 구체적인 타입은 객체를 생성할 때 지정한다. 코드 ..
* 날짜 및 시간정보는 Calendar 클래스의 객체를 통해 얻을 수 있지만, Date 클래스의 객체를 통해서 얻을수도 있다. 단, SimpleDateFormat 클래스의 메소드가 인자로 Date 클래스 타입의 객체를 받고 있으므로 이를 사용하여 원하는 포멧대로 출력하고자 할 땐 Date 클래스와 함께 사용하자. 코드 import java.text.SimpleDateFormat; import java.util.Date; public class Ex08_09_Date { public static void main(String[] args) { Date now = new Date(); System.out.println(now); System.out.println(now.getMonth()+1 +"월"); S..
* Calendar 클래스는 생성자가 protected 접근제어자여서 new로 직접 객체를 생성할 수 없는데, getInstance() 메소드를 통해 객체를 생성해올 수 있다는 것을 알고 사용해야한다. 코드 import java.util.Calendar; public class Ex08_08_Calendar { public static void main(String[] args) { // Calendar cal = new Carlenar(); 이와 같이 바로 객체를 생성하는 것이 불가함. // Calendar의 생성자는 protected로 접근제어자가 지정되어 있기 때문에 접근이 불가능해 객체를 생성할 수 없다. // 대신에 Calendar 는 멤버함수로 static으로 getInstance 메서드를 가..
* 문자열 파싱이란? 구분자를 기준으로 단어 단어 쪼개는걸 파싱이라고 하는데, 이렇게 분리된 단어를 각각의 토큰이라고 한다. 이걸 간단히 수행하기 위한 방법으로는 크게 2 가지 방식이 있음. 방법1) String 클래스의 split() 메소드를 이용하는 것 -> 구분자를 1개만 지정가능 방법2) StringTokenizer 클래스를 이용하는 것 -> 구분자를 여러개 지정가능 방법3) String 클래스의 indexOf() 메소드로 구분할 index를 찾고 substring() 메소드로 나눠서 가져오는 것 -> 완전수동 1. String 클래스의 split 메소드 사용예시 코드 import java.util.StringTokenizer; public class Ex08_07_StringTokenizer {..
* 래퍼(Wrappper) 클래스란? 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있는데, 이럴 때 기본 자료형 값을 객체로 변환하기 위해 사용하는 클래스들을 래퍼 클래스라고 하고, 이를 이용해 만들어진 객체를 래퍼 객체라고 한다. 래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 준다. 프로그래밍적이지 않게 표현하면 숫자를 박스에 넣고 포장시키는 것이다. 이를 위한 래퍼 클래스는 모두 java.lang 패키지에 포함되어 제공된다. 따라서, 아래의 래퍼클래스들을 사용하기 위해서 import를 해주지 않아도 사용이 가능하다. 기본 데이터 타입에는 아는 바와 같이 8가지가 있고(byte, short, int, long, floa..
1. length() : 문자열의 길이 반환 public class testString2 { public static void main(String[] args) { String s1 = new String("apple"); System.out.println(s1.length()); } } // //5 2. toString() : 문자열의 값 반환 public class testString2 { public static void main(String[] args) { String s1 = new String("apple"); System.out.println(s1);// 객체를 출력하면 객체의 toString() 메소드가 자동으로 호출됨 System.out.println(s1.toString()); } ..
* String 클래스는 Object 클래스로부터 상속받은 equals(), toString() 메소드를 오버라이딩 해두었다. Object 클래스의 equal() 메소드는 객체의 주소를 비교하지만, String 클래스의 equal() 메소드는 객체 내부의 값을 비교한다. Object 클래스의 toString() 메소드는 주소를 반환하지만, String 클래스의 toString() 메소드는 객체 내부의 값을 출력한다. 1. String 클래스의 equals() 예시 코드 public class testString { public static void main(String[] args) { String s1 = new String("apple"); String s2 = new String("apple"); ..
* Object 클래스란? 클래스 작성시 혹은 자바에 존재하는 모든 클래스는 명시해주지 않아도 자동적으로 extends Object 가 붙으며 모든 클래스가 Object 클래스를 상속받게 된다. 즉, Object 클래스는 모든 클래스의 최상위 부모인 것이다. Object 는 멤버함수를 가지고 있는데 보통 이를 오버라이딩 해서 사용하게 된다. 아래는 자주 오버라이딩 되어 사용되는 Object의 equals(), toString() 메소드이다. 또한, 따로 import 해주지 않아도 이 클래스의 메소드를 사용할 수 있는데, 이건 Object 클래스가 java.lang 패키지에 존재하기 때문임 * Object 클래스의 equal() 메소드 Object 클래스의 equal() 메소드는 두 객체의 주소를 비교하여..
* 익명클래스란? 존재하는 클래스의 메서드를 1회성으로 오버라이딩 혹은 새로운 메소드를 추가해서 사용하고자 할 때 사용됨. 인터페이스 혹은 추상클래스의 미완성된 추상메소드를 완성하여 객체를 생성하는 것도 가능함. (인터페이스 혹은 추상클래스는 객체를 생성하는게 불가능하였지만 이게 불가능했던 이유는 미완성이었기 때문임 따라서, 미완성상태의 추상메소드를 익명클래스에서 완성시켜주면 이 둘도 객체를 생성하는게 가능함) 코드 class Inner1{ int x = 2; void display() { System.out.println("x:" + x); } } class Inner2 extends Inner1{ //물려받은 메서드 오버라이딩 void display() { System.out.println("x:" ..
* 이너클래스(=중첩클래스, Nested class) 란? 클래스 내부에 선언한 클래스를 말함. 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스 하고만 관계를 맺을 경우에는 관계클래스 내부에 선언하는 것이 좋다. 이너클래스 관련해서 주의할 점으로 이너클래스 타입의 객체는 바로 new 를 이용해 객체를 생성하는 것이 불가능 하다. 그 이유는 이너클래스의 생성자에 바로 접근이 불가하기 때문인데 그래도 방법은 있다! 바깥 클래스의 객체를 생성하여 이너클래스의 생성자에 접근하면 아래와 같이 객체를 생성하는 것이 가능하다 Car2 pride = new Car2("프라이드", 2005, "파랑"); Car2.Car2name pride2 = pride.new Car2name..
* 0