Study/java 58

[Java] 난수 생성 및 범위 지정(Math.random, java.util.Random 사용)

자바에서 난수를 생성하는 방법은 대표적으로 Math.random() 메서드를 사용하는 방법, java.util.Random 클래스를 사용하는 방법 두가지가 있습니다. Math.random난수 생성 기본 사용법double random = Math.random();System.out.println("random = " + random); // 0.0 ~ 1.0 사이의 난수 생성 Math.random() 메소드를 사용해서 난수를 생성하면 0.0과 1.0 사이의 난수가 생성됩니다.1.0은 포함되지 않습니다. 범위 지정 방법for (int i = 0; i  1~10 범위의 난수를 생성하는 예제 코드입니다.    java.util.Random난수 생성 기본 사용법Random random = new Random();..

[Java] 2차원 배열 선언 및 초기화, 값 넣기, 동적 할당 방법

2차원 배열이란 배열 안에 배열이 있는 형태의 자료구조입니다. 선언 및 초기화자바에서 2차원 배열을 선언하고 초기화하는 방법은 다음과 같습니다.int[][] matrix = new int[5][2]; 이 배열은 5개의 행과 2개의 열을 가진 2차원 배열입니다.만약에 괄호를 3개를 사용한다면 3차원 배열이 됩니다.그 외에도 괄호를 사용한 개수만큼 n차원 배열로 생성이 됩니다. 값 등록, 조회, 삭제int[][] matrix = new int[2][2];matrix[0][0] = 1;matrix[0][1] = 2;matrix[1][0] = 3;matrix[1][1] = 4;System.out.println("Arrays.deepToString(matrix) = " + Arrays.deepToString(ma..

[Java] String + 연산자, concat, append 문자열 합치기

자바에서 문자열을 합치는 여러가지 방법을 설명드리겠습니다. + 연산자 사용가장 간단하게 문자열을 합치는 방법은 + 연산자를 사용하는 방법입니다.String s = "I Love " + "Java"; 보기에는 간단하지만, 많은 수의 문자열을 합쳐야할 때는 메모리를 많이 사용하기 때문에 비효율적입니다.Java는 + 연산자로 문자열을 합칠 때마다 새로운 문자열 객체를 생성합니다.그래서 성능에 좋지 않은 영향을 줄 수 있습니다. StringBuilder, StringBuffer append 메소드 사용성능이 중요하다면 StringBuilder나 StringBuffer를 사용하는 것이 좋습니다.// I Love JavaStringBuilder sb = new StringBuilder("I Love ");sb.ap..

[Java] JVM(Java Virtual Machine 자바 가상 머신)이란?

JVM이란 무엇인지, JVM의 특징과 구조, 동작 원리에 대해 정리하였습니다. JVM이란?JVM(Java Virtual Machine)은 컴퓨터가 자바 프로그램을 실행할 수 있게 해주는 가상 머신입니다.Java 프로그램이 실행되면 JVM은 Java의 바이트 코드(.class 파일)를 읽고 하드웨어에 의해 직접 실행할 수 있는 머신 코드로 변환합니다.이로 인해, 한번 쓰고 어디서든 실행한다(Write Once, Run Anywhere)라는 자바의 표어에 맞게 다른 환경이라도 자바 코드를 수정하지 않고 원활하게 실행할 수 있습니다. JVM의 특징플랫폼 독립성JVM은 하드웨어나 OS의 의존하지 않고 다양한 환경에서 동일한 바이트코드를 실행할 수 있게 합니다. 성능자바는 JVM을 통해 바이트코드를 해석하 과정을..

[Java] 배열(Array) 선언 및 초기화, 사용 예제

배열이란?배열은 동일한 타입의 여러 값을 저장할 수 있는 자료구조입니다.Java에서는 배열을 선언하고 초기화하는 방법이 여러 가지가 있으며, 올바르게 사용하지 않으면 예외가 발생할 수 있습니다. 배열 선언 및 초기화int[] ints1 = new int[5];int int2[] = new int[5]; int[] ints1: 타입이 먼저 나오고 변수명이 나오는 형태입니다.int int2[]: 변수명 뒤에 대괄호를 붙이는 형태입니다. 타입[] 변수명 부분이 배열을 선언한 부분이고, new 타입[길이] 부분이 초기화한 부분입니다.위의 코드는 int 타입의 배열을 길이 5로 초기화하여 생성하였다는 의미입니다. 배열 초기화배열을 초기화할 때 길이를 지정하지 않으면 컴파일 오류가 발생합니다.그래서 길이를 꼭 지정..

[Java] List 정렬 방법 정리

List를 정렬하는 방법에 대해 설명드리겠습니다. sort 메소드 사용법List의 메소드 중에 sort() 메소드가 있습니다.sort 메소드를 사용할 때 정렬 기준을 정해주면 원하는대로 정렬이 가능합니다. 기본적으로는 다음과 같이 사용합니다.import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(9); numbers.add(2); numbers.add(4); numbers.add(..

[Java] 인터페이스(Interface) 특징, 장단점, 사용법 및 예제

자바에는 인터페이스(interface)가 있습니다.인터페이스란 무엇인지 아래와 같이 정의하고 있습니다.인터페이스는 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형이다. 그래서 일반적으로 인터페이스에는 메소드만 선언되어있고, 해당 메소드의 구현은 인터페이스를 구현한 클래스에서 진행하게 됩니다. 특징1. 추상 메서드만으로 구성되어 있습니다.그래서 인터페이스를 구현한 클래스는 인터페이스에 있는 모든 메소드를 구현해야 합니다.(Java 8버전부터는 상수와 default 메소드, static 메소드, 추상 메서드도 사용할 수 있게 되었습니다) 2. 다중 상속이 가능합니다.한 클래스에 여러 인터페이스를 상속받으면 여러 기능을 수행할 수 있는 클래스로 만들 수 있습니다.추상클래스나 일반 클래스는 다중..

[Java] LocalDate, LocalDateTime 날짜, 시간 더하기 및 빼기

자바의 LocalDate와 LocalDateTime을 사용해서 날짜 및 시간을 더하거나 뺀 결과 값을 구하는 방법에 대해 설명드리겠습니다. 날짜 및 시간 더하기 plus 메소드를 사용하면 날짜나 시간을 편리하게 더할 수 있습니다. LocalDate nowDate = LocalDate.now(); LocalDate plusOneDay = nowDate.plusDays(1); LocalDate plusOneWeek = nowDate.plusWeeks(1); LocalDate plusOneMonth = nowDate.plusMonths(1); LocalDate plusOneYear = nowDate.plusYears(1); LocalDate plusThreeMonths = nowDate.plus(3, Chro..

[Java] 현재 날짜와 시간 구하기 및 형식 지정, 문자열 변환

자바에서 현재 날짜와 시간을 구하는 방법과 날짜 및 시간 형식을 지정해주는 방법에 대해 설명드리겠습니다. 현재 날짜, 시간 구하기LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Date, Calendar에서 오늘 날짜를 가져오는 방법입니다.import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.ZonedDateTime;import java.util.Calendar;import java.util.Date;public class NowDateTime { public static void main(String[] args) { ..

[Java] Optional - 개념 및 사용법

Optional은 NullPointerException을 방지하기 위해 많이 사용합니다.자바로 코딩을 하다 보면 NullPointerException 자주 볼 수 있는데, 그럴 때 Optional을 사용하면 어느 정도 예방이 가능합니다. 예를 들면 다음과 같은 null 조건을 Optional로 대체할 수 있습니다.String nStr = null;if (nStr == null) { nStr = "not null!";}//-------String nStr = null;String oStr = Optional.ofNullable(nStr).orElse("not null!");System.out.println(oStr);두 코드 다 문자열 변수의 값이 null이면 변수에 "not null!"이라는 문자열..

728x90