0x0102
KDT - java 기본 및 깃 기본 본문
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
'Study > System Engineer' 카테고리의 다른 글
KDT - java 다형성과 이종모음 (0) | 2024.01.10 |
---|---|
KDT - Linux 셸 (1) | 2024.01.10 |
KDT - java 기본 타입과 참조타입 (1) | 2024.01.05 |
KDT - KT클라우드와 NHN Cloud로 완성하는 클라우드 엔지니어 양성 (1) | 2024.01.04 |
kisia, 과기정통부 - 클라우드 보안(16h) (1) | 2024.01.04 |