일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bootstrap
- 컬렉션
- 제너릭
- boxing
- wrapper
- 싱글턴
- 스프링
- unboxing
- Jenkins
- 메소드
- 박싱
- 콜렉션
- 빌드
- dependency
- Scanner
- start.spring.io
- https://start.spring.io
- 클래스
- 싱글톤
- 루프
- 언박싱
- Java
- 인텔리제이
- 내장객체
- suvlet
- 제네릭
- Short
- maven
- 자동형변환
- 무한
- Today
- Total
목록K-DigitalTraining 강의 (333)
Developer Gonie
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cG8Lnq/btrDVB8J2DO/LPHoVl2kajYKxDu14GYaT1/img.png)
* HashSet 클래스란? Set 인터페이스를 구현하여 만들어진 클래스로, 객체만을 저장 가능하며 Set의 특징을 그대로 상속받아 순서(index)가 없고, 중복 데이터의 입력이 불가능하다. ( ArrayList와 완전 반대) 중복 데이터의 입력이 불가능해 같은 값을 넣으려고 하면 에러는 안나지만 그 시도가 무시된다. 혹시라도 알고리즘 문제 해결 과정중에 중복되는 데이터를 제거하고 싶다면 이걸 사용하면 좋을거 같다. 과거에 예제를 해결하면서 중복없는 로또번호 6개를 만드는게 있었는데 이걸 활용하면 딱이다. * HashSet 에서 자주 사용되는 메소드 HashSet hs = new HashSet(); hs.add(객체);// 원소추가 hs.remove(객체);// 원소제거 hs.clear(객체);// 원..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0jFs3/btrDVmX8xU6/tjuGgMDvEzKS5CgCXHn3U1/img.png)
* Vector 클래스란? ArrayList와 같이 List 인터페이스를 상속받아 완성시킨 클래스라서 순서(index)가 있고, 중복 데이터가 허용된다. * Vector에서 자주 사용되는 메소드 Vector v = new Vector(); v.size();// 길이 반환 v.add(객체);// 객체를 맨 뒤에 추가 v.get(index)// 해당 index에 위치한 객체를 반환 //확장 for문을 이용해 요소들을 출력하는 방법 for(타입 s : v) { System.out.println(s); } //Enumeration 타입을 이용해 모든 원소 출력하는 방법(ArrayList는 사용불가) Enumeration en = v.elements(); // 참조변수가 관리하는 모든 요소들을 가져와라 while..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dY03J2/btrDRXSWDsC/f1zCykXs5RPKWxO79IIkV1/img.png)
* ArrayList 클래스란? List 인터페이스를 구현하여 만들어진 클래스로, 객체만을 저장 가능하며 List의 특징을 그대로 상속받아 순서(index)가 있고, 중복 데이터의 입력이 가능하다. * 원소들을 간편히 원하는대로 출력하고 싶은 경우 오버라이딩 해줘야 하는 메소드 ArrayList의 조상클래스로 추상클래스인 AbstractCollection이 있는데, 이 클래스가 Object로부터 상속받은 toString을 오버라이딩 해두었고 이 메소드를 ArrayList가 물려받았다. ArrayList의 toString() 메소드는 [요소1, 요소2 요소3, , , ] 형태를 만들어주며 이후에 각 요소의 toString() 메소드를 호출해 반환받은 값을 위 자리에 대치해준다. 따라서 뭔가 원하는 출력 포..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baKfUb/btrDLWmpLlJ/AQ4RnGxtUP2oWarbkB9VZ0/img.png)
* 배열의 한계점 배열은 생성할 때 부터 크기가 고정되기 때문에 크기가 불분명한 다수의 객체를 저장하는데 문제가 있다. 또한, 배열은 중간의 객체를 삭제하게 되면 해당 인덱스 공간이 비어 이빨 빠진 옥수수가 될 수 있다. 이 때문에 새로운 객체를 저장하려면 어디가 비어있는지 확인하는 코드도 필요하다. * 컬렉션 프레임워크란? (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 {..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUsnWL/btrDInRpX0v/hwCSiElBg26MkCaceEHrZ1/img.png)
* 래퍼(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() 메소드는 두 객체의 주소를 비교하여..