본문 바로가기

반응형

컴퓨터/JAVA

(20)
자바 고급 스터디 4. 자바 컴파일 되는 과정 자바 고급 스터디 목록 공부 시간 : 2021/04/04 14:00 ~ 15:15 4주차. 자바가 컴파일 되는 과정에 대해서 설명해보세요. 자바 컴파일 이란? 자바로 작성된 코드를 어셈블리어 -> 기계어(binary code형식)으로 변환해주는 과정이다. 바이너리 코드, 어셈블리 언어, 고급언어 binary code : 10001011101101 과 같이 0과 1로 이루어진 코드 한국어, 영어, 프랑스어 등과 같이 운영체제에 따라 다르다. assembly language : add 3, 5, result 와 같이 이루어진 코드 기계어와 1:1로 매칭됨. binary code로 변환하는 과정이 필요함. 고급언어 어셈블리언어 보다 사람이 이해하기 쉬운 방식으로 개선된 언어 인터프리터, 컴파일러를 사용하는 언..
자바 고급 스터디 3. java JVM구조 자바 고급 스터디 목록 공부 시간 : 2021/03/25 22:30 ~ 25:25 3주차. JVM구조에 대해서 설명, 자바 버전에 따라 어떻게 바뀌는가? jvm의 탄생배경 c, c++ 와 같은 언어들은 타겟 플렛폼(운영체제 + cpu아키텍쳐)에 종속적으로 작동함. ex) 리눅스에서 컴파일하면 윈도우에서 실행불가능 자바 컴파일러에 의해 변환된 java 바이트코드(.class)는 타겟플렛폼에 의존하지 않고 JVM 위에서 작동된다. JVM은 타겟플렛폼에 의존함. (window용 JVM, mac용 JVM...) jvm 구조 1. class loader : 자바는 어플리케이션 시작시 한번에 로드되지 않고, 필요할때 마다 로드된다. (lazy loading) 런타임시에 클래스를 동적으로 jvm에 로드하는 역할을 한..
자바 고급 스터디 2. wrapper class, primitive type(기본형), 일급 콜랙션 자바 고급 스터디 목록 공부 시간 : 2021/03/15 00:00~01:30 2주차. Wrapper Class에 대해서 설명해보고 Wrapping을 함으로써 얻는 이점과 일급콜랙션에 대해서 사용 예시를 들며 설명해보세요. wapper class를 이해하기 전에 기본형(primitive type)에 대해서 알아야한다. 자바에서는 기본형에는 int, char, byte, boolean, short, long, float, double 총 8가지가 있다. wrapper class란 위 8가지 기본형 타입을 객체화 한 것이다. 여기서 문제 하나 풀어보자. int a = 1; Integer b = 1; a와 b는 각각 메모리를 얼마나 사용할까? 결과를 말하면 a는 4byte, b는 16byte를 차지한다. a는..
자바 고급 스터디 1. 스트림, 람다 (stream, lamda) 자바 고급 스터디 목록 공부 시간 : 2021/03/09 02:00 ~ 03:40 / 2021/03/10 12:00 ~ 12:30 / 2021/04/07 05:30 ~ 05:55 1주차. Stream, lamda에 대해서 아는대로 설명해보세요. 스트림과 람다는 자바8에서 새롭게 생긴 기술 중 하나이다. 주제는 아는대로 설명하시오.. 이지만 이미 알고 있는 기본적인 사용 방법은 생략하고 고오급 내용이라 생각되는 부분만 정리해보려고 한다. stream의 작동순서 list에 "aaa" , "aa"가 있을때 list.stream() .filter(str->{ System.out.println("filter() 작동"); return str.contains("a"); }) .map(str->{ System.out..
자바 고급 스터디 주제 정리 최근 1~2년 정도간 매일매일 자바를 사용하고 있다. 딱히 사용하는데 문제는 없었고, 문제가 생겨도 어떠한 키워드로 검색을 해야할지 판단할 정도의 수준까지는 달성했다고 생각한다. 하지만 최근 좋은 회사에 다니는 고수 개발자분들과 대화를 하는 상황이 종종 생기는데, 그분들의 대화를 듣다보면 내가 사용하고 있는 자바와 조금은 다른 것 같다는 생각이 들곤했다. 그래서 좀 더 deep 하고 고오오~~급 내용들을 공부해야 겠다는 생각을 하였고 자바 고급내용 스터디를 구성하였고 주제를 정해보았다. 주제는 평소 자바를 사용하면서 궁금했지만 깊이있게 공부하지 않았던 부분과 현직 개발자분들께서 추천해주신 주제, 구글에 자바고급이라고 치면 공통적으로 많이 나오는 주제들로 선정하였다. 아래 목록에서 1번부터 1주일에 하나씩..
java 배열 복사, String 비교 할 때 주의점!!! String 비교시, 배열 복사시 주의해야 할 점에 대해서 알아보겠습니다. int a = 1; int b = a; System.out.println( a == b ); 위 코드를 실행하면 true가 출력됩니다. String a = "hi"; String b = "hi"; String c = new String("hi"); System.out.println(a == b); System.out.println(a == c); 위 코드의 실행결과는 어떻게 나올까요? 직접 해보시면 알겠지만 true false가 나오게 됩니다. int[] a = {1,2,3}; int[] b = a; int[] c = {1,2,3}; System.out.println(a == b); System.out.println(a == c)..
코딩테스트를 위한 자바(java) 비트마스크 - 6 정수의 이진수 표현을 자료 구조로 쓰는 기법을 비트 마스크(bitmask)라고 부른다. 엄밀히 말하면 자료구조는 아니지만 코딩 테스트를 할 때 유용하게 사용 가능하다. 비트 마스크를 알기 전에 비트 연산에 대해서 알 필요가 있다. 비트 마스크를 이용하면 얻을 수 있는 장점이 3가지가 있다. 더 빠른 수행 시간 더 간결한 코드 더 작은 메모리 사용량 ex) { 1,3,5,7,9 }를 원소로 가지는 집합을 표현할 때 방법 1 : int[] arr = { 1,3,5,7,9 }; 방법 2 : 101010101(2) (비트마스크) N비트 일 때 오른쪽부터 순서대로 0번째 비트, 1번째 비트, 2번째 비트... N-1번째 비트 공집합 0 꽉 찬 집합 int full = (1
코딩테스트를 위한 자바(java) 비트연산 - 5 비트 마스크를 알기전에 미리 공부해야 할 비트연산에 대한 내용이다. 잘 숙지 해놓으면 비트 마스트를 이해하는데 도움이 될 것이다. 논리곱 AND & 두 비트가 모두 1일때 1을 반환 논리합 OR | 두 비트 중 하나라도 1이면 1을 반환 반전 ~ 비트가 1이면 0, 0이면 1을 반환 배타적논리합 XOR ^ 두 비트가 같으면 0, 다르면 1을 반환 오른쪽 시프트 연산자 >> 오른쪽으로 이동 후 왼쪽에는 0을 삽입 왼쪽 시프트 연산자 3);// 00010오른쪽으로 3칸 이동 // d == 2 byte a = 5; // 101 byte b = (byte) (a

반응형