250822 TIL

2025. 8. 22. 18:00·내배캠 끄적끄적/Today I Learned

📖 학습 계획, 배운 것

  • Java 기초 학습
    • 스코프, 형변환 ~ 배열까지 학습 계획
      • 스코프
        • 스코프를 사용하는 근본적인 이유로는 효율적인 메모리 사용과, 코드를 단순하게 만드는 과정에 용이하기 때문이다. 
          • 변수는 꼭 필요한 범위로 한정해서 사용하는 것이 좋음
        • 스코프 관점에서는 while문 보다는 for문을 사용하여 스코프 범위를 제한하는 것이 메모리 사용과 유지보수 관점에서 좋음
      • 형변환
        • 작은 범위에서 큰 범위로 대입하는 것은 허용함
          예시) int < long < double

        • 큰 범위에서 작은 범위로 대입하게 되면 아래와 같은 문제가 발생할 수 있음
          • 소수점 버림
          • 오버플로우
        • 이를 해결하기 위해 명시적 형변환을 통하여 큰 범위에[서 작은 범위 대입을 진행할 수 있다.
          intValue = (int) doubleValue; // 형변환
          
        • 오버플로우가 발생했다면 발생한 것 자체가 문제인 상황. 변수 타입을 변경하여 오버플로우 발생을 방지할 수 있도록 빠르게 조치를 취하는게 중요함!
      • Java에서의 계산은 다음과 같은 원칙이 있음
        • 같은 타입끼리의 계산은 같은 타입의 결과를 낸다
          • int + int 는 int를, double + double은 double의 결과가 나옴
        • 서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다.
          • int + long은 long + long으로 자동 형변환이 일어난다.
          • int + double은 double + double로 자동 형변환이 일어난다.
    • Scanner
      • 기존까지 학습했던 내용을 기반으로 사용자가 값을 입력하고 결과값을 도출해 내는 과정들을 진행할 수 있음
        • Scanner scanner = new Scanner(System.in); : Scanner 기능을 사용하기 위해 선언하는 개념, 객체와 클래스 학습 간 상세하게 학습 예정
        • scanner.nextLine() : 엔터 입력 전까지 문자를 가져옴
        • scanner.nextInt() : 입력을 int형으로 가져옴. 정수 입력 시 사용
        • scanner.nextDouble() : 입력을 double형으로 가져옴. 실수 입력 시 사용
    • 배열
      • 배열은 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것
        int[] students; //배열 변수 선언
        students = new int[5]; //배열 생성
        • 배열 변수를 선언한다고 해서 아직 사용할 수 있는 배열이 만들어진 것은 아님
          • 배열 변수를 사용하기 위해 배열을 생성하는 과정이 필요함
            위의 경우에는 int형 변수 5개를 다룰 수 있는 배열을 생성함
            배열을 생성할 때 내부 값들을 자동으로 초기화함
          • 변수와 사용법이 비슷하나 차이점이 있다면 [] 사이에 숫자 번호를 넣어 배열의 위치를 나타내는 숫자를 올바르게 넣어주면 됨
        • 배열 리펙토링을 통해서 중복을 제거하고 복잡성을 줄이고, 이해하기 쉽게 만들 수 있음

📝 학습 간 궁금한 부분

  • 프로그램의 기본이 되는 변수, 연산자, 조건문, 반복문을 통하여 어떻게 코드를 구성해야 하는가에 대한 예제 학습을 꾸준히 진행했고, Scanner를 통해 본격적으로 직접 입력을 통한 결과값을 도출해내는 코딩을 진행하며 조건문과 반복문을 어떻게 구성하고, 실제로 프로그램의 실행창에서 입력이 올바르게 되는지에 대한 확인을 했음

  • 진행하면서 값과 값 사이를 나타내게끔 결과값을 도출하기 위해 변수값 교환은 어떻게 해야할지에 대한 궁금증을 가졌고 아래와 같이 교환하는 과정들을 나타낼 수 있었음
    package scanner.ex;
    
    public class ChangeVarEx {
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int temp;
    
            temp = a;
            a = b;
            b = temp;
    
            System.out.println("a = " + a);
            System.out.println("b = " + b);
        }
    }
    


  • 배열이 필요한 이유?
    • 변수 선언 과정 중 선언한 변수의 양이 증가함에 따라 지속적으로 int형 변수 등 다양한 변수를 추가해야하는 경우가 발생함
    • 같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결하는 것이 배열

 


 

💡느낀점 및 보완 필요사항

  • 배열 선언 간에 주의해야 할 부분으로는 배열의 인덱스는 0부터 시작한다는 점을 유의하여 진행할 것

 

'내배캠 끄적끄적 > Today I Learned' 카테고리의 다른 글

250826 TIL  (4) 2025.08.26
250825 TIL  (4) 2025.08.25
250821 TIL  (2) 2025.08.21
250819 TIL  (2) 2025.08.19
250818 TIL  (3) 2025.08.18
'내배캠 끄적끄적/Today I Learned' 카테고리의 다른 글
  • 250826 TIL
  • 250825 TIL
  • 250821 TIL
  • 250819 TIL
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Github
    java
    git
    객체지향
    BEAN
    WebSocket
    실시간 데이터 처리
    웹소켓
    SpringSecurity
    thymleaf
    Java 문법기초
    Til
    MVC
    HTML&CSS
    Spriingboot
    jsp
    JPA
    Stomp
    for문
    다형성
    String.format
    RestTemplate
    프로세스와 쓰레드
    경합조건과 교착상태
    백엔드 기초
    객체지향프로그래밍
    백엔드 기초다지기
    네트워크 기초
    algorithm
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
250822 TIL
상단으로

티스토리툴바