
오늘부터 JAVA 프로그래밍 언어 시작을 합니다! 으아아 무셔워어엉 자바를 잡아..ㅋㅋㅋㅋ 죄송;; 파이팅! 파이팅!! GPT한테 일정 짜달라고 했어요. 저 자바는 첨이라;

IntelliJ IDEA 이거 무료 버전으로 쓰시든, 아니면 돈 주고 쓰세요. 다운로드랑 환경 설정은 뭐 많이 하는데요. 하나하나 캡처하기엔 늦었수..힣 환경설정은 알잘딱깔센하시길.
Java 처음 공부하는데, 참고할 책은 바로 이거에요.

그치만 난 혼자 공부하지 않지.. 음하하하핳.. 아니였다. 오늘 수업 끝나고, 다들 공부 안한대ㅠ 떼잉 혼자 공부해야하네.. 보여주겠어!

뛰어넘어 걍 넘어! 넘어버려


이렇게 1주차 해보래요. 해볼게요. 아 진짜 할 거 너무 많다;;
AI도 공부해보고 싶었는뎅.. 어림도 없다! 해야할 일을 먼저 하거라!





라고 하네요. 이건 오늘의 수업자료였어요.
5장을 끝낸다. 실시!!!
자바의 타입은 기본 타입과 참조 타입으로 분류된다.
5-1) 참조 타입과 참조 변수
참조타입
: 객체의 번지를 참조하는 타입.
ex) 배열, 열거, 클래스, 인터페이스
: 스택 영역에 힙 영역의 객체 주소를 가진다.
cf) 자바에서는 배열을 객체 취급함.

: JVM이 시작할 때 생성되고, 모든 스레드가 공유하는 영역
-> 클래스를 로더로 읽어, 클래스 별로 정적 필드, 상수, 메소드 코드, 생성자 코드 등을 분류해서 저장합니다.
=> 클래스 관련 정보를 저장하는 영역
[Method Area]
- Dog 클래스 정의 (필드: name)
- Main 클래스 정의
: 객체와 배열이 생성되는 영역.
-> 객체를 저장한다.
=> 클래스의 객체를 저장하는 영역. 계속 늘어날 수 있음.
cf) 쓰레기 수집기
: 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에, JVM이 이것을 쓰레기 취급함.
: 메소드를 호출할 때마다 프레임을 추가(push)하고, 메소드가 종료되면 해당 프레임을 제거(pop)하는 동작을 수행.
=> 객체의 주소를 담는 영역. C에서 포인터 같은 개념임.
정리)
“자바에서 new로 객체를 만들면, 클래스는 메소드 영역에, 객체 본체는 힙에, 객체 주소를 가진 참조 변수는 스택에 저장된다.”
: 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용된다.
: 힙 영역의 객체를 참조하지 않는다는 의미. null값도 초기값으로 사용할 수 있기 때문에, null로 초기화된 참조 변수는 스택 영역에서 생성된다.
apple == null //결과: True 출력됨.
apple !=null //결과: false 출력됨.
cf) 예외: 자바는 프로그램 실행 도중에 발생하는 오류.
: 아무것도 가리키지 않는 상태(null)”에서 뭔가를 하려고 해서 생기는 오류.
-> 참조 타입 변수를 잘못 사용하면, 발생.
정리)
null은 자바에서 “아무 객체도 가리키지 않는 상태”
그런데 null 상태인 참조 변수로 메서드나 필드에 접근하면
→ JVM이 “야, 아무것도 없는데 뭘 보라고?” 하고 예외를 던짐.
cf) 문자열은 String 객체로 생성되고, 변수는 String 객체를 참조한다.
: 힙 영역에 새로운 객체를 만들 때 사용하는 연산자.
: 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조
타입[] 변수;
// 또는
타입 변수[];
cf) 참조할 배열 객체가 없다면, 배열 변수는 null 값으로 초기화할 수도 있다.
: new라는 연산자를 이용해서 생성.
=> 처음 생성할 경우 배열은 자동적으로 기본값으로 초기화해야한다.
cf) 이미 배열 변수가 선언된 경우에도 new 연산자로 배열을 생성할 수 있다.
cf) int 배열은 모두 기본값 0으로 초기화
cf) String 배열은 모두 null값으로 초기화
: 배열에 저장할 수 있는 전체 항목의 개수를 말한다.
cf) 배열의 length 필드를 읽기 위해서는 배열 변수에 도트 연산자를 붙이고 length를 적어주면 된다.
-> main()메소드를 호출할 때, 매개값으로 전달된다.
: 자바는 2차원 배열을 배열 방식으로 구현한다.
: 참조 타입 배열은 각 항목에 객체의 번지를 가지고 있다.
ex) String 객체의 번지를 가지고 있다.
예) String[] 배열 항목 간에 문자열을 비교하기 위해서는 equals() 메소드를 사용해야한다.
cf) 계단식 구조를 가질 수 있다.
cf) 배열은 정확한 길이를 알고 인덱스를 사용해야한다.
: 배열 간의 항목 값들을 복사하려면 for문을 사용하거나 System.arrarycopy()메소드를 사용한다.
cf) 참조 타입 배열이 복사되면 새 배열의 항목은 이전 배열의 항목은 이전 배열의 항목이 참조하는 객체와 동일하다.
: 한정된 값인 열거 상수 중에서 하나의 상수를 저장하는 타입.
: 첫 글자를 대문자로 하고, 나머지는 소문자로 구성한다.
cf) 각 단어의 첫 글자는 대문자로 하는 것이 관례.
cf) public enum 키워드는 열거 타입을 선언하기 위한 키워드이며, 반드시 소문자로 작성해야한다.
cf) 열거 상수는 모두 대문자로 작성해야한다.
: 변수를 선언하고 사용해야한다.
cf) 열거 상수는 단독으로 사용할 수 없고, 반드시 '열가 타입', '열거상수'형태로 사용됨.
cf) 열거 상수는 열거 객체로 생성된다.
왜 매번하고 까먹지..맛나나..왜 자꾸 까먹어..

기억 삭제 정말 웃기네요 ㅋㅋ 공부 파이팅