본문 바로가기

자바12

자바 파일의 실행과정 - 초급 이번에는 자바 프로그램의 실행에 대한 전체적인 개념만 잡고 넘어가는 것으로 하고, JVM에 대해서는 참고자료의 아티클을 통해 조금 더 자세하게 정리해보도록 하자. 1. .java 파일의 컴파일: .class 파일 javac vendingMachine.java javac vendingMachineMain.java → vendingMachine.java, vendingMachine.class / vendingMachineMain.java, vendingMachineMain.class 파일 생성 Class 파일은 바이트코드로 이루어져 있으며, 바이트코드는 플랫폼 독립적이므로, 플랫폼에 관계없이 일정하게 번역된다. 바이트코드는 바이너리 코드로 되어있지만, 소프트웨어 단에서 해석이 가능하므로 기계어보다는 추상화되.. 2023. 11. 24.
자바에서의 객체 관리 1: 인자 전달 데이터를 주고받는 데에는 값으로 전달(Call by value), 포인터로 전달(Call by pointer), reference로 전달(Call by reference)이 존재한다. C 언어에서는 값으로 전달하거나 포인터로 주고받는 방식을 구현할 수 있다. 또한 C++에서는(추가로) 참조 자료형을 int&, double&과 같이 기본 자료형에 &를 붙여서 참조 자료형으로 사용할 수도 있다. 자바에서는 모든 것이 객체이므로(객체 지향 언어는 객체간의 상호작용을 중시한다.) 이 객체를 모조리 복사해서 전달하는 것은 비효율적이다. 따라서 기본적으로 메서드에 인자를 전달하거나 리턴 값을 받을 때에 대부분 reference로 전달하는 방식으로 인자가 전달된다. 자바에서 메서드를 호출할 때 매개변수로 지정한 값을.. 2023. 11. 22.
반복문의 라벨 for 문에 라벨링을하여 다중 반복문을 조절할 수 있다. Example 1 public class LabelExam { public static void main(String[] args) { outter: for(int i = 0; i < 3; i ++) { for(int k = 0; k < 3; k++) { if(i == 0 && k == 2) continue break; System.out.println(i+", "+k); } } } Example 2 public class LabelExam { public static void main(String[] args) { outter: for(int i = 0; i < 3; i ++) { for(int k = 0; k < 3; k++) { if(i ==.. 2023. 11. 22.
Java의 Switch: 14 이후 추가된 기능 들어가기 전에 JDK 14에 들어서면서 Switch Expression이라는 표현이 추가되었다. Switch Statement는 전통적인 switch 구문으로, 여러가지 경우를 검사하고 지시를 수행하는 동작을 수행한다. 값을 반환하지 않고 주로 프로그램의 흐름을 제어한다. 반면 14에서 추가된 switch expression은 각 case 값을 반환하며, 이 값을 변수에 할당할 수 있다: Expression과 statement의 차이점은 다른 문서에서 살펴보자. 1. Arrow Labels 원래 java의 switch는 case문의 종료를 break를 통해서 진행했어야 했다: switch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println.. 2023. 11. 22.
우테코 프리코스 2: java-racingcar 왜 다 MVC 모델로 하는건데ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 다시 짤 수도 없고... 테스트 코드나 공부해봅시다 https://github.com/dearmysolitude/java-racingcar-6 여러 차의 이름을 입력받고, 모든 차에 대해 각각 주사위를 굴려 4 이상이 나오면 전진하도록 하여 입력된 횟수대로 n번 수행하여 우승자를 출력하는 어플리케이션. 과제는 간단하지만, 추가적으로 테스트 코드를 작성하고, 메서드를 간략화하여 indentation을 2 이하로 하는 요구사항이 추가되었다. 구현하고 보니 테스트 코드를 작성하면서 구현하는게 나았을지도 모르겠다는 생각을 했다(하지만 테스트 코드를 작성해 보는게 처음이다보니 먼저 손 대기가 쉽지 않았다😂). ** 구현 기능마다 커밋하라는 지시사항을 읽.. 2023. 11. 1.
00 | Java의 동작: Hello.java 기초(노션) JAVA는 객체 지향 언어. 플랫폼에 독립적이다. 느리지만, 버전 업 되면서 다른 언어들의 장점을 흡수하고 있다.(모던 자바) 람다: 함수형 프로그래밍 Stream API: 람다 표현식과 메서드 참조 등의 기능과 결합하여 매우 복잡하고 어려운 데이터 처리 작업을 쉽게 조회하고 필터링하고 변환하고 처리할 수 있도록 한다. 병렬 프로그래밍: 여러 개의 CPU 코어에서 작업을 배분해서 동시에 작업을 수행한다. 클래스 class 이름은 파일 이름과 동일해야 한다. 첫 글자는 무조건 대문자. public class Hello{ ... } 메서드 클래스는 필드(Field)와 메서드(Method)를 가질 수 있다. 프로그램 실행이 시작되는 시작점: main 메서드 public static void mai.. 2023. 10. 4.