TIL : 221222

JINSEON YE·2022년 12월 22일

TIL

목록 보기
38/88

if문

  int hour = 10;
        String result = (hour > 12) ? "오전입니다." : "오후입니다.";

        int age = 25;
        if (age >= 19) {
            System.out.println("성인입니다.");
        } else {
            System.out.println("청소년입니다.");
        }

삼항연산자

 int age = 25;
        String result = (age >= 19) ? "성인입니다." : "청소년입니다.";
        System.out.println(result);

switch문

        switch ((int)score/10) {
            case 10 :
                System.out.println("A+");
                break;
            case 9 :
                System.out.println("A");
                break;
            case 0 :
                System.out.println("B");
                break;
            default:
                System.out.println("F");
        }

평년, 윤년 구하기

boolean isLeapYear = year%4 == 0 && year%100 !=0 || year%400 == 0;

boolean isLeapYear = year%4 == 0 && year%100 !=0 || year%400 == 0;

        if (isLeapYear) {
            System.out.println(year + "년은 윤년입니다.");
        } else {
            System.out.println(year + "년은 평년입니다.");
        }

equals 와 == 비교

// == equals

        String text1 = "sample"; //리터럴 타입
        String text2 = text1;

        String text3 = new String("sample"); // 각각 개체를 만들게 되는 거여서 false
        String text4 = new String("sample");

        System.out.println(text1 == text2); //true
        System.out.println(text3 == text4); //false == 비교 : 주솟값 비교 / 값 비교 : equals
        System.out.println(text3.equals(text4)); //true

주솟값 비교 : ==
값 비교 : equals

배열

int[] num = new int[5];
        num[0] =3;
        num[1] =11;
        num[2] =22;
        num[3] =33;
        num[4] =44;

        System.out.println(num[0]);
        System.out.println(num[1]);
        System.out.println(num[2]);
        System.out.println(num[3]);
        System.out.println(num[4]);
        System.out.println(num[num.length-1]);
        
        결과
        3
		11
		22
		33
		44
		44
        
//자료형 [] 변수명 = {초기차};
int[] num2 = {100, 200, 300, 400};
        System.out.println(num2);
        System.out.println(Arrays.toString(num2));
        
        결과
        [100, 200, 300, 400]

//자료형 [] 변수명 = {초기차};
변수명.length : 변수의 길이

List
1. 순서가 중요 -> 순서대로 들어간다.
2. 같은 자료형만 넣을 수 있다.
3. 넣을 떄는 add, 조회할 때는 get, 제거할 때는 remove 사용
4. 크기가 고정되어있다.
5. 배열값이 가변적으로 변한다.

List<String> fruits = new ArrayList<>();
        fruits.add("감");
        fruits.add("사과");
        fruits.add("배");
        fruits.add("감");
        fruits.add("사과");
        
        fruits.remove(0);
        System.out.println(fruits.get(0));
        
        결과
        사과
System.out.println(fruits.get(0));
        System.out.println(fruits.get(1));
        System.out.println(fruits.get(2));
        System.out.println(fruits.get(3));

			//비효율적
            
        for (int i = 0; i < fruits.size(); i++) {
            String fruit = fruits.get(i);
            System.out.println(fruit);
            
            //두 방법 서로 결과가 같음

for (int i = 0; i < fruits.size(); i++) {
String fruit = fruits.get(i);
System.out.println(fruit);
}

System.out.println("숫자 5개를 띄어쓰기로 구분하여 입력해주세요: ");

        int[] value = new int[5]; //5칸짜리 배열 선언

        for (int i = 0; i < 5; i++) { //0부터 배열 끝까지 저장
            value[i] = sc.nextInt();
        }

        for (int i = 4; i >= 0; i--) { //거꾸로 그 값을 담을 때
            System.out.println(value[i]);

Random

Random random = new Random(); // 임의의 숫자를 발생시켜준다.
System.out.println(random.nextInt(10) +1);

random으로 생성된 값의 최솟값 찾기

// 랜덤으로 정수 10개 저장
        // 최소값을 찾아주세요!

         // 저장공간 10개짜리 배열을 선언
        int[] datas = new int[10];

        // 랜덤함수 객체를 선언
        Random rand = new Random();

        // 10개의 공간을 돌면서 (0~9번째 인덱스까지)
        for (int i = 0; i < 10; i++) {
				// 랜덤객체를 통해 발생된 난수를 datas라는 배열 공간 각 i번째 datas[i] 에 저장
            datas[i] = rand.nextInt(10) + 1; // (1~10까지 난수 발생)
            // 아래 주석코드를 입력해 보시면 발생 된 난수 확인 가능 
            // System.out.println(datas[i]);
        }


        // 최솟값 선언 (최소값은 0번째 고정, 다음 인덱스와 값을 비교한다) 
        int min = datas[0];
        // 0번째 인덱스를 최소값번지라고 지정해 놓고 1번째 인덱스부터 (0번째는 비교가 필요x, 자기자신) 배열의 끝까지
        // 돌며 최소값 과 각 인덱스의 값을 비교
        // 최소값(0번째 인덱스) 보다 각 인덱스의 값이 더 작을 경우 값을 도치 (자리를 바꿈)
        for (int i = 1; i < 10; i++) {
            if (min > datas[i]) {
                min = datas[i];
            }
        }


        // 최소값을 출력
        System.out.println("min=" + min);

Spring

  • 웹서비스? 클라이언트 + 서버
  • 클라이언트 : 눈에 보이는 것
  • 서버 : 데이터를 보내는 것

java를 이용해서 spring으로 서버를 만든다.

  • Rest ?
    • 서버의 응답이 JSON 형식임을 나타냅니다.
    • HTML, CSS 등을 주고받을 때는 Rest 를 붙이지 않습니다.

JSON 만을 돌려주는 것은 RestController

다른 사람들이 만들어둔 도구 내려받기

  • Java - mavenCentral, jcenter

->Gradle이 도와준다.

라이브러리 : java사용자들이 사용할 수 있는 다른사람들이 만들어놓은 코드.

  • 과제
  1. 새로운 스프링 프로젝트를 만든다. (New Project ...)
  2. Person 클래스를 만든다.
  3. 3개 이상의 멤버 변수를 만든다. (name, age, address, job ...)
  4. 멤버 변수는 모두 private 이다.
  5. Getter, Setter를 만든다.
  6. PersonConroller를 만들고, http://localhost:8080/myinfo 에 나의 정보가 뜨도록 한다.
  7. Person.java, PersonController.java 를 제출한다.

과제성공

오류 메세지

: Web server failed to start. Port 8080 was already in use.

이유

  • IDE가 비정상적으로 종료되거나 종료되지 않았기 때문.

해결방법

  • 사용 중인 특정 포트를 확인하여 서비스를 강제 종료해야한다.

문제해결
1. 먼저 유닉스(UNIX)계열에서 파일이나 프로세스 목록을 출력하는 lsof(list open files) 명령어와 -i 옵션을 사용하여 특정 포트로 동작중인 프로세스 목록을 확인해 줍니다.

터미널에는 lsof -i :8080 이라고 입력.

  1. 이후 종료할 프로세스 ID(PID)를 확인하여 kill 명령어를 통해 강제로 종료한 뒤 다시 확인해 보면 해당 프로세스가 종료된 것을 확인 하실 수 있습니다.

터미널에는 kill -9 * (*는 PID 번호이다.)

인텔리제이 단축키

fori + tap : for문 자동 작성
커맨드 + , : 환경설정
커맨드 + 옵션 + l : 정렬
psvm + tap : public static void main(String[] args)

profile
백엔드 개발자

0개의 댓글