이런저런 문제들을 풀면서 실전 위주로 자바를 빠르게 공부 해볼 예정이다. c++ map<int,int> hashMap; hashMap.count({x}) hashMapx = y; hashMapx return {x,y} > java HashMap<Integer
문제를 풀고 웹개발을 하면서 자바라는 프로그래밍 언어를 사용하는게 익숙했지만 막상 이론적인 부분이랑 자세하게 다루는 방법을 C++처럼 경험치로 쌓아올린게 아니라 정말 야매로 배운거기때문에 천천히 정리해본다. 자바 프로그램은 C++을 배웠을때처럼 컴파일러를 사용하는 언어
연산자가 모두 숫자일 경우 덧셈 연산 연산자 중 하나가 문자일 경우 나머지 연산도 문자열로 자동 변환되고 문자열 결합 연산 덧셈 연산은 왼쪽부터 순차적으로 진행한다. 먼저 수행되는 연산이 String을 포함한 연산이라면 뒤에도 쭉 String 연산으로 진행된다. 굉장히
배열 선언 - 생성 배열의 선언은 많이 문제를 풀면서 많이 해봤지만 생성 하는 부분에서 조금 몰랐던 부분을 몇개 알아내서 적용해보니 아래와 같다. 결국 배열을 일반적으로 생성하는거 외에도 값을 지정해서 사용하는 경우도 많을거다. 아니면은 바로 배열을 반환하는 문
데이터의 흐름을 만들어 준다. 컬렉션 형태로 구성된 데이터를 람다로 이용해 간결하고 직관적으로 프로세스를 할 수 있게 합니다. For, while 등을 이용하던 기존 loop을 대체한다. 일회성으로 한번 사용하고 나면 사용할 수 없다. 위에 언급된 3가지 방법으로 St
오랜 시간동안 기본을 놓치고 계속 미뤘던 자바 공부를 시작한다. Java는 항상 환경 세팅이 너무 스트레스 였는데 그동안 원리도 생각안하고 접근했던게 부끄럽다. 개념 정리부터 천천히 시작한다.
이번 포스팅은 왜 JVM이 필요한지에 대해 적을 예정이고 바이트 클래스가 무엇인지, 그리고 실행 과정은 어떤지에 대해 내용을 정리할 것이다. 많은 내용은 다음 블로그에서 보고 참고했다. 참고 블로그 JVM이 필요한 이유 JVM이 필요한 이유를 알기 위해서는 J
JVM 의 기본과 Java 파일이 어떤식으로 실행이 되는지 저번 포스팅에서 언급 했으니, 이번 포스팅에서는 JVM 내부 구조에 대해서 더 자세하게 적을 예정이다. 대부분의 내용은 JVM 내부 구조 여기에서 참고 하였다.
이번 포스팅에서는 JVM의 런타임 데이터 영역 (Runtime Data Area) 대해 더 상세하게 작성하겠다. 참고 블로그, 많은 내용은 이곳에서 참고 했다. 런타임 데이터 영역은 JVM의 메모리 영역으로, 자바 애플리케이션을 실행할때 사용되는 데이터들을 적재하는 여
코딩 테스트에서 자주 사용되는 Java API 를 작성 해본다. 원래 항상 코딩 테스트 일정이 잡히면 엄청 급하게 외우기 식으루 주먹구구식으로 했었는데 이제야 좀 정리해보고 이해할 정도에 여유가 생겨서 도전 해본다. 대부분의 내용은 자바 API(https://
시리얼 컬렉터는 싱글 스레드로 GC 가 실행이 되던 초기 모델이다. 이때 중요한건 하나의 GC 스레드가 작업을 모두 처리한다는 의미보다는 가비지 컬렉션이 시작되면 '회수가 완료 될 때까지 다른 모든 작업 스레드가 멈춰 있어야 한다' 는 점이다. 그리고 이것을 'Stop
대용량 메모리 기기 대상 배포 전략상황 : 하루 페이지 뷰가 15만의 웹 사이트. 모든 하드웨어 자원을 온전히 혼자 사용하고 있기 때문에 여유로운 상황. 관리자는 -Xms 와 -Xms 매게 변수를 지정하여 자바 힙 크기를 12GB 로 고정. 하지만 서버 실행 효율이 기
자바 언어를 배울 떄 아마 첫번쨰로 배우는 내용 중 하나같다. 언어 독립성을 보장하는 핵심은 가상 머신과 바이트코드 저장 방식이다.어떠한 프로그래밍 언어에 종속되는 것이 아닌, '클래스 파일' 이라는 특정한 바이너리 파일 형식에만 의존함으로서 종속성을 벗어날 수 있다.
톰캣과 같은 주류 자바 웹 서버는 자체 정의한 클래스 로더를 사용한다. 그리고 대표적인 이유는 아래와 같다. 똑같은 서버에 배포하더라도 클래스 라이브러리는 웹 애플리케이션 별로 격리하는 것이 좋다. 애플리케이션마다 필요로 하는 버전은 다를 수 있기 때문이다. 서버는 보
javac 컴파일러는 순수하게 자바로 작성된 코드다. 기본적인 지식에 포함되지만 javac 는 지금까지 배운 JVM 과 내부 메모리 구조, 단계를 거치기 전에 자바 파일을 .class 형태의 클래스 파일로 컴파일 해주는 역할을 가지고 있다. 크게 3가지의 단계를 거치게
책에 마지막 장에 와서 내용을 정리한다. 개인적으로 자바와 관련된 깊은 지식을 배운거 같다. 이해하지 못한 내용이 더 많았지만 컴파일러의 내부 구조, GC 와 관련된 세부 동작, 그리고 덤프와 같은 내용을 학습해서 JVM 기반의 서버 개발자로서 성장한 느낌이다. 자바