티스토리

Gallery-K
검색하기

블로그 홈

Gallery-K

gallery-k.tistory.com/m

sso02027@naver.com keigallery379@gmail.com

구독자
71
방명록 방문하기
공지 [sso02027@naver.com]⋯ 모두보기
반응형

주요 글 목록

  • [JVM] JVM(자바) 의 메모리 구조 - 스택과 힙 영역, 스택 프레임이 쌓이는 과정과 힙 영역에 객체가 생기는 과정 if (list.get(i).getDataYN() == "Y") { dataSize++;} 만약 이 코드를 보고 이상한걸 못느낀다면…JVM 스택영역, 힙 영역에 어떤 데이터가 들어가는지 공부해야 한다.  JVM 의 실행자바 프로그램이 실행되면 컴파일된 .class 를 실행엔진이 메서드영역에서 읽으면서-> 스택영역에 순서대로 쌓으면서(스택 프레임 생성) 실행 + 실행되는동안 객체/배열이 있으면 힙에 생성  + 실행되는동안 가비지컬렉션이 힙 관리-> 실행이 다 되면 순서대로 스택에서 나감를 한다. 선요약 JVM 의 스택영역과 힙 영역public class Sample { // 인스턴스 필드 int x = 10; String name1 = "홍길동"; public void m.. 공감수 1 댓글수 0 2024. 12. 24.
  • [JVM] JVM 의 메모리구조, 메모리 영역 별 저장되는 데이터 선요약 메서드 영역(Method Area): 클래스 로더에 의해 로드된 클래스의 메타데이터, 상수 풀, 정적 변수, 메서드 코드 등이 저장스택 영역(Stack Area):메서드 호출 시 생성되는 프레임이 저장각 스레드마다 스택이 하나씩 있고, 메인 스레드에 main()-프로그램 시작점 이 있음힙 영역(Heap Area): 객체와 배열, 인스턴스 변수가 동적으로 저장모든 객체는 힙에 생성되며, 전역 접근 가능  메모리 구조메서드영역, 스택영역, 힙영역으로 구성되어있다.일명 메스힙 자바 프로그램 실행 시의 대충 흐름은..자바실행 -> .java가 .class 로 컴파일 -> (클래스가 처음으로 참조될 때) 클래스로더가 .class 읽으면서 메서드영역에 클래스메타데이터, 상수풀, 정적변수 저장 + 정적변수 초.. 공감수 1 댓글수 0 2024. 12. 23.
  • [JVM] JVM 동작 과정 - | 클래스로더, 실행엔진, 가비지 컬렉션 JVM 동작 선요약1. 컴파일된 자바를 클래스 로더를 통해 읽으면, 클래스 로더가 바이트코드를 검증하고 메모리에 올림 2. 클래스 로더가 할일을 끝낸다면 정적변수들이 기본값으로 설정된 후에 정적 초기화 블록이 실행됨 (초기화) 3. 그 후, 초기화가 끝나면 JVM 실행엔진이 작동 : 메모리에 올라간 바이트코드를 기계어로 번역해서 실행 4. 실행되는 동안 가비지 컬렉션이 힙메모리를 돌면서 사용되지 않는 객체들을 정리 클래스로더컴파일된 클래스 파일들을 JVM 안에 있는 클래스 로더가 읽음. 클래스로더는 컴파일된 바이트코드들을 동적로딩 한 다음에  메서드 영역에 넣음 => 클래스 로더는 클래스 파일을 로드하고 메모리에 올리는 일을 하는애 클래스로더 - 동적로딩클래스 파일을 로드한다 = 동적로딩 동적로딩은 프로.. 공감수 0 댓글수 0 2024. 12. 19.
  • [레거시분석] 메모리 관점에서 참조형 객체 초기화 방법 (new, null) 회사 레거시 코드 분석중 어떤 코드는 참조형 객체를 null로 초기화했고어떤 코드는 참조형 객체를 new() 로 생성했다. 비슷한 로직인데 왜 이렇게 다르게 로직을 짰을까  예전에 고객이 프로젝트가 자꾸 죽는다고 컴플레인이 들어왔다.원인을 찾아보니 힙메모리를 3기가로 설정해서조금만 메모리를 사용해도 풀 gc 가 계속 돌아서 죽어버렸다. 아무튼 위의 얘기를 한 이유는new() 키워드로 객체 생성 : 안정성List columnList = new ArrayList(); 안정성: null 체크 없이 리스트의 메서드를 호출할 수 있으므로, NullPointerException 이 나지 않는다.그라고 변수를 선언할 때 바로 리스트를 생성하기 때문에 별도의 초기화 과정 없이 변수를 바로 사용할 수 있다.단점불필요한 .. 공감수 1 댓글수 0 2024. 10. 22.
  • [Java] JavaSE, JDK, JRE 의미, JDK 의 주요 디렉토리 및 exe 정리 요약JavaSE의 구현체는 자바개발키트(JDK: Java Development Kit), 자바실행환경(JRE: Java Runtime Environment) 두 버전이 있다.JDK는 자바 애플리케이션을 개발하는 데 필요한 도구와 라이브러리 포함JRE는 자바 애플리케이션을 실행하는 데 필요한 런타임 환경 제공bin자바 애플리케이션을 개발하고 실행하기 위한 폴더- javac(컴파일)/java(JVM구동)/javap(역어셈블)confJDK의 구성과 관련된 설정 파일 포함lib자바 애플리케이션을 실행할 때 필요한 핵심 라이브러리 포함         1. JavaSE 구현체 JavaSE의 구현체는자바개발키트(JDK: Java Development Kit), 자바실행환경(JRE: Java Runtime Enviro.. 공감수 2 댓글수 1 2024. 5. 3.
  • [Java] List<Map<String, Object>> 을 List<Map<String, String>> 으로 형변환하기 //수치데이터 받아오고 List 원본 = ~~~ // 최종 결과값 담을 변수 생성 List 최종 new ArrayList(); //List ==> List for (int j = 0; j String 해서 넣어주기 temp.put("TRD_DT", 원본.get(j).get("IRR_TRD_DT").toString()); temp.put("AMT1", 원본.get(j).get("AMT1").toString()); temp.put("AMT2", 원본.get(j).get("AMT2").toString()); 최종.add(temp); } 공감수 0 댓글수 0 2023. 2. 27.
  • [Java 공부] 프로그래밍 언어와 Java 의 특징 1. 프로그래밍 언어 👀 프로그램: 컴퓨터에서 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것 👀 프로그래밍 언어: 사람과 컴퓨터가 대화하기 위한 언어. 고급 언어와 저급 언어로 나뉜다. 👀 고급언어 뜻: 컴퓨터 언어 중 사람이 쉽게 이해할 수 있는 언어 종류: C, C++, Java.... 특징: - 컴퓨터가 바로 이해할 수 없기 때문에 Compile 과정을 통해 컴퓨터가 이해할 수 있는 기계어로 변역해야 한다. - 작성된 코드(소스) 는 Compiler 라는 소프트웨어에 의해 기계어로 변환된 후 컴퓨터에서 실행할 수 있다. 👀 저급언어 뜻: 컴퓨터 언어 중 컴퓨터가 쉽게 이해할 수 있는 언어 종류: 어셈블리어 특징: - 사람이 바로 이해하기 쉽지 않기 때문에 학습이 까다.. 공감수 2 댓글수 2 2022. 4. 3.
  • [JAVA] 이것이 자바다 (신용권, 한빛미디어) 6단원 연습문제_5번 풀이 이것이 자바다 (신용권, 한빛미디어) 연습문제 풀이 ... [6번] 다음 Chatting 클래스는 컴파일 에러가 발생합니다. 원인이 무엇입니까? ... Chatting.java (오류 안나게 수정함) package exercise.exercise06; public class Chatting { void startChat(String chatId) { final String nickName = "닉네임"; Chat chat = new Chat() { @Override public void start() { String inputData = "안녕하세요"; String message = String.format("[%s] %s", nickName, inputData); sendMessage(message);.. 공감수 0 댓글수 0 2021. 11. 10.
  • [JAVA] 이것이 자바다 (신용권, 한빛미디어) 6단원 연습문제_5번 풀이 이것이 자바다 (신용권, 한빛미디어) 연습문제 풀이 ... [5번] AnonymousExample 클래스의 실행 결과를 보고 Vehicle 인터페이스의 익명 구현 객체를 이용해서 필드, 로컬 변수의 초기값과 메소드의 매개값을 대입해보세요 ... Vehicle.java package exercise.exercise05; public interface Vehicle { public void run(); } ... Anonymous.java package exercise.exercise05; public class Anonymous { Vehicle field = new Vehicle() {// 로컬 메소드 @Override public void run() { System.out.println("field :.. 공감수 0 댓글수 0 2021. 11. 9.
  • [JAVA] 이것이 자바다 (신용권, 한빛미디어) 6단원 연습문제_4번 풀이 이것이 자바다 (신용권, 한빛미디어) 연습문제 풀이 ... [4번] 다음과 같이 Car 클래스 내부에 Tire 와 Engine 이 멤버 클래스로 선언되어 있습니다.NestedClassExample 에서 멤버 클래스의객체를 생성하는 코드를 작성해보세요 ... Car.java package exercise.exercise04; public class Car { class Tire{} static class Engine{} } ... NestedClassExample.java package exercise.exercise04; public class NestedClassExample { public static void main(String[] args) { Car myCar = new Car(); Car.T.. 공감수 0 댓글수 0 2021. 11. 8.
  • [JAVA] java 생성자와 메소드_getter, setter(게터세터) ... 1. 생성자 생성자는 인스턴스를 생성하는 역할을 한다. 메이플에서 새로운 케릭터 생성과 똑같다. 생성자는 초기값 세팅을 할 때 필요하다. 메이플스토리에서 처음 케릭터 생성할 때 스텟을 주사위로 굴려서 세팅하듯이... 나중에 케릭터가 커가면서 스텟은 올라갈 것이다. 생성자에서 초기값을 세팅해줬어도 언제든 값을 바꿀 수 있는것과 같다. ... 기본 생성자 자바에서 생성자는 이렇게 생겼다. 위에는 기본 생성자이고 밑에는 따로 세팅을 해준 생성자이다. 이름이 같지만, 매개변수가 다르기 때문에 다른 생성자이다.(오버로딩) ... 매개변수가 있는 생성자 매개변수가 있는 생성자를 살펴보면, 선언해줬던 멤버변수를 매개값으로 받아서 사용한다. ... this. 의 의미 this.는 자기 자신을 가리킨다는 뜻이다... 공감수 2 댓글수 2 2021. 10. 27.
  • [JAVA] 메소드 선언 후 호출하기 (매개변수 유무, 반환값 유무에 따른 구분/ 배열,가변인수 출력) 0. 전체 코드 0-0 메소드 선언 클래스 package methodStudy; public class FunTestStudy { // 매개변수 없고, 반환값이 없음 void sayHi1(){ System.out.println("안녕하세요"); } // 매개변수 있고, 반환값이 없음 void sayHi2(String hello){ System.out.println(hello); } // 매개변수 없고, 반환값이 있음 int addNum100(){ int sum=0; for (int i=0; i 공감수 0 댓글수 0 2021. 10. 23.
  • [Java] Java String (대입 연산자와 new 연산자의 차이, ==과 .equals의 차이) 1. 데이터 타입 1.1 데이터 타입 종류 1.2 기본 데이터 타입과 참조 데이터 타입의 차이점 1.3 스택 영역과 힙 영역 2. 참조 데이터 타입의 변수 선언 2.1 = 사용 (같은 주소값을 가리킴) 2.2 new 연산자 사용 (다른 주소값을 가리킴) 2.3 정리 3. ==과 .equals 3.1 new 연산자로 선언한 string을 ==로 비교 3.2 new 연산자로 선언한 string을 .equals로 비교 3.3 =로 선언한 string을 ==로 비교 3.4 =로 선언한 string을 .equals로 비교 ... 1. 데이터 타입 1.1 데이터 타입 종류 데이터 타입에는 기본 데이터 타입과 참조 데이터 타입이 있다. 기본 데이터 타입 : int, char, boolean... 참조 데이터 타입 :.. 공감수 5 댓글수 0 2021. 10. 19.
  • [JAVA] 난수를 발생시켜 임의의 배수 출력하기 * [문제5] 임의의 수에서 임의의 배수를 구하라. * - 난수를 발생시켜 임의의 수를 지정하기 * - 2부터 5까지의 배수 * - 임의의 수는 10 이상 100이하 * - 10 이상인 난수를 발생시켜서 2부터 5까지의 배수를 구하라 * ------------------------------------------------------------ * 예) * 최대값 : 15(난수) * 배 수 : 4(난수) * 결 과 : 4, 8, 12 ... 풀이 public class ForExample05 { // 임의의 수 final static int MIN_NUMBER = 10; // 임의의 수 최소값 final static int MAX_NUMBER = 100; // 임의의 수 최대값 // 배수 final st.. 공감수 0 댓글수 0 2021. 10. 15.
  • [JAVA] 라이브러리/클래스, 매소드, 객체/변수 알아보기 (2) 0. 라이브러리/클래스, 매소드, 객체/변수 1. 매소드 1-1 매소드 설정하기 1-2 매소드 매개변수 1-2-1 매개변수 1개 1-2-1 매개변수 여러개 0. 라이브러리/클래스, 매소드, 객체/변수 라이브러리 : 자동차 만드는 비법(기술) 클래스 : 자동차 공장 매서드 : 자동차 특징 (차 색, 바퀴4개, 연료종류, 엔진종류, 연료 양) 속성(변수) : 자동차 각각의 특징 (차 보라색, 바퀴 12인치, 연료 경유, 엔진 디젤, 5리터) 값 : 보라색, 12인치, 경유, 디젤, 5 1. 매소드 1-1 매소드 설정하기 자바를 이용해서 자동차 공장을 만들어봤다. 아직 대단한 기술이 없어도 자동차를 만들 수 있기 때문에 라이브러리를 사용하지 않았다. public class Factory { static voi.. 공감수 0 댓글수 0 2021. 9. 24.
  • [JAVA] 라이브러리/클래스, 매소드, 객체/변수 알아보기 (1) 0. 더하기 프로그램 1. 라이브러리 / 클래스 1-1 라이브러리 클래스 1-2 public class 2. 매서드 3. 객체 / 변수 0. 더하기 프로그램 다음은 더하기를 해주는 프로그램이다. import java.util.Scanner; public class Practice { public static void main(String args[]){ Scanner input = new Scanner(System.in); int x; int y; int sum; System.out.print("첫 번째 숫자를 입력하시오: "); x = input.nextInt(); System.out.print("두 번째 숫자를 입력하시오: "); y = input.nextInt(); sum = x+y; System... 공감수 0 댓글수 0 2021. 9. 23.
  • [JAVA] 자바의 기본(5)_제어문 공부 2, while문, for문 1. while문 1-1 while loop 1-2 do while 2. for문 2-1 for loop 2-2 for each 3. while문 3-1 while loop 영어 번역 그대로 '-동안 루프한다'라는 뜻이다. 나는 지금 0 원이 있는데, 내 돈이 500 원이 될 동안 계~~속 저축한다. 돈은 하루에 100 원씩 늘어난다. 조건을 만족하지 않을 때까지 반복하기 때문에 꼭 조건을 벗어날 수 있게 제어해줘야 한다. 안그러면 계속 반복된다. while : 조건이 만족하는 동안에는 public class Main { public static void main(String[] args) { int i = 0; while (i 공감수 0 댓글수 0 2021. 9. 22.
  • [JAVA] 자바의 기본(5)_제어문 공부 1, if문, switch문 1. if문 1-1 if문 1-2 if else문_삼항연산자 2. switch 1. if문 1-1 if문 영어 번역 그대로 '--라면 --이다'로 실행된다. 만약 내가 1,500 원 이상이 있다면 버스를 탈 수 있다. 근데 만약에 내가 3,000 원 이상이 있다면 택시를 탈 수 있다. 그 외의 상황이라면 집까지 걸어가야 한다. 나한테 2,000원이 있으면 버스를 탈 것이고, 돈이 한 푼도 없다면 걸어갈 것이다. if : 만약 else if : 근데 만약에 else : 그 외의 상황이라면 을 사용하여 if문을 제어한다. public class Main { public static void main(String[] args) { int money = 2000; if (money >= 1500) { Syste.. 공감수 0 댓글수 0 2021. 9. 22.
  • [JAVA] 자바의 기본(5)_제어문 공부 1 0. 자바의 제어문 1. if문 1-1 if문 1-2 if else문_삼항연산자 2. switch 3. while문 3-1 while loop 3-2 do while 4. for문 4-1 for loop 4-2 for each 0. 자바의 제어문 아직 제어문에 익숙하지 않아서 어떤 상황에서 어떻게 제어문을 사용할지부터 공부하기로 했다. if문 switch문 while문 for문 자바에는 다음과 같은 제어문이 존재한다. 제어문 발동 기준은 booleans이다. booleans는 결과가 true, false로 출력되고 우리는, '제어문이 true일 때나 false일 때 실행시킨다' 같이 조건을 둘 수 있다. 1. if문 1-1 if문 영어 번역 그대로 '--라면 --이다'로 실행된다. 만약 내가 1,500 .. 공감수 0 댓글수 0 2021. 9. 20.
  • [JAVA] 자바의 기본(4)_배열 array 1. 배열 선언 1-1 문자열 배열 선언 1-2 정수 배열 선언 2. 다차원 배열 1. 배열 선언 컴퓨터 언어에는 '배열'이라는게 있다. 필요한 물건(값)을 가방(배열)에 넣어놓고 다니는 느낌이다. 처음 이 '배열'이라는 애를 접했을 때는 이해가 가지 않았다. 도대체 얘를 코딩에 쓰는 이유가 무엇인지 언제 사용하는 친구인지 몰랐었다. 이 의문은 파이썬을 공부할 때 생겼고 파이썬으로 데이터 실무를 다룰 때 해결되었다. 열 이름(인덱스)가 없는 데이터 테이블을 다뤘었는데 열 이름을 정의해줄 때 '배열'을 사용했었다. 자바 배열도 비슷한 느낌으로 사용하..겠지?? 1-1 문자열 배열 선언 public class Main { public static void main(String[] args) { String[.. 공감수 0 댓글수 0 2021. 9. 20.
  • [JAVA] 자바의 기본(3)_문자열 변수 String, 문자열 구분 \ 1. 문자열 변수 Strign 1-1 문자열 변수 String 1-2 문자열 길이 메서드 length 1-3 문자열 대/소문자 변환 메서드 Upper/Lower 1-4 원하는 문자열 위치 출력 메서드 indexOf 1-5 문자열 연결 메서드 concat 1-6 특수 문자 입력 \ 1. 문자열 변수 String String은 단독으로 문자열을 출력할 때 사용하기도 하지만 여러 메서드를 이용하여 원하는 값을 출력한다. String은 기본 데이터 유형이 아닌, 문자열에 대해 특정 작업을 수행할 수 있는 메서드를 포함하는 객체이다. 1-1 문자열 변수 String public class Main { public static void main(String[] args) { String food = "Candy";.. 공감수 0 댓글수 0 2021. 9. 18.
  • [JAVA] 자바의 기본(2)_데이터 유형 알아보기 1. 자바 데이터 유형 1-1 기본 데이터 유형 2. 자바 숫자 데이터 유형 2-1 자바 숫자 데이터 유형 2-1-1 byte, short, int 2-1-2 long 2-1-3 float 2-1-4 double 2-2 캐스팅 2-2-1 확대 캐스팅 2-2-2 축소 캐스팅 2-3 연산자 2-3-1 산술 연산자 2-3-2 할당 연산자 2-3-3 비교 연산자 2-3-4 논리 연산자 2-4 Math 클래스 2-4-1 Math.max(x,y) 2-4-2 Math.min(x,y) 2-4-3 Math.sqrt(x) 2-4-4 Math.abs(x) 2-4-5 Math.random( ) 3. 자바 문자 데이터 유형 3-1 자바 문자 데이터 유형 3-1-1 char 1. 자바 데이터 유형 1-1 기본 데이터 유형 데이터.. 공감수 0 댓글수 0 2021. 9. 18.
  • [JAVA] 자바의 기본(1)_문장 출력하기, 변수 선언하기 1. 자바의 기본 1-1 출력 1-2 구성 2. 자바 변수 2-1 String 선언으로 출력하기 2-1-1 String 선언 2-1-2 String 선언 + 문장 선언 2-1-3 String 선언 + String 선언 2-2 int 선언으로 출력하기 2-2-1 int 선언 2-2-2 int 추가 선언 2-2-3 final int 선언 2-2-4 int에 여러 값 할당 1. 자바의 기본 public class Main { public static void main(String[] args) { } } 자바의 기본?? c언어 처음 배웠을 때 맨 윗줄에 std…h?뭐 이런거 적어줬었는데 자바에도 필요한 것 같다. 확실히 파이썬보다는 어려워 보인다. 1-1 출력 public class Main { public .. 공감수 1 댓글수 0 2021. 9. 17.
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.