알고리즘 문제를 풀다가, 백준의 자바 버전은 11인데 내가 로컬에서 사용하는 자바는 8 버전이었어서 버전 차이로 인해 문제가 틀린 걸까봐 찾다가 알게 된 내용들이다. 

 

 java 11은 8에 비해 달라진 점은 많지만 써보지도 않았는데 달달 외우는 건 의미없겠다 싶어 아는내용, 직접 써 본 개념들로만 정리해보려한다.


1. 문자열 함수 추가

 

2. java 명령어만으로 .java 파일 실행 가능 ( JEP 330 )


<1>

 자바는 다른 언어들에 비해 문자열 다루기가 쉽지 않은 언어이다. 근데 이번에 알게되고 나서 많이 좋아졌다는 생각이 들었다. 

 11에 이런 메소드들이 추가되었으니 지금은 17 버전이 제일 최신 버전이니까 훨씬 더 많은 문자열 함수가 있지 않을까 싶다.

  • strip() : 공백 제거 함수
  • stripLeading() : 앞 공백 제거 함수
  • stripTailing() : 뒤 공백 제거 함수
  • isBlank() : 공백 체크 함수, 문자열이 비어있거나 공백만 포함되어 있을 경우 true 반환
  • lines() : 문자열을 라인 단위로 쪼개는 스트림을 반환
  • repeat(n) : 문자열을 n번 반복

 

-> 문자열 문제를 풀어서 함수 사용에 익숙해져야겠다.

 

<2>

 자바 파일을 명령어 방식으로 실행시킬 때 꼭 컴파일 명령어 이후에 실행했었어야 했다. 근데 11 버전부터는 'java' 명령어로 한 번에 된다니 간편하고 좋은 것 같다. 즉 'java' 명령어 하나면 11 버전에서는 컴파일 + 실행 둘 다 한 번에 가능하다는 말이다.

(여기서, 컴파일이란? - 컴퓨터 언어에서 기계가 이해할 수 있는 기계 언어로 변환하는 과정을 말한다!)

  •  JEP(JDK Enhancement Proposal) : 자바 버전이 업그레이드 될 때 마다 향상된 기능을 정리해놓은 문서? 같다.
  • 자바런처가 java 소스 코드의 단일 파일로 제공되는 프로그램을 실행할 수 있도록 향상시킬 목적을 가지고 있다. -> java 언어 스펙을 변경하고자 함. 예를 들어 public static void main(String[] args) 메소드 필요성 제거와 같이 간단한 프로그램 작성방법을 수용할 수 있게 하기 위한 목적을 가지고 있다.

이걸 알게되고 나서 자바 언어 자체가 굉장히 까다롭고 지켜줘야할 부분이 많은 언어이기 때문에 버전이 업그레이드 될 수록 뭔가 좀 더 간단하게? 쉽게? 할 수 있는 방향을 추구한 것 같은 느낌을 받았다.

+ Recent posts