[Java] Java 컴파일 및 런타임 과정
·
🔻Language/Java
Complie Time❗complie time이란? 자바 소스 코드가 컴파일러에 의해 바이트 코드로 변환되는 시점으로 소스 코드의 문법이 올바른지 확인 하고, 변수 및 함수의 타입이 바르게 사용되었는지 확인한다. 또한 컴파일러가 가능한 최적화를 수행하여 효율적인 코드로 생성하게 된다. 이때 문법이나 타입, 참조 오류를 범하지 않도록 해야 한다. ❗컴파일 과정1. 자바 소스코드를 작성한다. 일반적으로 작성하는 자바 소스 코드를 작성한다.for (int i = 2; i < 1000; i++) { ... } 2. 자바 바이트 코드로 변환한다. 자바 바이트 코드란 하드웨어에서 실행할 수 있는 기계어가 아니라 JVM이 해석할 수 있는 중간 개념의 코드이다. 자바 컴파일러(javac)를 통해 소스 파일을 자바 바이..
[Java] JVM이란
·
🔻Language/Java
❗JVM이란?Java Virtual Machine자바 가상 머신으로 자바 애플리케이션을 실행하기 위한 가상화된 컴퓨터이며 자바가 OS에 종속되지 않고 플랫폼에 독립적으로 실행될 수 있도록 해주는 핵심 요소이다.이를 통해 자바 프로그램의 이식성과 효율성을 높일 수 있다.  ❗JVM 구조JVM은 바이트 코드를 실행하는 런타임 과정에서 필요한 환경을 제공한다. 주요 구성 요소로 Class Loader, Runtime Data Area, Execution Engine, Garbage Collector가 있고, 이 구성 요소를 거쳐 런타임이 실행된다.https://radiant515.tistory.com/591 [Java] Java 컴파일 및 런타임 과정Complie Time❗complie time이란?자바 소스..
[Java] 두 날짜 사이의 차이 계산하기
·
🔻Language/Java
두 날짜 사이의 간격을 나타내는 기능을 써보려고 한다! public class period { public static void main(String[] args) { LocalDate start = LocalDate.now(); //2023-02-24 LocalDate end = start.plusDays(5); //2023-03-01 System.out.println("start: " + start); //2023-02-24 System.out.println("end: " + end); //2023-03-01 Period period = Period.between(start, end); System.out.println("period.getDays(): "+ period.getDays()); //5 ..
[Java] 현재 날짜, 시간 불러오기
·
🔻Language/Java
import java.time.*; -> 먼저 날짜와 시간에 관련된 함수 import하기 //LocalDate: 날짜 LocalDate nowDate = LocalDate.now(); System.out.println(nowDate); //2023-01-03 System.out.println(nowDate.getYear()); //2023 System.out.println(nowDate.getMonth()); //JANUARY //LocalTime: 시간 LocalTime nowTime = LocalTime.now(); System.out.println(nowTime); //22:22:17.235381 //LocalDateTime: 날짜와 시간 LocalDateTime nowtDateTime = Loca..
[Java] 문자열 랜덤 생성
·
🔻Language/Java
임시 비밀번호나 특정 문자열이 아닌 랜덤으로 생성한 문자열이 필요할 때가 있다! 이 함수를 이용해서 랜덤 문자열을 생성했다 public static String randomString() { int leftLimit = 48; // numeral '0' int rightLimit = 122; // letter 'z' int targetStringLength = 10; Random random = new Random(); String generatedString = random.ints(leftLimit, rightLimit + 1) .filter(i -> (i = 65) && (i = 97)) .limit(targetStringLength) .collect(StringBuilder::new, String..
[Java] JAVA_HOME 설정 및 오류가 날 때
·
🔻Language/Java
1. JAVA_HOME 환경변수가 잘 설정되었는지 확인해본다 2. Path에 내가 사용할 자바 버전만이 아니라 다른 경로도 존재하게 되면 실행이 되지 않는다 C:\Program Files\Common Files\Oracle\Java\javapath --> 이런 것처럼 java경로가 중복이 되면 실행 안 됨 *현재 잘 실행되는 상태로 유지중 참고: https://oingdaddy.tistory.com/302 JAVA_HOME (환경변수) 설정이 잘 안되는 오류 조치 내가 새로운 JDK를 받아서 JAVA_HOME 설정을 변경했는데 제대로 반영이 안된 경우가 몇번 있었다. 물론 생각해보면 다 내 실수였다. 어떤 실수들을 저질렀나 한번 추억을 곱씹어 보자. 1. Path 설정 실 oingdaddy.tistory..
[Java] 객체와 클래스
·
🔻Language/Java
JAVA -> Object Oriented Programming(객체 지향 프로그래밍) ❗Class 정의: 객체를 정의해 놓은 것 -> 설계도 용도: 객체를 생성할 때 사용 Class = method(기능) + variable(속성) ❗객체 정의: 실제로 존재하는 것 -> 사물 또는 개념 용도: 객체가 가지고 있는 기능가 속성에 따라 다름 ❗객체와 인스턴스 객체: 모든 인스턴스를 대표하는 일반적인 용어 인스턴스: 특정 클래스로부터 생성된 객체 인스턴스화: 객체를 만드는 과정 클래스 --(인스턴스화)--> 인스턴스(객체) 출처: [자바의 정석]
_니지
'🔻Language/Java' 카테고리의 글 목록