자바
-
인스턴스와 힙 메모리자바 2022. 8. 29. 17:05
우선 앞전에 스텍은 함수, 메서드가 실행되면 스텍영역에 생성되었다 완료되면 사라지는걸 했었다. 이번에는 힙 영역에 대해 알아보자... 우선 가장 많이 보게되는 new 예약어로 클래스를 생성한다. 이 때 클래스가 생선된다는 의미는 클래스를 사용할수있게 힙 메모리 영역에 할당받는다는 의미를 가진다. 이렇게 생성된 클래스를 '인스턴스'라고 부른다. 그리고 test test1 = new test() ; 에서 test1은 생성된 클래스 인스턴스를 가리킨다!! 이 때 '참조 변수'라고 부른다. 자 그럼 인스턴스와 힙 메모리에 대해 보면. new test()를 선언하면 test 하나가 생성되고, 그 안에 멤버변수가 있다고 가정해보자. 그러면 이 값들(변수)를 저장할 공간이 필요하다. 이때 사용되는 메모리가 힙메모리다..
-
함수 호출과 스택 메모리자바 2022. 8. 29. 13:49
함수가 수행 되면 메모리에 저장된다. 간단하게 알아보고 넘어가자... 우선 add() 함수가 있다고 쳐보자 public static add(int a, int b){ int sum = a + b; return sum; } 대충 이런 함수가 있다고 치고,,, 얘들 호출할 경우 add()에 해당되는 메모리 공간이 할당된다!! (C언어랑 비슷한듯) 이 메모리 공간을 스택(stack)이라고 함. 어차피 자바는 main함수에서 시작함으로 스택영역 첫 공간에는 main()함수가 쌓이고 add()호출하면 메모리 공간이 생성된다! 그럼 add()가 모두 실행 되고 나서는 스택영역에서 사라진다. 이렇게 호출한 순서대로 메모리 공간이 만들어지고~ 맨 마지막에 호출된'add()'부터 반환된다. 이걸 LIFO (Last In..
-
입 출력 write()자바 2022. 7. 26. 11:44
출력 메소드하면 printf println print 정도 아실텐데 write도 있다. 결과가 영 시원치 않다... 오류보면 라고 한다.. 그니까 예외처리 해라는 건데 예외처리를 하지않아서 발생했는데 입출력 관련 패키지를 import하고 해당 매소드에 throws 한다!! 그러면 입출력에 대해 에러뜨는게 없을지도 모른다. import java.io.*; public class test04 { public static void main(String[] args) throws IOException { byte[] bb = {'j','a','v','a'}; System.out.write(bb); } } 결과는 JAVA로 잘 나오는걸 확인할수있다.
-
자료형 변환(Promotion)(Casting)자바 2022. 7. 20. 10:23
자료형 변환 : 자료형 값을 다른 자료형 값에 대입하는 방식인데 자동 형변환을 promotion 이라 한다. -> 큰자료형에 작은 자료형 대입 (공간범위로 기준잡으면 된당) 강제 형변환을 casting 이라 한다. -> 작은 자료형에 큰자료형 대입 int -> byte ★★★★★★논리형 자료형 boolean , 클래스형 자료형 string 사용할 수 없음★★★★★ 정수형 자료형 4개(byte, char, short, int, long) 실수형 2개 (float, double) ★★★★주의 할점★★★★ long 은 뒤에 L없으면 int로 인식하고 float은 뒤에 f가 없으면 double 형으로 인식해 에러 발생함. 왜 에러가 뜨냐면 float / double 은 둘다 실수형인데 double이 더 큰 자료..
-
생성자(Constructor)자바 2022. 7. 20. 09:34
자바 공부하다가 헷갈려서 간단하고 쉽게 정리해 보았다 public class abc{ public String a; public String b; public int c; // 파라미터가 없는 생성자를 기본생성자 라고한다. public abc() { } public abc(String aa, String bb, int cc) { // this는 지금 들어온 파라매터를 사용하겠다 생각하면됨. this.a = aa; this.b = bb; this.c = cc; } } 클래스명(abc)과 똑같은 이름을 가진 메소드(밑에 THIS가 있는 클래스abc)를 "생성자"라고 함 그럼 생성자를 사용해보면 abc abc = new abc(); System.out.println(abc.a); System.out.print..
-
성적계산기자바 2019. 8. 29. 22:53
성적계산기... 다들 A+은 하나씩 가지고있죠?..코드입니다 사용하세요 import java.util.Scanner; public class Example16 {/*클래스이름*/ private String name;/*변수열에 이름을 만들 수 있는 틀을 만들어 준것*/ private int []score;//국,영,수 점수를 기입해야함으로 스코어를 씀 private float avg;/*평균값으로 소수점을 생각해 플롯트를 사용*/ //constructor생성자 Example16(String name, int []score){ this.name = name; this.score = score; avg = 0; } //getter/*받다*/ setter/*설정하다*/ public void setName(St..