일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- input
- 자바 thread 실행 순서 제어
- SpringBoot 2
- heroku
- Easy
- scanner
- JAVA11
- array
- 자바 스레드 실행 순서 제어
- 카데인 알고리즘
- 수학
- 사칙연산
- Kadane's Algorithm
- R
- hash table
- 자바입력
- Today
- Total
목록Java (38)
DeFacto-Standard IT
자바에서는 private, protected 접근제어자를 사용하여 클래스 내의 필드를 직접적으로 접근하는 것을 제한하는 방법을 주로 사용한다. 이 경우, public으로 지정된 setter/getter 메서드를 사용하여 주로 연산을 한다. 이러한 것을 캡슐화라고 하며, 내부적으로만 필요한 연산들이나 필드를 외부에 노출시키지 않는 것으로 데이터 감추기라고도 한다. 이러한 캡슐화는 여러가지 장점이 존재한다. 1. 외부에 불필요한 정보를 제공하지 않는다. 외부에 불필요한 정보를 제공하지 않는다는 것은, 프로그래머 입장에서 생산성을 향상시킨다. 예를 들면, 개발자가 어떤 프로그램을 개발하고 있다고 가정하자. 이 개발자는 기존에 구현되어있는 Collection 중 ArrayList라는 것을 활용하면 빠르게 개발이..
자바8부터 방식이 바뀌었다.--------------------------------------------자바8에서는 다음과 같이 변경한다. - Array(int[], Integer[]) to Collection(List)1. int[] to ListSystem.out.print("\n int[] to List \n"); int[] intArr = new int[3]; intArr[1] = 1; intArr[2] = 2; for (int i : intArr) System.out.print(i); System.out.println(); List integerListForInt = Arrays.stream(intArr).boxed().collect(Collectors.toList()); for (int i ..
프로그래밍을 하면서 Array나 Collection의 내용을 랜덤으로 바꿔야할 때가 있다. c언어에서는 rand? 함수를 썼던 것으로 기억하고 자바에서는 Random 클래스가 제공되어(혹은 Math.random()) 이것을 사용하여 랜덤 값을 뽑아낸다. 그러나 이는 단순히 랜덤값을 뽑아내기만 하므로, 랜덤으로 배치하거나 이미 나온 값을 제외하고 다른 값을 뽑아야 하는 등의 처리는 따로 해야한다. 자바의 API를 사용하면 쉽게 배열이나 리스트의 순서를 변경할 수 있다. Array의 경우 숫자나 문자를 랜덤으로 섞는 경우. 제비뽑기를 한다던가 할 때 사용할 것이고 Collection의 경우는 말그대로 Collection을 랜덤으로 섞어야 하는 경우일 것이다. 예를 들어서, 마피아라는 게임을 한다면 사용자들에..
* JDK 1.8부터 배열 컬렉션을 컨버팅하는 방법이 바뀌었다. 아래 글 참조바란다.https://defacto-standard.tistory.com/20 Arrays.sort()는 Primitive Type이나 Object Type의 Array를 정렬할 때 쓰고 Collections.sort()는 Collection의 List를 정렬할 때 쓴다. 기본적으로 둘 다 오름차순 정렬이고, 인자로서 Array 또는 List를 넣어주면 인자로 넘겨진 객체의 내용 자체가 바뀐다. 둘 다 static method이므로 Arrays나 Collections객체를 생성하는 것이 아니라 바로 호출한다. Arrays.sort(), Collections.sort() 모두 Comparator를 통한 커스터마이즈 정렬을 지원한다..
Overloading 한 클래스 내에서, 같은 이름의 메서드를 사용하지만 매개변수의 개수 또는 타입이 다른 경우이다. Method Signature가 서로 다른 메서드를 정의해야 하며, Method Signature가 같다면 컴파일 오류가 난다. Method Signature는 메서드를 구분하는 기준이다. 오버로딩의 조건 1. 메서드 이름이 같다. 2. 매개변수의 갯수 또는 타입 또는 순서가 달라야 한다. - 매개변수의 갯수, 타입이 같더라도 순서가 다르면 오버로딩이 가능하다. - 매개변수의 갯수, 타입, 순서가 같은 상황에서 매개변수의 이름이 다르다고 오버로딩이 되는 것은 아니다. 위 2개 조건을 Method Signature라고 한다. 즉, 오버로딩은 함수명이 같지만 Method Signature가 ..
클래스 메서드는 static method라고 한다. static 키워드를 붙인 method이다. 반대로 static 키워드를 붙이지 않으면 인스턴스 메서드라고 한다. static키워드를 붙이면 인스턴스를 생성하지 않아도 클래스명.메서드명과 같이 호출할 수 있다. static 키워드에 대한 설명은 다음과 같다. 1. 멤버변수 중 모든 인스턴스에 공통적으로 사용하는 것들에 사용 생성된 각 인스턴스는 독립적이므로, 각 인스턴스 변수들은 서로 다른 값을 가진다. 그러나 한 클래스의 메서드의 호출 횟수라던지 (여러 인스턴스라도 같은 클래스라면 증가)의 경우에는 모든 인스턴스에서 같은 값을 가져야 하므로 static변수를 설정해야 한다. 2. static 변수는 인스턴스를 생성하지 않아도 사용할 수 있다. 클래스가..
- Static 영역프로그램이 시작될 때 확보, 종료까지 배치가 고정.static 키워드가 붙은 전역변수 저장 - Heap 영역프로그램 실행 시 동적으로 확보하기 위한 영역.시작 시 일정 영역이 확보되고, 필요한 경우 프로그래머가 어플리케이션에 할당(new 키워드).GC에 의해 메모리가 관리된다.new 키워드로 만들어진 실제 객체, 배열 등이 저장된다. - Stack 영역스레드당 하나씩 할당. 서브루틴의 호출 제어를 위해 사용된다.서브루틴의 인수, 지역변수, 리턴주소가 저장.Primitive Type의 변수는 실제 값이 저장되며, Reference Type의 변수는 Heap 영역의 주소값이 저장된다. Book b = new Book(); b는 지역변수, 즉 레퍼런스이고 new Book()에 의해 생성된 ..
0.0