0x0305

KDT - java 기본 및 깃 기본 본문

Study/System Engineer

KDT - java 기본 및 깃 기본

jxx_yxjx 2024. 1. 4. 17:35

https://nohitnorun.notion.site/3dc6c559dbb7463197772029257f3703?pvs=4

이클립스 환경설정 가이드

 

이클립스 환경설정 | Built with Notion

먼저 eclipse.org에 접속합니다.

nohitnorun.notion.site

 

자바 기본

https://nohitnorun.notion.site/1-bcbd8c3a8df94edfbc72c3a77a57c3e0?pvs=4

 

1. 자바 기본 사항 이해하기 | Built with Notion

자바의 특징

nohitnorun.notion.site

 

깃 기본

https://nohitnorun.notion.site/GIT-GITHUB-ff61ff50250d4656a89e6e4a16e49dc5

 

GIT, GITHUB 이해하기 | Built with Notion

[서울여대] cli에서 스테이지, 레포지토리 개념 이해하고 체크아웃하기

nohitnorun.notion.site

 

eclipse - struct 생성 - new - class 생성

-Human.java

**package** struct;

**public** **class** Human {

// 구조체는 내부에 저장할 변수만을 정의해둔 집합입니다.

// 사람이 가진 요소 중, 프로그래밍적으로 표현할 목적을 가진

// 이름, 나이, 키만 정의했습니다.

// 지금 시점에서는 모든 변수 왼쪽에 public을 적습니다.

**public** String name;

**public** **int** age;

**public** **int** height;

}

-HumanMain.java

package struct;

public class HumanMain {

	public static void main(String[] args) {
		// 타 클래스에 정의된 요소를 main 내부에서 생성해 쓸 수 있습니다.
		
		// new 키워드는 힙에 자료를 저장합니다.
		// 자료형 변수 = new 자료형();
		// 위 명령어로 구조체의 인스턴스를 생성할 수 있습니다.
		// new 키워드의 리턴자료는 해당 힙의 주소
		
		// 사람 1 생성
		Human h1 = new Human();
		h1.name = "채종훈";
		h1.age = 20;
		h1.height = 175;
		
		getHumanInfo(h1);
		//System.out.println("사람 1의 이름 : " + h1.name);
		System.out.println("사람 1의 주소 : " + h1);
		
		
		
		// 사람 2 생성
		Human h2 = new Human();
		h2.name = "개발왕";
		h2.age = 10;
		h2.height = 180;
		
		getHumanInfo(h2);
		System.out.println("사람 2의 주소 : " + h2);

	}

	//Human 구조체를 받아서, 해당 구조체의 전체 필드 정보를 콘솔에 찍습니다.
	public static void getHumanInfo(Human human) {
		System.out.println("사람의 이름 : " + human.name);
		System.out.println("사람의 나이 : " + human.age);
		System.out.println("사람의 키 : " + human.height);
	}
	}
  • 함수 순서도

  • 함수 스택 힙 구조

  • 스택 힙 순서

  • 함수 종료 이후 스택 내용 삭제 → 가비지 컬렉션으로 힙 내용 따라서 삭제됨

cat.java

package class_;

public class cat {
	//이름,나이,품종,털색깔
	public String name;
	public int age;
	public String kind;
	public String color;
	
	//클래스 정의용 클래스파일 내부 메서드는 static을 붙이지 않습니다.
	//이제 변수와 메서드가 같은 소속이므로, 레퍼런스 주소를 붙이지 않아도 됩니다.
	public void showCatInfo() {
		System.out.println("고양의의 이름 : " + name);
		System.out.println("고양의의 나이 : " + age);
		System.out.println("고양의의 품종 : " + kind);
		System.out.println("고양의의 색상 : " + color);
	}

}

catMain.java

package class_;

public class CatMain {
	
	public static void main(String[]args) {
		//고양이 두마리 생성
		cat c1 = new cat();
		c1.name = "소희";
		c1.age = 24;
		c1.kind = "엑조틱숏헤어";
		c1.color = "치즈";
		
		cat c2 = new cat();
		c2.name = "원";
		c2.age = 5;
		c2.kind = "스코티시폴드";
		c2.color = "쿠앤크";
		
		c1.showCatInfo();
		c2.showCatInfo();
		
	}

}
  • bp 찍고 디버깅해보기
  • cat 스택 힙 구조

-BasketballPlayer.java

package class_;

public class BasketballPlayer {
	
	public String name; //농구선수의 이름
	public int height; //키
	public int age; //나이
	public int salary; //연봉
	
	//showInfo(BasketballPlayer 소속이므로 굳이 해당 단어를 적지 않아도 구분 가능)
	// 를 작성해주시고, 호출 시 위의 4개 변수를 콘솔에 찍도록 해주세요.
	
	public void showInfo() {
		System.out.println("농구선수의 이름 : " + name);
		System.out.println("농구선수의 키 : " + height);
		System.out.println("농구선수의 나이 : " + age);
		System.out.println("농구선수의 연봉 : " + salary);
	}

}

-BasketballPlayerMain.java

package class_;

public class BasketballPlayerMain {

	public static void main(String[] args) {
		//농구선수 2명을 만들어주시고 정보를 조회하는 코드를 작성해주세요.
		BasketballPlayer b1 = new BasketballPlayer();
		b1.name = "조던";
		b1.height = 160;
		b1.age = 25;
		b1.salary = 100;
		
		BasketballPlayer b2 = new BasketballPlayer();
		b2.name = "피펜";
		b2.height = 190;
		b2.age = 22;
		b2.salary = 1000000000;
		
		b1.showInfo();
		b2.showInfo();
		

	}

}

 

package class_;

public class BasketballPlayer {
	
	public String name; //농구선수의 이름
	public int height; //키
	public int age; //나이
	public int salary; //연봉
	
	//showInfo(BasketballPlayer 소속이므로 굳이 해당 단어를 적지 않아도 구분 가능)
	// 를 작성해주시고, 호출 시 위의 4개 변수를 콘솔에 찍도록 해주세요.
	
	public void showInfo() {
		System.out.println("농구선수의 이름 : " + name);
		System.out.println("농구선수의 키 : " + height);
		System.out.println("농구선수의 나이 : " + age);
		System.out.println("농구선수의 연봉 : " + salary);
	}

	public void dunkShoot() { // 덩크슛하기 기능
		if(height > 180) {
			System.out.println("덩크슛 성공");
		} else {
			System.out.println("골대에 닿지 않음");
		}
	}
}

main 함수 또한 덩크슛 기능 추가

 		b1.showInfo();
		b1.dunkShoot();
		b2.showInfo();
		b2.dunkShoot();
  • 사용자가 필드를 채우지 않아도 실행되는 문제 해결 - foolproof

→ 생성자 함수

class 클래스명{

	클래스명() {
	}
}
//생성자는 리턴타입이 없고, 클래스명과 동일한 이름으로 메서드를 정의하면 됩니다.
	public BasketballPlayer(String n, int h, int a, int s) {
		name = n;
		height = h;
		age = a;
		salary = s;
	}
public static void main(String[] args) {
		//농구선수 2명을 만들어주시고 정보를 조회하는 코드를 작성해주세요.
		BasketballPlayer b1 = new BasketballPlayer("소희",160,25,100);
		//b1.name = "소희";
		//b1.height = 160;
		//b1.age = 25;
		//b1.salary = 100;
		
		BasketballPlayer b2 = new BasketballPlayer("원",200,22,1000000000);
		//b2.name = "원";
		//b2.height = 190;
		//b2.age = 22;
		//b2.salary = 1000000000;
  •  필기 내용 
package basic.importex;

// 같은 프로젝트 내의 코드끼리나 혹은 자바에서 기본으로 제공하는 클래스파일은 언제든지 가져다가 사용할 수 있습니다.
// 다만 다른 패키지에 있는 클래스를 사용하려면 반드시 package 선언부 아래에 import선언으로 참조할 클래스의 경로를 적어야합니다.
// ex) import java.util.Date; <- Date 클래스를 참조하는 경로

public class importExample {
	
	public static void main(String[] args) {
		//같은 패키지 내의 다른 클래스를 호출할 때는 어떠한 참조설정도 필요하지 않음.
		Test test = new Test(); // 같은 계열
		Apple apple = new Apple(); //다른 계열
	}

}

 

+  stop the world개념과 가비지컬렉션 전략 관련 포스팅

https://steady-coding.tistory.com/590

 

[Java] G1 GC의 동작 과정

java-study에서 스터디를 진행하고 있습니다. GC의 종류 이전 시간에 배웠던 GC의 종류를 간략하게 짚고 넘아가자. Serial GC 하나의 CPU로 Young 영역과 Old 영역을 연속적으로 처리하는 방식이다. GC가 수

steady-coding.tistory.com