본문 바로가기

Java152

[Java] 시간과 날짜 클래스(LocalDate, LocalDateTime,LocalTme) Java에서는 시간과 날짜 관련 클래스를 제공하고 있으며, 크게 Date, Calendar, Time로 나눌 수 있습니다. 자바에서는 현재는 Date, Calendar 클래스를 사용하는 것을 지양하고 있으며, Date 클래스에서 정의된 생성자 및 메서드는 Deprecated, 앞으로 지원하지 않거나 문제가 있을 수 있으니 사용하지 말라는 의미입니다. 이를 대체해서 사용 가능한 Java.time 패키지의 LocalDate, LocalDateTime,LocalTme 메서드를 제공하고 있습니다. Java.time 패키지 LocalDate 날짜 클래스 현재 날짜 출력 now() 메서드 LocalDate curDate = LocalDate.now(); System.out.println( curDate ); // .. 2022. 10. 10.
[Java] 가상 메서드 / 상속에서 상위(부모) 클래스와 하위(자식) 클래스의 동일한 이름의 메서드가 있을 때 / 상속 메서드 호출 순서 가상 메서드란? 상속에서 상위 클래스와 하위 클래스에 같은 이름의 메서드가 존재할때 호출되는 메서드는 인스턴스에 따라 결정됩니다. 다시 말해 선언한 클래스형이 아닌 생성된 인스턴스를 기준으로 메서드를 호출하는 것입니다. 이렇게 인스턴스의 메서드가 호출되는 기술을 '가상 메서드(virtual method)' 라고 합니다. 클래스는 멤버 변수와 메서드로 이루어져 있으며, 클래스를 생성하여 인스턴스가 만들어지면 멤버 변수는 힙 메모리에 위치합니다. 멤버 변수가 사용하는 메모리와 메서드가 사용하는 메모리는 다릅니다. 변수는 인스턴스가 생성될 때마다 새로 생성되지만, 메서드는 실행해야 할 명령 집합이기 때문에 인스턴스가 달라도 같은 로직을 수행합니다. 즉, 같은 클래스의 인스턴스를 생성한다고 해서 메서드도 여러 .. 2022. 10. 10.
[Java] int와 Integer 배열 정렬(Sorting) / 오름차순 / 내림차순 / Java에서는 배열 안 요소들을 오름차순 또는 내림차순으로 정렬이 가능하게끔 메서드를 제공하고 있습니다. sort()는 Comparable에 의해 리턴되는 값을 비교하여 오름차순 또는 내림차순으로 배열을 정렬합니다. int[] 배열을 Integer[] 객체 배열로 변환 int[] arr1 = {1, 5, 4, 2, 3}; Integer[] arr11 = Arrays.stream( arr1 ).boxed().toArray(Integer[]::new); Integer[] 객체 배열을 int[] 배열로 변환 Integer[] arr1 = {1, 5, 4, 2, 3}; int[] arr11 = Arrays.stream( arr1 ).mapToInt(Integer::intValue).toArray(); //or .. 2022. 10. 8.
[Java] 헷갈리는 내용 다시 정리 / 변수 / 클래스 자료형 /인스턴스 참조 변수 / 클래스 형변환 / 다운 캐스팅 / 추상 클래스 / 추상 메서드 / 인터페이스 등 변수란? Java에서는 변수를 사용하기 위해서 어떤 형태의 자료를 저장할 것인지 명시해줘야합니다. 예를 들면, 사람의 나이를 저장하려면 정수 타입( 1살, 2살, 3살 .... 50살..)이라던지, 이름을 저장하려면 문자 타입(손흥민, 박찬호, 이순신 ... 등 )를 써야겠죠.. 이 형태를 변수의 '자료형'이라고 부릅니다. 위와 같이 변수의 자료형을 정해주었다면 변수의 이름도 정해주어야합니다. Java에서는 변수의 자료형을 선택하고 이름을 정하는 것을 '변수를 선언한다'라고 합니다. 변수는 값을 넣을 수 있는 빈 그릇과 같다고 생각하시면 됩니다. int nameAge = 10; 위와 같은 내용을 설명할 때는 nameAge변수 선언과 동시에 값을 대입(초기화)했다고 말합니다. 초기화는 변수에 처음 값을 대.. 2022. 10. 7.
[Java] String 클래스(객체) 차이 / new String() vs "" / equals() / == 연산자 String 객체에 대해서 아래에 포스팅에도 자세히 나와있습니다. 참고해 주세요. [Java] String / StringBuffer / StringBuilder String VS StringBuffer/StringBuilder String 클래스는 불변성의 속성을 가지며, 문자열의 추가, 수정 등에 따라 객체가 생성 StringBuffer/ StringBuilder는 가변성의 속성을 가지며 문자열의 추가, 수정 등에.. starting-coding.tistory.com String으로 클래스를 생성할 때, 아래처럼 ""(큰 따옴표)로 생성하는 방법을 주로 사용합니다. String str11 = "exit"; 이번에는, new 예약어를 통해 String 객체를 생성해보겠습니다. String str21 =.. 2022. 10. 6.
[Java] ArrayList() / .add() / .toString() / .size() / .get(int Index) / set() / remove(int index) / clear() / indexOf(Object o) / 중복없는 로또 번호 만들기 ArrayList는 자바의 List 인터페이스를 상속받은 여러 클래스 중 하나입니다. 일반 배열과 동일하게 연속된 메모리 공간을 사용하며 인덱스는 0부터 시작합니다. 배열과의 차이점은 배열은 크기가 고정인 반면 ArrayList는 크기가 가변적으로 변합니다. 내부적으로 저장이 가능한 메모리 용량(Capacity)이 있으며 현재 사용 중인 공간의 크기(Size)가 있습니다. 만약 현재 가용량(Capacity) 이상을 저장하려고 할 때 더 큰 공간의 메모리를 새롭게 할당합니다. 자바의 ArrayList를 활용하는 방법을 알아보겠습니다. 1. ArrayList 생성 - 초기 용량(Capacity) 생략 가능 ArrayList al1 = new ArrayList(); - 초기 용량(Capacity) 설정 - 1.. 2022. 10. 6.
[Java] Scanner 클래스를 활용한 console에서 단을 입력 받으면 구구단 출력하는 프로그램 Scanner 클래스에 대해서는 이전 포스팅을 참고해주세요. [Java]Scanner 클래스 Scanner의 특징 첫번째, 예를 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next()나 nextLine() 메서드를 사용하고 int(정수)로 입력받고 싶다면 nextInt() 메서드를 사용해서 입력을 받으 starting-coding.tistory.com 아래와 같이 단수를 입력하면('1단', '2단', ..... n단) 출력해주는 프로그램을 만들고자 합니다. 1. Scanner 클래스 생성 Scanner scan = new Scanner( System.in ); 2. console을 통해 입력받은 내용을 대입 할 변수 선언 후 초기화 String msg = ""; 3. 무한루.. 2022. 10. 5.
[Java]Scanner 클래스 Scanner의 특징 첫번째, 예를 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next()나 nextLine() 메서드를 사용하고 int(정수)로 입력받고 싶다면 nextInt() 메서드를 사용해서 입력을 받으면 자동적으로 해당 자료형으로 입력된다. 두번째, Scanner를 사용할 때는 꼭 import를 통해 java.util.Scanner를 호출해야한다. 아래 그림과 같이 Ctrl + Shift + O를 눌러서 자동 import 기능을 사용하면 편리하다. 세번째, Scanner의 입력 메서드는 대부분 공백과 개행(' ', '\t', '\r', '\n' 등등..)을 기준으로 읽는다. Scanner 사용하기 위에서 업근했듯이 Scanner 클래스 사용하기 위해서는 import.. 2022. 10. 5.
[Java] Math.random() 메서드와 비슷한 Random 클래스 / Random(Seed) / Seed란? Math.random() 에 대한 내용은 이전 포스팅을 참고해주세요. [Java] Math.ceil() 올림 / Math.floor() 내림 /Math.round 반올림 / Math.pow() 지수 / Math.random 난수( 0 2022. 10. 5.